版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、pymysql模块的导入
用来演示Python 和 MysSQL数据库的交互
操作之前需要导入模块:
第一种:import pymysql
电脑的cmd命令:
pip install -i https://pypi.douban.com/simple/ pymysql
第二种:import mysqldb
这是Python2的操作,已经废弃了
下载完成之后,File———setting————Project +自己文件名——第一个里面有MySQL则没问题
二、pymysql的使用流程
1.建立数据库连接 conn
2.创建游标对象 cur = conn.cursor()
3.通过创建的游标 cur 执行sql语句,cur.exectute("SQL语句")
4.提交:conn.commit()
5.关闭游标:cur.close()
6.断开连接:conn.close()
"""
1.创建于数据库连接的对象:调用connect()
conn = pymysql.connect(参数列表)
参数列表:
1)host:主机地址
2)port:端口号 默认是 3306
3)db:数据库名称
4)user:用户名
5)charset:编码方式,推荐使用utf8
2.连接对象常用方法:
1)close():关闭连接
2)commut():提交到数据库执行
3)rollback():回滚
数据被修改之后,程序出异常了,rollback可以将数据恢复到被修改之前(必须是在commit之前)
4)cursor():用来创建游标对象,用于执行SQL语句
3.游标对象
cur = conn.cursor()
cur.execute(SQL语句)
4.常用方法
1.execute(SQL命令,[SQL语句补位元素])
类似于:print("我叫%s,今年%d岁"%("小米",18)
cur.execute("insert into stu(name) values(%s)",["张三"])
2.fetchone()
获取结果集的第一条记录
返回的值是一个元组,取值和列表一样,通过下标取值
比如:t = (1,"张无忌") ————>取出姓名:t[1]
3.fetchmany(n)
获取n条记录
4.fetchall()
获取所有记录
小知识1:
try:
语句1
except Exception as e:
语句2
异常捕获:
如果程序正常执行,则执行语句1
如果程序出现异常,为了保证程序不崩溃,咋们对异常进行捕获
Exception:
所有异常都能捕获
as e:
是取别名
小知识2:
数据库远程连接,电脑cmd:ipconfig
在内网中,host默认的是本机
"""
三、代码案例
import pymysql
#1.建立数据库连接
conn = pymysql.connect(host = "localhost",
user = "root",
passwd = "123456",
port = 3306,
db = "python",
charset = "utf8")
#2.创建游标对象
cur = conn.cursor()
#测试SQL语句补位
name1 = input("请输入姓名:")
cur.execute("insert into stu(name) values(%s)",[name1])
#3.通过创建游标 cur 执行 sql语句
#**************************************************************************
#添加语句
sql_insert = "insert into stu VALUE (3,'张无忌','1701');"
cur.execute(sql_insert)
#**************************************************************************
#删除语句
sql_delect = "delete from stu where id = 2";
cur.execute(sql_delect)
#**************************************************************************
#这是查询语句
sql_select = "select * from student where ID = %s;"
cur.execute(sql_select,["88"])
L = cur.fetchall() # L的数据类型为元组类型
if L == ():
print("hahahahah")
print(L[0])
print(L[0][1])
print(L)
print(len(L))
#**************************************************************************
#这是创建表语句
sql_select = "create table tea(" \
"name varchar(50) primary key," \
"pwd varchar(50)" \
")CHARACTER set utf8;"
cur.execute(sql_select)
#**************************************************************************
sql_insert = "insert into tea VALUE ('zddds','123');"
cur.execute(sql_insert)
sql_insert = "insert into student VALUE ('zs','12ddd3','123');"
cur.execute(sql_insert)
#**************************************************************************
#4.提交到数据库进行持久化保存
conn.commit()
#5.关闭游标
cur.close()
#6断开连接
conn.close()