Conéctese e interactúe con SQL Server usando Python
import pymssql
def conn():
# 建立连接
connect = pymssql.connect(host='host_name',
user='user_name',
password='password_name',
database='database_name') # 服务器名,用户名,密码,数据库名
if connect:
print('Successfully connect!')
cursor = connect.cursor() # 创建游标对象,对SQL Server进行的SQL语句操作都需通过游标对象
cursor.execute('select * from table_name') # 执行SQL语句,进行相应操作
result = cursor.fetchall() # 获取所有查询结果;返回一个由元组组成的列表,每一行数据就是一个元组,如果没有数据可获取,则返回一个空列表
cursor.close() # 关闭游标
connect.close() # 关闭连接,释放资源
return result
if __name__ == '__main__':
result = conn()
for row in result:
print(row)
Varias formas de obtener datos:
- cursor.fetchone() # Devuelve un registro como una tupla, o Ninguno si no hay datos
- cursor.fetchmany(num) # Devuelve varios registros en forma de lista, cada elemento de la lista es una tupla que contiene un registro
- cursor.fetchall() # Devuelve todos los registros en forma de lista, cada elemento de la lista es una tupla que contiene un registro
El cursor es como un puntero en lenguaje C. Se moverá a una determinada posición cada vez que se opere. Si no se especifica que regrese al principio, continuará moviéndose la próxima vez a lo largo de la posición actual.
cursor = connect.cursor()
cursor.execute('select * from table_name')
result1 = cursor.fetchone() # 返回表中第一行数据
result2 = cursor.fetchmany(3) # 游标从第二行开始,返回表中的2、3、4行数据
cursor = connect.cursor()
cursor.execute('select * from table_name')
result1 = cursor.fetchone() # 返回表中第一行数据
cursor.execute('select * from table_name') # 让游标回到开头
result2 = cursor.fetchmany(3) # 返回表中的1、2、3行数据
Sentencias comunes de SQL:
-
CREAR: se usa para crear una nueva base de datos o tabla
CREAR BASE DE DATOS nombre_base_datos # Crear una base de datos llamada nombre_base_datos
CREAR TABLA estudiante (id INT, nombre VARCHAR(20), edad INT, sexo VARCHAR(10)) # Crear una base de datos llamada estudiante Tabla, incluyendo cuatro campos de id, nombre, edad y sexo -
ALTER: se utiliza para modificar la base de datos o la tabla
ALTER TABLE estudiante AÑADIR COLUMNA correo electrónico VARCHAR(50) # Modificar la tabla llamada estudiante y agregar un campo de correo electrónico
-
ACTUALIZAR: se usa para actualizar registros existentes
ACTUALIZAR estudiante SET nombre='Lucy' WHERE id=1 # Cambiar el nombre en el registro con id 1 en la tabla de estudiantes a Lucy
ACTUALIZAR estudiante SET sexo='Masculino' # Sin condiciones Modificar, todos los se modificarán los valores de la columna sexo -
DELETE: se usa para eliminar registros de la tabla
DELETE FROM student WHERE id=1 # Elimina el registro con id 1 en la tabla
DELETE FROM student # Elimina todos los datos de la tabla -
INSERTAR: Se usa para insertar nuevos registros en la tabla
INSERTAR EN VALORES del estudiante (nombre, edad) ('Tom', 20) # Insertar un nuevo registro en la tabla del estudiante, incluidos algunos valores de columna
INSERTAR EN VALORES del estudiante (10, ' Jack ', 25, 'Masculino') # Insertar un nuevo registro en la tabla de estudiantes, incluidos todos los valores de columna -
SELECCIONAR: se utiliza para recuperar datos de la tabla y devolver los resultados de la búsqueda de acuerdo con las condiciones
SELECCIONAR * DE estudiante DONDE edad > 18 # Recuperar todos los registros cuya edad es mayor de 18 años de la tabla de estudiantes
SELECCIONAR nombre, edad DE estudiante # Recuperar nombre , edad de la tabla de estudiantes Lista -
Consultar registros cuya edad sea mayor o igual a 20 y menor o igual a 30
SELECT * FROM estudiante WHERE edad >= 20 && edad <= 30
SELECT * FROM estudiante WHERE edad >= 20 AND edad <= 30
SELECT * FROM estudiante DONDE edad ENTRE 20 Y 30 -
Consultar registros cuya edad sea 18, 22, 25
SELECT * FROM estudiante WHERE edad = 18 OR edad = 22 OR edad = 25
SELECT * FROM estudiante WHERE edad IN (18, 22, 25) -
Consultar registros cuyas calificaciones en inglés no sean NULL
SELECCIONE * FROM estudiante DONDE english_score NO ES NULO -
Consulta aproximada
SELECT * FROM estudiante WHERE nombre LIKE '马%' # Consultar el registro cuya primera palabra es caballo
SELECT * FROM estudiante WHERE nombre LIKE '_斯%' # Consultar el registro donde la segunda palabra es 斯
SELECT * FROM estudiante WHERE nombre LIKE ' ___ ' # Consulta registros cuyo nombre tiene tres caracteres
SELECT * FROM estudiante WHERE nombre LIKE '%gram%' # Consulta registros cuyo nombre contiene gramos -
Consulta de deduplicación
SELECCIONE un nombre DISTINTO DEL n.° de estudiante Consulte la columna de nombre y elimine los registros con valores duplicados -
Consulta de clasificación
SELECCIONE * DESDE estudiante ORDENAR POR edad # Orden ascendente predeterminado
SELECCIONE * DESDE estudiante ORDEN POR edad desc # Orden descendente