1.安装pymysql包
pip install pymysql
2.连接数据库
import pymysql
conn = pymysql.connect(
host = ' ' , #数据库地址
port = 3306, #端口号,默认是3306
user = 'test', #用户名
password = 'abc123456' , #密码
db = 'longtengserver' #库名,要连接的数据库的名字,不填的话连接的是数据库服务器下面所有的库
)
3.建立游标 #默认游标
cur = conn.cursor()
4.执行sql
4.1.1执行查询
cur.execute("select * from cardInfo where cardNumber='abc_00001';") #只执行sql,返回的也只是执行条数,不返回执行结果
conn.commit() #为了防止执行多条sql时乱,尽管查询sql不用提交,也可以提交一下防止乱
4.1.2获取结果
result = cur.fetchall() #获取所有结果,返回的是一个元组嵌套元组 ( ( ) ,)
result = cur.fetchone() #获取一条结果,返回的是一个元组 ()
result = cur.fetchmany(5) #获取前5条结果
4.2.1执行修改
cur.execute("delete from cardInfo where cardNumber='abc_00001';") #执行后不提交是不生效的
conn.commit() #用conn去提交,不是cur
5.关闭
cur.close() #关闭游标
conn.close() #关闭连接
3.建立字典游标
cur = conn.cursor(pymysql.cursors.DictCursor)
4.执行sql
4.1.1执行查询
cur.execute("select * from cardInfo where cardNumber='abc_00001';") #只执行sql,返回的也只是执行条数,不返回执行结果
4.1.2获取结果
result = cur.fetchall() #获取所有结果,返回的是一个列表嵌套字典的格式,会把字段名和对应的值都变成字典格式
封装
improt pymysql
class DB(object):
def __init__(self):
self.conn = pymysql.connect(
host = ' ' , #数据库地址
port = 3306, #端口号,默认是3306
user = 'test', #用户名
password = 'abc123456' , #密码
db = 'longtengserver' , #库名,要连接的数据库的名字,不填的话连接的是数据库服务器下面所有的库
autocommit = True
)
self.cur = self.conn.cursor(pymysql.cursors.DictCursor)
def do_sql(self, sql)
print('执行sql', sql)
self.cur.execute(sql)
# self.cur.commit()
return self.cur.fetchall()