python 连接sql server、mysql数据库

python连接到sql server数据库

使用pymssql库,下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql

使用该库时,需要在Sql Server Configuration Manager里面将TCP/IP协议开启

用法:

 Python Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import pymssql

class SqlServer:
    def __init__(self,host,user,pwd,db):
        self.host = host    #主机名
        self.user = user    #用户名
        self.pwd = pwd  #密码
        self.db = db    #数据库名

    def __GetConnect(self):
        if not self.db:
            raise(NameError,"没有设置数据库信息")
        #连接数据库
        self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
        cur = self.conn.cursor()
        if not cur:
            raise(NameError,"连接数据库失败")
        else:
            return cur

    def ExecQuery(self,sql):    #执行查询语句
        cur = self.__GetConnect()
        cur.execute(sql)
        data = cur.fetchall()    #一次获取全部数据
        row=cur.fetchone()    #一次获取一行数据
        rows = cur.fetchmany(10)    #获取10行数据

        #查询完毕后必须关闭连接
        self.conn.close()
        return data

    def ExecNonQuery(self,sql): #执行非查询语句
        cur = self.__GetConnect()
        cur.execute(sql)
        self.conn.commit()
        self.conn.close()

def main():
    #使用sa登录,密码为自设sa登录密码
    ss = SqlServer(host="localhost",user="sa",pwd="123456",db="mydb")
    data = ss.ExecQuery("SELECT * FROM Table1")
    for row in data:
        print row[0],row[1].encode("utf8")

if __name__ == '__main__':
    main()

注意事项:

  • 使用pymssql进行中文操作时候可能会出现中文乱码,可能的解决方案是:文件头加上 #coding=utf8
  • sql语句中有中文的时候进行encode
  • 连接的时候加入charset设置信息
  • pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")

python连接mysql数据库

使用MysqlDB库,下载:http://www.codegood.com/archives/129

使用mysql.connector库,下载:http://dev.mysql.com/downloads/connector/python/

用法:

python连接mysql数据库的方法与连接sqlserver数据库的方法基本相同,不再介绍

你可能感兴趣的:(sql,数据库,mysql,server,python)