利用python调用pymysql来对数据库进行操作。
首先在cmd中查看我们将要操作的数据表infor:
查看infor表列的定义:
现在使用pymysql对mysql进行操作。
(一) SELECT 检索数据
代码如下:
import pymysql
'''
pymysql使用指南
host = '127.0.0.1'
回送地址,指本地机
port = 3306
MySQL的默认端口
user
用户名
passwd
密码
db
数据库
charset
字符类型
'''
my_con = pymysql.connect(host ='127.0.0.1',
port = 3306,
user = 'root',
passwd = '12345678',
db = 'my_firstsql',
charset = 'utf8'
)
my_cousor = my_con.cursor()
#获取数据库游标对象
sql_select = 'SELECT * FROM infor;'
#用一个变量接收mysql语句
my_cousor.execute(sql_select)
#执行
my_cousor.rowcount
#返回被execute影响的数据的行数,注:execute不是方法.
get_row = my_cousor.fetchone()
#取结果集下一行
print(get_row)
get_row = my_cousor.fetchmany(3)
#取结果集下三行
print(get_row)
get_row = my_cousor.fetchall()
#取结果集剩下所有行
print(get_row)
my_cousor.close()
#关闭游标
my_con.close()
#关闭连接
结果如下:
(1, 'Tom', 18, '[email protected]')
((2, 'Ada', 19, '[email protected]'), (3,'Peter', 20, '[email protected]'), (4, 'Green', 29, '[email protected]'))
((5, 'Douglas', 32, '[email protected]'),(6, 'White', 16, '[email protected]'))
(一) 使用INSERT、DELETE、UPDATE进行增删改
代码如下:
import pymysql
my_con = pymysql.connect(host = '127.0.0.1',
port = 3306,
user = 'root',
passwd = '12345678',
db = 'my_firstsql',
charset = 'utf8'
)
my_cousor = my_con.cursor()
#获取数据库游标对象
sql_insert = 'INSERT INTO INFOR(id, user_name, age, mail) VALUES (NULL, "DOGE", 26, "[email protected]")'
sql_update = 'UPDATE infor SET mail = "playstation.com" WHERE user_name = "Peter"'
sql_delete = 'DELETE FROM infor WHERE age > 28'
#将mysql的增删改语句存在变量中
my_cousor.execute(sql_insert)
#执行增
print(my_cousor.rowcount)
my_cousor.execute(sql_update)
#执行改
print(my_cousor.rowcount)
my_cousor.execute(sql_delete)
#执行删
print(my_cousor.rowcount)
my_con.commit()
#提交事务
#如果没有my_con.commit()语句,则事务无法提交
#则此时查看数据库中的数据表,发现infor没有发生改变
my_cousor.close()
#关闭游标
my_con.close()
#关闭连接
结果如下:
1
1
2
再查看数据库中的infor数据表:
我们发现Peter邮箱被更改,age大于28岁的用户记录被删除,最后一行多了一条在python中录入的新记录(由于infor表之前被更改过多次,所以新增记录的id不是7,而是16)