
pip install pymysql
#引入模块import pymysql
database(db): 数据库的名称
host: 连接的 MySQL 主机,如果是本地连接则是'localhost'
user: 连接的用户名
port: 连接的 MySQL 主机的端口,默认是 3306
password: 连接的密码
#连接数据库pymysql.connectif __name__ == '__main__':db='student'#可改host='localhost'user='root'password='******'port=3306db=pymysql.connect(host=host,user=user,password=password,port=3306,database=db,charset='utf8')print(db)
def main():# 创建Connection连接conn = pymysql.connect(host='localhost', port=3306 , user='root', password='sh99', database='student',charset='utf8')# 获取Cursor对象cs1 = conn.cursor()#查询----------------------------------------------------------------------------------------------------------------------------#执行select语句,查询student表里的数据count = cs1.execute("select * from std")# 打印受影响的行数print("查询到%d条数据:"% count)for i in range(count):# 获取查询结果result = cs1.fetchone()# 打印查询结果print(result)#查询结束-----------------------------------------------------------------------------------------------------------------------------# 提交之前的操作,如果之前已经执行过多次的excute,那么就都进行提交conn.commit()# 关闭Cursor对象cs1.close()# 关闭Connection连接conn.close()if __name__ == '__main__':main()
#开始增删改查def main():# 创建Connection连接conn = pymysql.connect(host='localhost', port=3306 , user='root', password='sh99', database='student',charset='utf8')# 获取Cursor对象cs1 = conn.cursor()#--------------------------------------------------------------------------------------------------------------------------#创建表----------------------------------------------------count = cs1.execute("CREATE TABLE std (pNo varchar(16) primary key, pName varchar(16), pChinese float, pMath float, pEnglish float)")# 增加数据------------------------------------------------# # 执行insert语句,并返回受影响的行数:添加一条数据# #单个增加# count = cs1.execute('insert into std (pNo,pName,pChinese,pMath,pEnglish) values (1,"张三",90,95,98)')# #批量增加# sql = "INSERT INTO std (pNo,pName,pChinese,pMath,pEnglish) VALUES (%s,%s,%s,%s,%s)"# val = [# (2,"李四",87,86,78),# (3,"张五",65,86,88),# (4,"王六",95,89,97)# ]# count = cs1.executemany(sql, val)# 打印受影响的行数print("受到影响的是%d条数据"%count)# 更改数据--------------------------------------------------#count = cs1.execute('update std set pNo=5 where pNo=2')# 打印受影响的行数print("受到影响的是%d条数据"%count)# 删除数据 -------------------------------------------------#count = cs1.execute('delete from std where pNo=5')# 打印受影响的行数print("受到影响的是%d条数据"%count)#----------------------------------------------------------------------------------------------------------------------------# 提交之前的操作,如果之前已经执行过多次的excute,那么就都进行提交conn.commit()# 关闭Cursor对象cs1.close()# 关闭Connection连接conn.close()if __name__ == '__main__':main()
方法名说明: close(): 关闭连接
commit(): 提交
cursor(): 返回 Cursor 对象,用于执行 sql 语句并获得结果
Cursor 对象用于执行 sql 语句,使用频率最高的语句为 select、insert、update、delete 获取 Cursor 对象:调用 Connection 对象的 cursor()方法
close(): 关闭
execulte(operation [,parameters])执行语句,返回受影响的行数,主要用于执行 insert、update、delete 语句,也可以执行 create、alter、drop 等语句
fetchone(): 执行查询语句时,获取查询结果集的第一行数据,返回一个元组
fetchall(): 执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组作为返回
1.简述 Python 连接 MySQL 数据库的方法?
2.fetchone()怎么样判断读到数据库末尾?
3.fetchall()与 fetchone()有什么区别?
4.rowcount()返回值代表什么?
5.MySQL 中怎么样使用带参数的 SQL 命令?
6.数据库操作完成后为什么要调用 commit()函数?
7.什么是游标 cursor,它有什么作用?