pymysql(一)检索、增加、更新、删除数据
利用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, '234895@qq.com')
((2, 'Ada', 19, '1033794241@163.com'), (3,'Peter', 20, 'hotdog666@163.com'), (4, 'Green', 29, '243468938@126.com'))
((5, 'Douglas', 32, 'douglas32@163.com'),(6, 'White', 16, '237502983@qq.com'))
(一) 使用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, "doge123456@126.com")'
- 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)
转自https://blog.csdn.net/m0_37422217/article/details/76696740