Todo o processo de conexão do Python ao banco de dados SQL SEVER

Introdução ao histórico

No campo da análise de dados, muitas vezes é necessário obter dados do banco de dados para análise e processamento. SQL Server é um sistema de gerenciamento de banco de dados relacional comumente usado, por isso é muito útil aprender como usar Python para conectar-se ao banco de dados SQL Server e obter dados.
Insira a descrição da imagem aqui

A seguir está todo o processo do Python usando pymssql para se conectar ao banco de dados SQL Server :

  • Instale a biblioteca pymssql
  • Configurações de conta local
  • Conexão de script
  • Implementação da função de importação de dados

1. Instale o pymssql

pymssql é uma biblioteca para Python se conectar a bancos de dados SQL Server e pode ser instalada através do comando pip. Digite o seguinte comando na linha de comando para instalar:

pip install pymssql

2. Configurações de conta local

1. Defina a senha de login para a conta sa

No SQL Server Management Studio, expanda a pasta Segurança, clique com o botão direito em Logins e selecione Novo Login. Na caixa de diálogo pop-up, insira o nome de login “sa”, selecione “Autenticação do SQL Server”, defina a senha e certifique-se de que o “Banco de dados padrão” na guia “Login” seja o banco de dados de destino. Por fim, selecione Ativado na guia Status e certifique-se de que a caixa de seleção Permitir conexão esteja marcada.

2. Ative a verificação de dois fatores

No SQL Server Management Studio, clique com o botão direito no nome da instância do SQL Server e selecione Propriedades. Na caixa de diálogo pop-up, selecione a guia “Segurança”, defina “Autenticação” como “Modo de autenticação SQL Server e Windows” e selecione “Aplicar” para salvar as alterações.

3. Habilite o serviço local TCP/IP

No SQL Server Configuration Manager, expanda a pasta Configuração de Rede do SQL Server, clique com o botão direito na pasta Protocolos e selecione Novo Protocolo. Selecione o protocolo TCP/IP, clique com o botão direito no protocolo TCP/IP e selecione Propriedades. Na caixa de diálogo pop-up, defina “Ativar” como “Sim” e certifique-se de que “Porta Dinâmica TCP” na guia “Endereço IP” esteja vazia. Em seguida, mude para a guia "IPALL" e defina a "Porta TCP" como 1433 (ou outro número de porta desejado). Salve as alterações e reinicie o serviço SQL Server.

Depois de concluir as etapas acima, você pode usar Python para se conectar ao banco de dados local do SQL Server.

3. Conexão de script

Faça os preparativos acima e use o script de teste para conectar (se houver um erro de conexão - mensagem de erro b'DB-Lib 20002, tente adicionar tds_version="7.0" ou outros valores no final do parâmetro da função de conexão).

import pymssql

server = '(local)'
database = '订单信息'
username = 'sa'
password = '123456'
# 连接到数据库
conn = pymssql.connect(server=server, user=username, password=password, database=database,tds_version="7.0")#最后一个参数不是必须的
# 创建游标对象
cursor = conn.cursor()
print('连接成功!')
# 关闭数据库连接
conn.close()

4. Função de importação de dados

Depois de nos conectarmos com sucesso ao banco de dados, podemos exportar e importar dados facilmente. A seguir está uma implementação de função para importar dados para o banco de dados.

#coding=utf-8
import time
import pymssql
import pandas as pd

def insert_data_to_sql(df, server, database, username, password, table_name,mode='Overlay'):
    # 连接到数据库
    conn = pymssql.connect(server=server, user=username, password=password, database=database)
    # 创建游标对象
    cursor = conn.cursor()
    # 获取 DataFrame 对象的字段名和数据类型
    columns = list(df.columns)
    dtypes = df.dtypes
    if mode=='Overlay':
        try:
        #覆盖模式
            cursor.execute("DROP TABLE {}".format(table_name))
        except:
            print('表不存在,直接创建……')
        # 构造创建表的 SQL 语句
        create_table_sql = f'CREATE TABLE [{
      
      table_name}] ('
        for col_name, col_type in zip(columns, dtypes):
            if col_type == 'int64':
                create_table_sql += f'[{
      
      col_name}] BIGINT,'
            elif col_type == 'float64':
                create_table_sql += f'[{
      
      col_name}] FLOAT,'
            elif col_type== 'datetime64[ns]' or '时间' in col_name or '日期' in col_name:
                create_table_sql += f'[{
      
      col_name}] DATETIME2(0),'
            elif col_type == 'date':
                create_table_sql += f'[{
      
      col_name}] DATE,'
            else:
                create_table_sql += f'[{
      
      col_name}] NVARCHAR(max),'
        create_table_sql = create_table_sql.rstrip(',') + ');'
        cursor.execute(create_table_sql)
    # 将 DataFrame 转换成元组列表
    data = [tuple(row) for row in df.fillna(0).values.tolist()]
    # 构造插入数据的 SQL 语句
    insert_sql = f'INSERT INTO [{
      
      table_name}] ('
    insert_sql += ','.join([f'[{
      
      col_name}]' for col_name in columns]) + ') VALUES ('
    insert_sql += ','.join(['%s'] * len(columns)) + ');'

    # 将数据插入到数据库
    cursor.executemany(insert_sql, data)
    # 提交事务
    conn.commit()
    # 关闭数据库连接
    conn.close()
   # 数据库连接参数

O texto acima é todo o processo de conexão do python ao banco de dados SQL SEVER. Se você encontrar algum problema, deixe uma mensagem na área de comentários ~

Acho que você gosta

Origin blog.csdn.net/qq_33909788/article/details/133980334
Recomendado
Clasificación