python操作mysql数据库

python 复制代码
# 连接数据库
mysql -u root -p
#u是用户名 p需要用密码登录数据库

# 查看数据库
show database;

# 选择数据库
use database_name;

#查看数据库当中的table表
show tables;

#创建数据库
create database examination;

#删除数据库
drop table examination;
python 复制代码
#创建表
create TABLE house (
  id int(11) unsigned NOT NULL AUTO_INCREMENT,
  price decimal(10,2) DEFAULT NULL,
  unit varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
  area varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
  direction varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
  floor varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
  layout varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

#查看表结构
desc house
#查看建表语句
show create table house
python 复制代码
# 创建表
create table class(
    id int(11) unsigned not null auto_increment,
    name varchar(80) not null,
    primary key(id)
);
create table exam(
    id int(11) unsigned not null auto_increment,
    name varchar(80) not null,
    primary key(id)
);
create table score(
    id int(11) unsigned not null auto_increment,
    student_id int(11) not null,
    subject_id int(11) not null,
    exam_id int(11) not null,
    score int(11) not null,
    primary key(id)
);
create table student(
    id int(11) unsigned not null auto_increment,
    class_id int(11) not null,
    sex char(10) not null,
    name varchar(80) not null,
    primary key(id)
);
create table subject(
    id int(11) unsigned not null auto_increment,
    name varchar(80) not null,
    primary key(id)
);

#插入数据
insert into class(name)
values('高二九班');

#修改数据
update class set name = '环境18-1'
where id = '3';

使用Python操作数据库

python 复制代码
import pymysql
python 复制代码
DATABASE = {
    'host':'127.0.0.1',
    'database':'examination',
    'user':'root',
    'password':'123qwe'
#     'charset':'utf8mb4'
}
#连接到数据库
# conn = pymysql.connect(host = '127.0.0.1',user = 'root',password = '123qwe', db = 'examination')
conn = pymysql.connect(**DATABASE)

查询操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql查询
sql = "select * from class;"
cursor.execute(sql)
#获取查询结果
results = cursor.fetchall()
#打印查询结果
for row in results:
    print(row)

插入操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql插入
sql = "insert into class(name) values('高一二十一班');"
cursor.execute(sql)
sql = "insert into class(name) values('信息18-2');"
cursor.execute(sql)
#提交sql插入语句
conn.commit()

查询操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql查询
sql = "select * from class;"
cursor.execute(sql)
#获取查询结果
results = cursor.fetchall()
#打印查询结果
for row in results:
    print(row)
复制代码
(1, '高二九班')
(2, '高三十七班')
(3, '环境18-1')
(4, '高一二十一班')
(5, '信息18-2')

更新操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql更新
sql = "update class set name = '初二十四班' where id = 4;"
cursor.execute(sql)
#提交sql更新语句
conn.commit()

查询操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql查询
sql = "select * from class;"
cursor.execute(sql)
#获取查询结果
results = cursor.fetchall()
#打印查询结果
for row in results:
    print(row)
复制代码
(1, '高二九班')
(2, '高三十七班')
(3, '环境18-1')
(4, '初二十四班')
(5, '信息18-2')

删除操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql删除
sql = "delete from class where id = 4;"
cursor.execute(sql)
#提交sql删除语句
conn.commit()

查询操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql查询
sql = "select * from class;"
cursor.execute(sql)
#获取查询结果
results = cursor.fetchall()
#打印查询结果
for row in results:
    print(row)
复制代码
(1, '高二九班')
(2, '高三十七班')
(3, '环境18-1')
(5, '信息18-2')

更新操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql更新
sql = "update class set name = '高一二十一班',id = 4 where id = 5;"
cursor.execute(sql)
#提交sql更新语句
conn.commit()

查询操作

python 复制代码
#创建游标
cursor = conn.cursor()
#执行sql查询
sql = "select * from class;"
cursor.execute(sql)
#获取查询结果
results = cursor.fetchall()
#打印查询结果
for row in results:
    print(row)
复制代码
(1, '高二九班')
(2, '高三十七班')
(3, '环境18-1')
(4, '高一二十一班')
python 复制代码
#关闭游标和连接
cursor.close()
conn.close()
python 复制代码
# 捕捉异常
try:
    a = 10
    b = a+'hello'
except TypeError as e:
    print(e)
复制代码
unsupported operand type(s) for +: 'int' and 'str'
python 复制代码
a = 10
b = a+'hello'
复制代码
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-71-00244769db33> in <module>
      1 a = 10
----> 2 b = a+'hello'


TypeError: unsupported operand type(s) for +: 'int' and 'str'
python 复制代码
#实现回滚操作(数据库操作回滚失败)
try:
    #执行sql查询
    sql = "insert into class(name) values('管科24-1');"
    #创建游标
    cursor = conn.cursor()
    #执行sql
    cursor.execute(sql)
    
    #do something
    error = 10 + 'hello'
    
    #提交sql插入语句
    conn.commit()
except Exception as e:
    print(e)
    conn.rollback()
相关推荐
l1t20 分钟前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
酷飞飞4 小时前
Python网络与多任务编程:TCP/UDP实战指南
网络·python·tcp/ip
MarkHard1234 小时前
如何利用redis使用一个滑动窗口限流
数据库·redis·缓存
数字化顾问5 小时前
Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测
python
学生信的大叔6 小时前
【Python自动化】Ubuntu24.04配置Selenium并测试
python·selenium·自动化
island13146 小时前
【Redis#10】渐进式遍历 | 数据库管理 | redis_cli | RES
数据库·redis·bootstrap
心想事成的幸运大王6 小时前
Redis的过期策略
数据库·redis·缓存
倔强的石头_6 小时前
CentOS 上安装KingbaseES(ISO包)详细教程
数据库
2401_897930067 小时前
使用Docker轻松部署Neo4j图数据库
数据库·docker·neo4j
诗句藏于尽头7 小时前
Django模型与数据库表映射的两种方式
数据库·python·django