前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3使用PyMySQL库对mysql数据库进行数据操作

Python3使用PyMySQL库对mysql数据库进行数据操作

作者头像
HcodeBlogger
发布2020-07-14 10:09:15
1.6K0
发布2020-07-14 10:09:15
举报
文章被收录于专栏:Hcode网站Hcode网站

前言

今天使用py3里面的pymysql库对MySQL数据库进行DDL,DML语句的操作,分别为创建表,修改表,删除表,对表的数据进行增删改查,SQL语句都是举的简单例子,具体多种格式可去自行学习SQL语句

首先是DDL语句

①下面是DDL对表结构的修改
代码语言:javascript
复制
alter table [表名] modify [字段名] [新属性] #修改原有属性
alter table [表名] change [老字段]   [新字段]  [数据类型] [属性] #重命名字段
alter table [表名]  add (column)  [字段名]  [数据类型]  [列属性] #新增字段 括号内容可加可不加
alter table 表名 drop 字段名  #新增字段
②创建表与删除表

创建表

代码语言:javascript
复制
   create table t_student[表名](
     sno int primary key auto_increment, #主键,自增长
     sname varchar(30) not null,
     age int(2),
     score float(3,1)
     [字段名] [属性] [可设置primary key 主键] [是否非空,默认可以空] [default 默认值] [comment 备注名]
    )

删除表

代码语言:javascript
复制
DROP TABLE [表名]

具体代码如下,DDL语句就可放在sql字符串里面执行不同命令

代码语言:javascript
复制
#导入pymysql
import pymysql
#创建连接 参数分别是主机号,用户名,密码,数据库名字,端口号
con=pymysql.connect(host='localhost',user='root',password='123456',database='test',port=3306)
#创建游标对象
cur=con.cursor()
#编写创建表的sql
sql="""
    create table t_student(
     sno int primary key auto_increment,
     sname varchar(30) not null,
     age int(2),
     score float(3,1)
    )
""" #在此处修改
try:
    # 执行创建表的sql
    cur.execute(sql)
    print('创建表成功')
except Exception as e:
    print(e)
    print('创建表失败')
finally:
    #关闭连接
    con.close()

然后是DML语句

①插入数据,多行与单行

sql语句

代码语言:javascript
复制
insert into [表名]([字段名...]) values([%s...])

具体看下面代码

代码语言:javascript
复制
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',password='123456',user='root',port=3306,database='test')
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
    # 执行sql
    cur.executemany(sql,[('张三',19,99.8),('李四',18,99.9),('王五',18,99.8)])
    #当然插入一条就不用列表的形式
    #cur.execute(sql, ('张三', 18, 99.9)) #插入一条
    #提交事务
    con.commit()
    print('插入成功')
except Exception as e:
    print(e)
    con.rollback() #插入失败 事务回滚,一条DML指令不成功 全部都是默认失败
    print('插入失败')
finally:
    #关闭连接
    con.close()

②删除数据

SQL删除数据格式

代码语言:javascript
复制
delete from [表名] where [条件] #条件就是字段名符合指定的条件

具体看下面代码

代码语言:javascript
复制
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',password='123456',user='root',port=3306,database='test')
#创建游标对象
cur=con.cursor()
#编写删除的sql
sql='delete from t_student where sname=%s'
#执行sql语句
try:
    cur.execute(sql,('张三'))
    con.commit()
    print('删除成功')
except Exception as e:
    print(e)
    con.rollback()
    print('删除失败')
finally:
    #关闭连接
    con.close()

③修改数据

SQL修改数据的格式

代码语言:javascript
复制
update [表名] set [想要修改的目的] where [符合修改的条件]

具体看下面

代码语言:javascript
复制
#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',database='test',user='root',password='123456',port=3306)
#创建游标对象
cur=con.cursor()
#编写修改的sql
sql='update t_student set sname=%s where sno=%s'
#执行sql语句
try:
    cur.execute(sql,('张三',1)) #按顺序设置对应的参数
    con.commit()
    print('修改成功')
except Exception as e:
    print(e)
    con.rollback()
    print('修改失败')
finally:
    #关闭连接
    con.close()

④查询数据

SQL查询数据的格式 有很多花样 自行学习SQL吧

代码语言:javascript
复制
select * from t_student where age=18 #单表查询 获得所有表的字段属性
select sno,sname from t_student where age=18 #单表查询 获得对应条件指定的字段属性
select [表1].[字段名],[表2].[字段名] from [表1],[表2] where [表1].[字段名]=[表2].[字段名] #嵌套查询
代码语言:javascript
复制
#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',database='test',user='root',password='123456',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
    cur.execute(sql)
    #处理结果集
    students=cur.fetchall() #查询获得所有符合条件的结果 返回的是双重列表 一行数据一个列表
    #student=cur.fetchone() #查询获得单条查询结果 返回一个列表
    for student in students:
        sno=student[0]
        sname=student[1]
        age=student[2]
        score=student[3]
        print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭连接
    con.close()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年4月4日 2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 首先是DDL语句
    • ①下面是DDL对表结构的修改
      • ②创建表与删除表
      • 然后是DML语句
        • ①插入数据,多行与单行
          • ②删除数据
            • ③修改数据
              • ④查询数据
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档