python3.4连接mysql5.7数据库增删改查
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "blzhu" 4 """ 5 python study 6 Date:2017 7 """ 8 import pymysql 9 import types 10 try: 11 # 获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库 12 conn = pymysql.connect(host='localhost', user='root', passwd='root', db='zbltest1', port=3306, charset='utf8') 13 cur = conn.cursor() # 获取一个游标 14 cur.execute("DROP table if exists student") 15 sql = """CREATE TABLE IF NOT EXISTS `student` ( 16 `zid` int(11) NOT NULL , 17 `name` varchar(255) NOT NULL, 18 `age` int(11) NOT NULL, 19 PRIMARY KEY (`zid`) 20 ) ENGINE=InnoDB DEFAULT CHARSET=utf8""" 21 cur.execute(sql) 22 for i in range(1, 100): 23 zbl_id = str(i) 24 zbl_name = 'zbl'+str(i) 25 zbl_age = i # 赋值类型一定要正确 26 sql = "INSERT student VALUES ('%s','%s','%s')" % (zbl_id, zbl_name, zbl_age) 27 print(sql) 28 cur.execute(sql) 29 conn.commit()# 将数据写入数据库 30 31 cur.execute('select * from student') 32 # data=cur.fetchall() 33 for d in cur: 34 # 注意int类型需要使用str函数转义 35 print("ID: " + str(d[0]) + ' 名字: ' + d[1] + " 年龄: " + str(d[2]))#当非字符串输出时一定加str()将之转换成字符串 36 print("row_number:", (cur.rownumber)) 37 # print('hello') 38 39 cur.close() # 关闭游标 40 conn.close() # 释放数据库资源 41 except Exception: 42 print("发生异常")
记得每次运算后在mysql workbench中要刷新才能体现出来有没有新增表格。
上面的代码修改后:
1 sql = """CREATE TABLE IF NOT EXISTS `student` ( 2 `zid` int(11) NOT NULL AUTO_INCREMENT, 3 `name` varchar(255) NOT NULL, 4 `age` int(11) NOT NULL, 5 PRIMARY KEY (`zid`) 6 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2"""
运行结果仍然一样,可以理解为自动增加的优先级不如手动增加的优先级。
但若修改为下面:
1 sql = "INSERT into 'student' VALUES ('%s','%s','%s')" % (zbl_id, zbl_name, zbl_age)
就会发生错误,错在student不应该加引号。into加不加都行。
sql = "INSERT into 'student' ('zid','name','age') VALUES ('%s','%s','%s')" % (zbl_id, zbl_name, zbl_age)也会发生错误。
1.DB-API
下面是增删改查功能:
1 #!/usr/bin/python3 2 import pymysql 3 import types 4 5 db=pymysql.connect("localhost","root","123456","python"); 6 7 cursor=db.cursor() 8 9 #创建user表 10 cursor.execute("drop table if exists user") 11 sql="""CREATE TABLE IF NOT EXISTS `user` ( 12 `id` int(11) NOT NULL AUTO_INCREMENT, 13 `name` varchar(255) NOT NULL, 14 `age` int(11) NOT NULL, 15 PRIMARY KEY (`id`) 16 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0""" 17 18 cursor.execute(sql) 19 20 21 #user插入数据 22 sql="""INSERT INTO `user` (`name`, `age`) VALUES 23 ('test1', 1), 24 ('test2', 2), 25 ('test3', 3), 26 ('test4', 4), 27 ('test5', 5), 28 ('test6', 6);""" 29 30 try: 31 # 执行sql语句 32 cursor.execute(sql) 33 # 提交到数据库执行 34 db.commit() 35 except: 36 # 如果发生错误则回滚 37 db.rollback() 38 39 40 #更新 41 id=1 42 sql="update user set age=100 where id='%s'" % (id) 43 try: 44 cursor.execute(sql) 45 db.commit() 46 except: 47 db.rollback() 48 49 #删除 50 id=2 51 sql="delete from user where id='%s'" % (id) 52 try: 53 cursor.execute(sql) 54 db.commit() 55 except: 56 db.rollback() 57 58 59 #查询 60 cursor.execute("select * from user") 61 62 results=cursor.fetchall() 63 64 for row in results: 65 name=row[0] 66 age=row[1] 67 #print(type(row[1])) #打印变量类型 <class 'str'> 68 69 print ("name=%s,age=%s" % \ 70 (age, name))
View Code
下面是我的增删改查:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "blzhu" 4 """ 5 python study 6 Date:2017 7 """ 8 import pymysql 9 import types 10 try: 11 # 获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库 12 conn = pymysql.connect(host='localhost', user='root', passwd='root', db='zbltest1', port=3306, charset='utf8') 13 cur = conn.cursor() # 获取一个游标 14 cur.execute("set global max_allowed_packet = 100 * 1024 * 1024 ") 15 cur.close() # 关闭游标 16 conn.close() # 释放数据库资源 17 18 conn = pymysql.connect(host='localhost', user='root', passwd='root', db='zbltest1', port=3306, charset='utf8') 19 cur = conn.cursor() # 获取一个游标 20 cur.execute("DROP table if exists student") 21 sql = """CREATE TABLE IF NOT EXISTS `student` ( 22 `zid` int(101) NOT NULL AUTO_INCREMENT, 23 `name` varchar(255) NOT NULL, 24 `age` int(101) NOT NULL, 25 PRIMARY KEY (`zid`) 26 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0""" 27 cur.execute(sql) 28 # 增加 29 for i in range(1, 10): 30 zbl_id = str(i) 31 zbl_name = 'zbl'+str(i) 32 zbl_age = i # 赋值类型一定要正确 33 # sql = "INSERT student VALUES ('%s','%s','%s')" % (zbl_id, zbl_name, zbl_age) #正确 34 sql = "INSERT student VALUES ('%s','%s','%d')" % (zbl_id, zbl_name, zbl_age) #'%d'也正确 35 print(sql) 36 cur.execute(sql) 37 conn.commit()# 将数据写入数据库 38 # 更新 39 id = 1 40 sql = "update student set age=100 where zid='%s'" % (id) 41 try: 42 cur.execute(sql) 43 conn.commit() 44 except: 45 conn.rollback() 46 47 # 删除 48 id = 2 49 sql = "delete from student where zid='%s'" % (id) 50 try: 51 cur.execute(sql) 52 conn.commit() 53 except: 54 conn.rollback() 55 #查1 56 cur.execute("select * from user") 57 results = cur.fetchall() 58 for row in results: 59 zid = row[0] 60 name = row[1] 61 age = row[2] 62 # print(type(row[1])) #打印变量类型 <class 'str'> 63 64 print("zid=%s,name=%s,age=%s" % \ 65 (zid,name, age)) 66 # 查2 67 cur.execute('select * from student') 68 for d in cur: 69 # 注意int类型需要使用str函数转义 70 print("ID: " + str(d[0]) + ' 名字: ' + d[1] + " 年龄: " + str(d[2]))#当非字符串输出时一定加str()将之转换成字符串 71 print("row_number:", (cur.rownumber)) 72 # print('hello') 73 74 cur.close() # 关闭游标 75 conn.close() # 释放数据库资源 76 except Exception: 77 print("发生异常")
转载于:https://www.cnblogs.com/zhubinglong/p/7053220.html
python3.4连接mysql5.7数据库增删改查相关推荐
- windows vs2022 c/c++连接操作postgresql数据库 - 增删改查
关于环境的配置请参考上一篇文章,本文仅包含示例代码 namespace idealand {typedef int (*PGResultHandler)(PGresult*);class DB{pub ...
- Java连接Mysql数据库增删改查实现
Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...
- mfc连接mysql增删改查_java实现mysql数据库增删改查
1.连接数据库: import java.sql.Connection; import java.sql.DriverManager; public class DBConnection { stat ...
- jdbc链接mysql按照id查询_使用jdbc连接并操作Oracle数据库(增删改查IDUS)
使用jdbc连接并操作Oracle数据库(增删改查IDUS) [oracle@zaibei-db ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Pro ...
- PostgreSQL连接到数据库增删改查
1:docker安装PostgreSQL docker run --name postgresql -v /my/own/datadir:/var/lib/postgresql/data -e POS ...
- sql增删改查_快速搞定数据库增删改查|附思维导图
数据库学习,增删改查一直是测试工程师面试笔试的必考知识点,对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实. 下面是关 ...
- Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作
此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...
- php+mysql+into_PHP+Mysql 如何实现数据库增删改查
PHP+Mysql实现数据库增删改查的方法:1.创建入口文件[index.html]连接数据库.查询数据:2.点击增加按钮,通过[addnews.html]添加数据:3.点击删除按钮,通过服务端文件[ ...
- mysql 中caption_Django-Model操作数据库(增删改查、连表结构)(示例代码)
Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表 基本结构 from django.db importmodelsclassuserinfo(models ...
- sql增删改查_面试速记之数据库增删改查|附思维导图
数据库学习,增删改查一直是测试工程师面试笔试的必考知识点,对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实.下面是关于 ...
最新文章
- Qt Remote Object(QtRO)动态Replica实现进程间通信
- 产品经理经验谈100篇(八)-产品经理分析框架解析
- centos关闭防火墙
- 746. Min Cost Climbing Stairs 题解
- 心酸!苹果自研5G芯片最快2022年推出 首款5G iPhone还得靠高通
- java future 不足_java Future用法和意义一句话击破
- python爬取网页文本_手把手教你如何用Python爬取网站文本信息
- 为什么学习python、python的安装
- 【数学建模】基于matlab GUI排队系统仿真【含Matlab源码 1253期】
- 保障4-0618任务打卡
- Markdown练习
- android PIN码解锁流程
- Equal Sign Bridge全球业务发展运营官Glen做客Hoo社区AMA全程直播回顾
- python梯形公式面积_算法(一)梯形近似法求曲线面积
- 微信公众号二次开发可以做哪些功能?
- 关于部分手机通话录音报start failed的问题
- web安全学习-sql注入-针对mysql的攻击
- 字长模型LP64,ILP64,LLP64,ILP32,LP32
- JVM原理及GC优化
- phpcpp拓展开发-变量Php::Value(二)