Python 连接SQL Sever、MySQL数据库问题的一些心得

注意:这里默认你建好了windows的ODBC数据源

SQL Sever:

1、调制SQL连接环境
(1)在SQL Sever 配置工具中,开启TCP/IP
Python 连接SQL Sever、MySQL数据库问题的一些心得_第1张图片
(2)修改127.0.0.1端口号为1433,并让它活动、启用
(这里我还把所有IP号的端口都改成1433了,因为不这样好像还是连不上,大家可以先不全改试一试)
Python 连接SQL Sever、MySQL数据库问题的一些心得_第2张图片
2、使用以下代码:
注意:要在SQL Sever 开启用户密码验证登陆

# coding=utf-8
import pymssql

# server    数据库服务器名称或IP
# user      用户名
# password  密码
# database  数据库名称
conn = pymssql.connect(host='127.0.0.1',port='1433',user='sa',password='123456',database='student-course', charset='UTF-8')

cursor = conn.cursor()

# 新建、插入操作
cursor.execute("""
IF OBJECT_ID('persons', 'U') IS NOT NULL
    DROP TABLE persons
CREATE TABLE persons (
    id INT NOT NULL,
    name VARCHAR(100),
    salesrep VARCHAR(100),
    PRIMARY KEY(id)
)
""")
cursor.executemany(
    "INSERT INTO persons VALUES (%d, %s, %s)",
    [(1, 'John Smith', 'John Doe'),
     (2, 'Jane Doe', 'Joe Dog'),
     (3, 'Mike T.', 'Sarah H.')])
# 如果没有指定autocommit属性为True的话就需要调用commit()方法
conn.commit()

# 查询操作
cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')
row = cursor.fetchone()
while row:
    print("ID=%d, Name=%s" % (row[0], row[1]))
    row = cursor.fetchone()

# 也可以使用for循环来迭代查询结果
# for row in cursor:
#     print("ID=%d, Name=%s" % (row[0], row[1]))

# 关闭连接
conn.close()

其中,user、password是自己连接数据库的登录名、密码,database是自己要连接的数据库,名字一定要和自己SQL Sever中的一样(host和端口我也没搞清)
如果你没有设定SA的密码,可以在SQL Sever 里面重新设,如果你用的windows直接连接,则不需要user和password这两项,删去便是

连接成功!
Python 连接SQL Sever、MySQL数据库问题的一些心得_第3张图片

MySQL:

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.Connect(host='127.0.0.1',port= 3306,user='root',password='123456',database='new_schema', charset='utf8')
# 得到一个可以执行SQL语句并且将结果作为字典返回的游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 定义要执行的SQL语句
sql = """
CREATE TABLE Test (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""
# 执行SQL语句
cursor.execute(sql)
# 关闭光标对象
cursor.close()
# 关闭数据库连接
conn.close()

这里值得一提的是Mysql端口好像必须是3306,其他的都不行,这个我也不是很清楚

你可能感兴趣的:(Python 连接SQL Sever、MySQL数据库问题的一些心得)