L'ensemble du processus de connexion de Python à la base de données SQL SEVER

Introduction au contexte

Dans le domaine de l'analyse des données, il est souvent nécessaire d'obtenir des données de la base de données pour les analyser et les traiter. SQL Server est un système de gestion de bases de données relationnelles couramment utilisé, il est donc très utile d'apprendre à utiliser Python pour se connecter à la base de données SQL Server et obtenir des données.
Insérer la description de l'image ici

Voici l'intégralité du processus de Python utilisant pymssql pour se connecter à la base de données SQL Server :

  • Installer la bibliothèque pymssql
  • Paramètres du compte local
  • Connexion aux scripts
  • Implémentation de la fonction d'importation de données

1. Installez pymssql

pymssql est une bibliothèque permettant à Python de se connecter aux bases de données SQL Server. Elle peut être installée via la commande pip. Entrez la commande suivante sur la ligne de commande pour installer :

pip install pymssql

2. Paramètres du compte local

1. Définissez le mot de passe de connexion pour le compte sa

Dans SQL Server Management Studio, développez le dossier Sécurité, cliquez avec le bouton droit sur Connexions et sélectionnez Nouvelle connexion. Dans la boîte de dialogue contextuelle, entrez le nom de connexion « sa », sélectionnez « Authentification SQL Server », définissez le mot de passe et assurez-vous que la « Base de données par défaut » sous l'onglet « Connexion » est la base de données cible. Enfin, sélectionnez Activé sous l'onglet État et assurez-vous que la case Autoriser la connexion est cochée.

2. Activez la vérification à deux facteurs

Dans SQL Server Management Studio, cliquez avec le bouton droit sur le nom de l'instance SQL Server et sélectionnez Propriétés. Dans la boîte de dialogue contextuelle, sélectionnez l'onglet « Sécurité », définissez « Authentification » sur « Mode d'authentification SQL Server et Windows » et sélectionnez « Appliquer » pour enregistrer les modifications.

3. Activez le service local TCP/IP

Dans le Gestionnaire de configuration SQL Server, développez le dossier Configuration réseau SQL Server, cliquez avec le bouton droit sur le dossier Protocoles et sélectionnez Nouveau protocole. Sélectionnez le protocole TCP/IP, cliquez avec le bouton droit sur le protocole TCP/IP et sélectionnez Propriétés. Dans la boîte de dialogue contextuelle, définissez « Activer » sur « Oui » et assurez-vous que « Port dynamique TCP » sous l'onglet « Adresse IP » est vide. Ensuite, passez à l'onglet "IPALL" et définissez le "Port TCP" sur 1433 (ou tout autre numéro de port de votre choix). Enregistrez les modifications et redémarrez le service SQL Server.

Après avoir terminé les étapes ci-dessus, vous pouvez utiliser Python pour vous connecter à la base de données SQL Server locale.

3. Connexion aux scripts

Effectuez les préparatifs ci-dessus et utilisez le script de test pour vous connecter (s'il y a une erreur de connexion - message d'erreur b'DB-Lib 20002, essayez d'ajouter tds_version="7.0" ou d'autres valeurs à la fin du paramètre de fonction de connexion).

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. Fonction d'importation de données

Une fois que nous nous sommes connectés avec succès à la base de données, nous pouvons facilement exporter et importer des données. Ce qui suit est une implémentation de fonction pour importer des données dans la base de données.

#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()
   # 数据库连接参数

Ce qui précède représente l'ensemble du processus de connexion de Python à la base de données SQL SEVER. Si vous rencontrez des problèmes, veuillez laisser un message dans la zone de commentaires ~

Je suppose que tu aimes

Origine blog.csdn.net/qq_33909788/article/details/133980334
conseillé
Classement