使用python导入pymysql库操作mysql(增删改查)
2018-06-18 00:39:06来源:未知 阅读 ()
首先需要安装pymysql,在命令行用命令:pip install pymysql
安装完成后,连接mysql数据库:
import pymysql.cursors
'''
连接数据库
'''
#使用pymysql指令连接数据库
connection = pymysql.connect(host = '127.0.0.1', #要连接的数据库的IP地址
user = 'root', #登录的账户名,如果登录的是最高权限账户则为root
password = '123456', #对应的密码
db = 'iris', #要连接的数据库
charset = 'utf8mb4', #设置编码格式
#返回到Python的结果,以什么方式存储,如Dict.Cursor是以字典的方式存储
#如果不加这行数据是以元组方式返回
cursorclass = pymysql.cursors.DictCursor
)
这样我们就建立了python 同mysql 的连接
创建表
try:
'''
创建表
'''
# 使用cursor()方法获取操作游标
with connection.cursor() as cursor:
# 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute("drop table if EXISTS users")
sql = '''create table users (
id int(11) not null auto_increment,
email varchar(255) collate utf8_bin not null,
password varchar(255) collate utf8_bin not null,
primary key (id)
)
engine = InnoDB default charset=utf8 collate=utf8_bin
auto_increment=1;
'''
cursor.execute(sql)
except:
# 发生错误时回滚
connection.rollback()
finally:
# 关闭连接
connection.close()
插入数据
# 从数据库链接中得到cursor的数据结构
with connection.cursor() as cursor:
sql = " insert into users(email, password) VALUES (%s, %s)"
cursor.execute(sql,('webmaster@python.org','very_secret'))
# 执行到这一行指令时才是真正改变了数据库,之前只是缓存在内存中
connection.commit()
批量插入数据
'''
批量插入数据
'''
#读取文件
with open('iris.csv', 'r', encoding='utf-8', newline='') as f:
i = 0 #用来记录读取文件中数据的的次数
z = 0 #用来记录读取文件中数据的的次数
list = []
for line in f:
strs = line.split(',')
data = (strs[0], strs[1], strs[2], strs[3], strs[4].replace("\n","")) #数据的最后一行会有一个\n换行符,用replace替换掉
list.append(data)
i += 1
z += 1
if i >= 10: #用于现在一次插入多少条这里是10条插入一次
with connection.cursor() as cursor:
sql = "insert into iris(sepal_length, sepal_width, petal_length, petal_width, uspecies) VALUES (%s, %s, %s, %s, %s)"
cursor.executemany(sql, list) #批量添加数据时 要用executemany
connection.commit()
print("插入{}条数据,已插入{}条数据".format(i, z))
i = 0 #对计数归零
list.clear() #清理数据列表
if i > 0 : # 循环文件完毕后,对剩余的数据进行插入,(例如小于10的剩余数据,比如你的文件有55行,剩余的5行就要这样插入)
cursor.executemany(sql, list)
connection.commit()
查询数据
'''
查询数据
'''
#单一数据
with connection.cursor() as cursor:
sql = " select id, email, password from users where email = %s"
cursor.execute(sql,('sfs1100@126.com'))
result = cursor.fetchone() #fetchone()只取出第一条结果
print(result)
print(type(result))
#多条数据
with connection.cursor() as cursor:
sql = " select * from iris where sepal_length > %s"
cursor.execute(sql, (3))
result = cursor.fetchall() #fetchone()取出查询后的所有数据
print(result)
print(type(result))
for each in result:
print(each['uspecies'])
更新数据
'''
更新数据
'''
with connection.cursor() as cursor:
sql = " update users set email = %s where password = %s"
cursor.execute(sql, ('sfs1100@126.com', 'very_secret'))
connection.commit()
删除数据
'''
删除数据
'''
with connection.cursor() as cursor:
sql = "delete from users where email = %s"
cursor.execute(sql, ('sfs1100@126.com'))
connection.commit()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:python pickle模块
下一篇:创建web站点(单例模式)
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash