基于python实现的MySQL

2023-12-20 06:43:57

一、MySQL数据操作

  1. 新增数据
insert into 表名(列名,列名) values(值,值)
insert into 表名(列名,列名) values(值,值),(值,值),(值,值),(值,值);
  1. 删除数据
delete from表名
delete from 表名 where 条件
  1. 修改数据
update 表名 set= 值
update 表名 set= 值,列 = 值
update 表名 set= 值 where 条件
  1. 查询数据
select * from 表名称
select 列名称,列名称 from 表名称
select 列名称,列名称 from 表名称 where 条件

1.创建表结构

创建数据库unicom

create database unicom DEFAULT CHARSEF utf8 COLLATE utf8_general_ci;

进入数据库

use unicom

创建数据表admin

create table admin(
    id int not null auto_increment primary key,
    username varchar(16) not null,
    password varchar(64) not null,
    mobile char(11) not null
) default charset=utf8;

2.python操作MySQL

用python代码连接MySQL并发送指令

pip install pymysql

2.1创建数据

import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="root123",charset='utf8',db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入,可以用pymysql中的%s占位符)
# sql = "insert into admin(username,password,mobile) values('zhangsan','123','15120123246')"
# cursor.execute(sql)

# sql = "insert into admin(username,password,mobile) values(%s,%s,%s)"
# cursor.execute(sql,['张三','1123','15120432232'])

sql = "insert into admin(username,password,mobile) values(%(n1)s,%(n2)s,%(n3)s)"
cursor.execute(sql,{"n1":"张三","n2":"123","n3":"15120432312"})

conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

2.2查询数据

import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="root123",charset='utf8',db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入,可以用pymysql中的%s占位符)
sql = "select * from admin"
cursor.execute(sql)
data_list = cursor.fetchall() # fetchall获取数据库返回的所有值,fetchone获取符合条件的第一条数据

conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

2.3删除数据

import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="root123",charset='utf8',db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入,可以用pymysql中的%s占位符)
sql = "delete from admin where id = %s"
cursor.execute(sql,[3,])
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

2.4修改数据

import pymysql

# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="root123",charset='utf8',db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入,可以用pymysql中的%s占位符)
sql = "update admin set mobile=%s where id = %s"
cursor.execute(sql,["15120432654",4, ])
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

3.强调

  • 在进行新增、删除、修改时,一定要记得commit,不然数据库没有数据
cursor.execute("...")
conn.commit()
  • 在查询时,不需要commit,执行fetchall或者fetchone
cursor.execute("...")

# 所有数据,列表套字典,无数据时是none
data_list = cursor.fetchall() # fetchall获取数据库返回的所有值,fetchone获取符合条件的第一条数据

# 第一条数据,字典,无数据时是空列表
data_list = cursor.fetchone()

conn.commit()
  • 对于SQL语句不要用python的字符串格式化进行拼接(会被SQL注入),一定要用execute + 参数
cursor.execute(".%s....%s",["xx","xx"])

4.案例:Flask+MySQL

在这里插入图片描述

文章来源:https://blog.csdn.net/m0_53181852/article/details/135079321
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。