python增删改查mysql_python之mysql的增删改查

本文介绍了Python使用pymysql库连接MySQL数据库,进行创建数据库、创建表、插入数据、更新数据、删除数据以及查询数据的基本操作。详细讲解了各种SQL语句的使用,并给出了具体的Python代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据库基础

表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式

行:行用于记录数据

记录:行内的数据

列:列用于规定数据格式

字段:数据的某个列

主键:唯一地标识表中的某一条记录,不能空,不能重复

二、数据库的数据类型

1、数字类型

整数: tinyint、smallint、mediumint、int、bigint

浮点数: float、double、real、decimal

日期和时间: date、time、datetime、timestamp、year

2、字符串类型

字符串: char、varchar

文本: tinytext、text、mediumtext、longtext

3、二进制

(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

三、Python之MySQL数据库操作

1、连接myaql创建新的数据库

import pymysql

# 打开数据库连接(ip/端口/数据库用户名/登录密码/数据库名)

conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456')

# 使用 cursor() 方法创建一个游标对象 cursor

cursor = conn.cursor()

# 编写sql语句创建数据库

sql1 = 'CREATE DATABASE test1 DEFAULT CHARACTER SET utf8'

# 执行sql语句

cursor.execute(sql1)

conn.close()

2、创建表

import pymysql

# 打开数据库连接(ip/端口/数据库用户名/登录密码/数据库名)

conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db = 'test1')

# 使用 cursor() 方法创建一个游标对象 cursor

cursor = conn.cursor()

# 编写sql语句创建表test_student_table

sql2 = 'CREATE TABLE IF NOT EXISTS test_student_table (id VARCHAR(255) NOT NULL,name VARCHAR(255) NOT NULL,age VARCHAR(255) NOT NULL,PRIMARY KEY (id))'

# 执行sql语句

cursor.execute(sql2)

conn.close()

3、往表中插入数据

import pymysql

def get_conn():

conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='test1') # db:表示数据库名称

return conn

def insert(sql):

conn = get_conn()

cur = conn.cursor()

result = cur.execute(sql)

print(result)

# commit方法才可以实现数据的插入,是真正将语句提交到数据库执行的方法。

conn.commit()

cur.close()

conn.close()

if __name__ == '__main__':

sql = 'INSERT INTO test_student_table VALUES(1,\'zhang\',12);''

insert(sql)

6a8852764377b2f7754f82753b13258f.png

sql占位符形式实现:

import pymysql

def get_conn():

conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='test1')

return conn

def insert(sql, args):

conn = get_conn()

cur = conn.cursor()

result = cur.execute(sql, args)

print(result)

conn.commit()

cur.close()

conn.close()

if __name__ == '__main__':

sql = 'INSERT INTO test_student_table VALUES(%s,%s,%s);'

insert(sql, (2, 'wang', 13))

c87eb71f1698ce21ad23cf2c603df1e3.png

下面代码均以占位符的形式实现sql语句。

插入多条语句实现:

import pymysql

def get_conn():

conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='test1')

return conn

def insert_many(sql, args):

conn = get_conn()

cur = conn.cursor()

result = cur.executemany(query=sql, args=args)

print(result)

conn.commit()

cur.close()

conn.close()

if __name__ == '__main__':

sql = 'insert into test_student_table VALUES (%s,%s,%s)'

args = [(3, 'li', 11), (4, 'sun', 12), (5, 'zhao', 13)]

insert_many(sql=sql, args=args)

3ffa0ca8d97b2d8ba6056f16bde098db.png

4、Python之更新操作

import pymysql

def get_conn():

conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test1') # db:表示数据库名称

return conn

def update(sql,args):

conn = get_conn()

cur = conn.cursor()

result = cur.execute(sql,args)

print(result)

conn.commit()

cur.close()

conn.close()

if __name__ == '__main__':

sql = 'UPDATE test_student_table SET NAME=%s WHERE id = %s;'

args = ('zhangsan', 1)

update(sql, args)

fb38e5329831c07cc20e1a168980a951.png

5、Python之删除操作

import pymysql

def get_conn():

conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test1') # db:表示数据库名称

return conn

def delete(sql,args):

conn = get_conn()

cur = conn.cursor()

result = cur.execute(sql,args)

print(result)

conn.commit()

cur.close()

conn.close()

if __name__ == '__main__':

sql = 'DELETE FROM test_student_table WHERE id = %s;'

args = (1,) # 单个元素的tuple写法

delete(sql,args)

97fa85b0f4bd70b8f4da7495c575cad4.png

6、Python之查询操作

import pymysql

def get_conn():

conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='test1')

return conn

def query(sql,args):

conn = get_conn()

cur = conn.cursor()

cur.execute(sql,args)

results = cur.fetchall()

print(type(results)) # 返回 tuple元组类型

for row in results:

print(row)

id = row[0]

name = row[1]

age = row[2]

print('id: ' + str(id) + ' name: ' + name + ' age: ' + str(age))

pass

conn.commit()

cur.close()

conn.close()

if __name__ == '__main__':

sql = 'SELECT * FROM test_student_table;'

query(sql,None)

输出:

(2, 'wang', 13)

id: 2 name: wang age: 13

(3, 'li', 11)

id: 3 name: li age: 11

(4, 'sun', 12)

id: 4 name: sun age: 12

(5, 'zhao', 13)

id: 5 name: zhao age: 13

b76485d2c9273c9afdfb7571f3d8df29.png

四、总结

1、创建数据库

create database 数据库名 charset=utf8;

2、删除数据库

drop database 数据库名;

3、切换数据库

use 数据库名;

4、查看当前选择的数据库

select database();

5、查看目前所有的数据库

show databases;

五、表操作

1、查看当前数据库中所有表

show tables;

2、创建表

create table 表名(列及类型);

列名:id

类型:int unsigned

约束1:not null

约束2:primary key

约束3:auto_increment

列的格式:列的名称 类型 约束

例如:

create table hero(h_id int auto_increment primary key,h_name varchar(10) not null);

3、修改表

语法:

alter table 表名 add(添加)|modify(修改)|drop(删除) 列名 类型;

添加列:h_skill 为字符类型

alter table hero add h_skill varchar(10);

修改列:h_skill修改本属性不能为空

alter table hero modify h_skill varchar(10) not null;

4、删除表

drop table 表名;

5、查看表结构

desc 表名;

6、更改表名称

rename table 原表名 to 新表名;

7、查看边的创建语句

show create table 表名

六、数据操作

1、增加数据

insert into 表名(列1,...) values(值1,...);

例如:

insert into hero(h_id,h_name,h_skill) values(1,'韩信','裂天爆斩');

主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准

2、简单查询数据

select * from 表名

3、修改数据

update 表名 set 列1=值1,... where 条件

4、删除数据

delete from 表名 where 条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值