python连接各种类型数据库

一、连接Sql Server数据库pymssql

1、安装 pymssql

下载与系统版本和python版本一致的pymssql文件,下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql

pymssql-2.1.3-cp36-cp36m-win_amd64.whl(我当前的环境是py3.6,win7  64位)

进入你的下载的文件目录,按住shift + 右键,打开命令提示行,前提是你已经安装过pip,

2、测试代码

import pymssql

server = '127.0.0.1'  # 数据库IP地址
user = 'sa'  # 用户名
password = '123456'  # 密码
database = 'python'  # 数据库名
# 创建连接
try:
    conn = pymssql.connect(server, user, password, database)
    print("SQL Server数据库连接成功!")
except:
    print("数据库连接失败!")
    exit(1)
# 执行查询操作
cur = conn.cursor(as_dict=True)
cur.execute('select * from student')
for row in cur:
    print(row['name'] + "  "+ row['sex'] )
cur.close()
conn.close()

 

二、连接MySQL数据库(MySQLdb

1、安装 MySQLdb

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

mysqlclient-1.3.13-cp36-cp36m-win_amd64.whl(我当前的环境是py3.6,win7 64位)

2、测试代码

import MySQLdb

server = '127.0.0.1'  # 数据库IP地址
user = 'root'  # 用户名
port = 3306  # 端口
password = '123456'  # 密码
database = 'python'  # 数据库名
# 创建连接
try:
    conn = MySQLdb.connect(server, user, password, database, port, charset='utf8')
    print("MySQL数据库连接成功!")
except:
    print("数据库连接失败!")
    exit(1)
# 执行数据库操作
cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)
cur.execute("select * from student")
for row in cur:
    print( row['name']+"  "+row['sex'] )
cur.close()
conn.close()

 

三、连接Oracle数据库(cx_Oracle

1、安装 cx_Oracle

地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_oracle

cx_Oracle-6.4.1-cp36-cp36m-win_amd64.whl (我当前的环境是py3.6,win7 64位)

2、测试代码

import cx_Oracle

service = 'localhost:1521/ORCL'  # 数据库IP地址 和 实例名
user = 'system'  # 用户名
password = '123456'  # 密码
# 创建连接
try:
    conn = cx_Oracle.connect(user, password, service)  # 3个参数
    print("Oracle数据库连接成功!")
except:
    print("数据库连接失败!")
    exit(1)
# 执行查询操作
cur = conn.cursor()
cur.execute("select * from student")
for row in cur:
    print( row[0] +" "+row[1] )
cur.close()
conn.close()

 

四、中文乱码解决方案

1、检查MySQL编码方式

MySQL默认格式是latin,故出现乱码,在命令行中输入

show variables like "char%";

修改编码为utf8,使用 set 依次改变变量编码为 utf8

需要刷新数据库,才会生效:

flush privileges;


版权声明:本文为qq_37648632原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。