一、mysql模块:pymysql
链接数据库需要的信息:ip port user password db
1、注意:
连接数据库,port必须是int型,字符编码是utf8,不能是utf-8,password必须是字符串,db是选择数据库,加上autocommit=True,每次修改数据库就不用写conn.commit()
2、步骤:
(1)建立连接:
conn=pymysql.connect(host='118.22.3.21',user='nn','port=3306,db='student',password='123456',charset='utf8',autocommit=Ture)
(2)建立游标:执行SQL
# cur=conn.cursor() #游标类型默认是元组 cur=conn.cursor(pymysql.cursors.DictCursor) #用pymysql.cursors.DictCursor 游标类型返回类型是字典,多条结果时,返回的是二维字典
(3)执行:先execute(),再fetchall()
sql="insert app_student ( `name`, `sex`, `age`, `addr`, `grade`, `phone`, `gold`) values ( 'hanmin', '男', '18', '河南省济源市北海大道32号', '天蝎座', '18611229999', '100');" sql2="select * from app_student where name='hanmin'" print(cur.execute(sql2)) # #execute()只能执行语句,不能获取结果 print(cur.fetchall)#只是获取结果,取到所有的结果,结果类型是list print(cur.fetmany(3)) #从返回结果中取几条 print(cur.fetchone()) #,ur.fetchone(),只取一条返回结果。返回是数组或字典,如果可以确定返回结果只有1个的时候,就用fetchone(),使用fetchone()先注释掉fetchall,否则会取不到
(4)提交:
conn.commit() #如果有修改数据库的话,需要commit一下,但是如果在连接数据库时autocommit=True,就无需手动提交
(5)关闭连接
cur.close() #先关游标 conn.close() #再关连接。使用完数据库一定要断开连接,不然会占数据库
二、操作数据库的函数,可以直接拿来使用
import pymysql def op_mysql(host,user,password,db,sql,port=3306,many_tag=False): conn=pymysql.connect(host=host,user=user,password=password,db=db,port=port,charset='utf8',autocommit=True) cur=conn.cursor(pymysql.cursors.DictCursor) cur.execute(sql) if many_tag: result=cur.fetchall() else: result=cur.fetchone() cur.close() conn.close()