目前常用SQL Server和MySQL两种数据库,记录一下用python分别连接两种数据库的方式。
一、SQLServer
pip install pymssql
1. 测试数据库连接是否成功
importpymssql# 创建数据库连接conn=pymssql.connect(host='ip',port=yourport,database='databasename',user='username',password='userpwd',charset='GB18030'# 数据库的排序规则,出现文字乱码可添加(根据自己数据库的排序规则))ifconn:# 通过数据库连接建立游标cursor=conn.cursor()# 执行sqlcursor.execute("select * from tablename")# 结果读取的三种方式# fetchall():全部# fetchmany(2):指定读取两行# fetchone():只读取第一行result=cursor.fetchall()print("查询结果:",result)# 关闭cursor.close()conn.close()print("测试执行完毕!")ip:如10.129.56.63
port:SQLServer默认端口是1433(考虑安全的话可用nginx将1433代理成别的端口)
databasename:其中某个数据库名
username:数据库账户名
userpwd:数据库账户名密码
2. 多次使用,封装到一个py中调用
由于重复使用性,在每个py文件中都写一遍太麻烦,可以把数据库连接的部分封装在一个db.py文件中,别的py文件调用即可。
db.py
importpymssql# 定义一个数据连接中的公共参数SERVER='ip"port'USER='username'PWD='userpwd'# 数据库连接函数,动态参数是数据连接中的某个数据库名defget_db_connection(database_name):returnpymssql.connect(server=SERVER,user=USER,password=PWD,database=database_name)test.py
fromdbimportget_db_connectiondefgetData():conn=get_db_connection("test")cursor=conn.cursor()cursor.execute("update yuangong set name='李四' where Id=41")conn.commit()# 除查询外,修改操作要有事务提交,保证数据变更生效rows=cursor.rowcount cursor.close()conn.close()returnrowsif__name__=='__main__':affected_rows=getData()print(f"更新成功,共更新{affected_rows}行数据!")二、MySQL
pip install mysql-connector-python
测试连接
frommysqlimportconnector# 创建数据库连接conn=connector.connect(host='ip',port=yourport,database='databasename',user='username',password='userpwd')ifconn:# 通过数据库连接建立游标cursor=conn.cursor()# 执行sqlcursor.execute("select * from tablename")result=cursor.fetchall()print("查询结果:",result)# 关闭cursor.close()conn.close()print("测试执行完毕!")