博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python pymysql数据库之建库建表、增删改查
阅读量:6713 次
发布时间:2019-06-25

本文共 2727 字,大约阅读时间需要 9 分钟。

上次有同学问到,Python的持久化怎么处理。这次就带大家来体验一下,Python访问数据库。

首先要有个数据库

现在的数据库分类很多,以mysql为例。需要到mysql的官网上去下载mysql。

下载打开安装包,勾选常见的安装位置等配置以后,设置数据库用户名密码,启动mysql就可以了。 mac上的启动可以沿着以下路径开启: 系统偏好设置------Mysql------开启。如图所示:

点击按钮,当状态标志从红色的stopped变成绿色的running,就说明mysql已经启动完成。

然后需要有个Python模块

Python3的数据库模块可以是pymysql。安装可以通过pip安装:

安装完成后,你的python数据库的底层依赖算是完成了。

愉快的创建数据库、增删改查

创建数据库可以下载图形客户端(mysql workbench或者navicat等等),也可以通过Python代码。 这里我们使用Python代码来处理:

建库建表

建数据库,库名为awesome;建表,表名blogs;共有三列,列名 id,user_id, name

import pymysql# 建库和建表con = pymysql.connect(host='localhost', user='root',                      passwd='123456', charset='utf8')cur = con.cursor()# 开始建库cur.execute("create database awesome character set utf8;")# 使用库cur.execute("use awesome;")# 建表cur.execute("create table blogs(id char(20),user_id char(20),name char(20),)character set utf8;")复制代码

查询操作

查询表,表名blogs

# 1.建立连接,用户root 密码mysql123456 dbname:awesomedb = pymysql.connect("localhost","root","mysql123456","awesome")# 获取游标cur = db.cursor()# sql查询语句 表名blogssql = "select * from blogs"try:    cur.execute(sql)  # 执行sql语句    results = cur.fetchall()  # 获取查询的所有记录    print("id", "user_id", "name")    # 遍历结果    for row in results:        id = row[0]        user_id = row[1]        name = row[4]        print(id, name, user_id)except Exception as e:    raise efinally:    db.close()  # 关闭连接复制代码

插入操作

往表blog里插入一行数据(id,user_id,name) = ("test_id",'test_user_id','test_name')

# 2.插入操作db = pymysql.connect("localhost","root","mysql12345","awesome")cur_insert = db.cursor()# sql插入语句 表名blogssql_insert ="""insert into blogs(id,user_id,name) values ("test_id",'test_user_id','test_name')"""try:    cur_insert.execute(sql_insert)    # 提交    db.commit()    print('开始数据库插入操作')except Exception as e:    db.rollback()    print('数据库插入操作错误回滚')finally:    db.close()复制代码

更新操作

更新user_id = "test_user_id" 的行,将其 name 更新为 "update_test_name"

# 3.更新操作db = pymysql.connect("localhost","root","mysql12345","awesome")cur_update = db.cursor()sql_update = "update awesome.blogs set name = '%s' where user_id = '%s'"try:    cur_update.execute(sql_update % ("update_test_name", "test_user_id"))    # 提交    db.commit()    print('开始数据库更新操作')except Exception as e:    db.rollback()    print('数据库更新操作错误回滚')finally:    db.close()复制代码

删除操作

删除 name = "update_test_name" 的行

# 4.删除操作db = pymysql.connect("localhost","root","mysql12345","awesome")cur_delete = db.cursor()sql_delete = "delete from awesome.blogs where name = '%s'"try:    cur_delete.execute(sql_delete % ("update_test_name"))  # 像sql语句传递参数    # 提交    db.commit()    print('开始数据库删除操作')except Exception as e:    db.rollback()    print('数据库删除操作错误回滚')finally:    db.close()复制代码

这里以mysql为例,如果使用mongodb等其他数据库,使用方法也是类似的,大家可以举一反三。

转载于:https://juejin.im/post/5c9255496fb9a070b96f073c

你可能感兴趣的文章
学习JAVA 持续更新
查看>>
Spring propertyConfigurer类
查看>>
Linux系统分析工具之uptime,top(一)
查看>>
EIGRP之DUAL(扩散更新算法)
查看>>
cacti自定义数据收集脚本,创建Data Templates和Graph Templates
查看>>
对你同样重要的非技术贴,一封有效的求职信的具体写法
查看>>
在路由器里插入和删除ACL
查看>>
我的友情链接
查看>>
OpenStack从入门到放弃
查看>>
戴尔和EMC已经成为正式的竞争对手
查看>>
6425C-Lab12 管理DC(1)
查看>>
RocketMQ调研笔记
查看>>
maven 注册 jar
查看>>
高并发写入mysql的设计
查看>>
成长点滴:我不知道该说些什么?
查看>>
linux之使用man查看命令手册
查看>>
IT管理员如何保证你的内网安全?
查看>>
用U盘安装debian系统
查看>>
Mac 下得Jmeter 测试
查看>>
java基础之本地线程
查看>>