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()
相关推荐
二川bro21 小时前
量子计算入门:Python量子编程基础
python
百***49001 天前
SQL Server查看数据库中每张表的数据量和总数据量
数据库·sql·oracle
夏天的味道٥1 天前
@JsonIgnore对Date类型不生效
开发语言·python
代码or搬砖1 天前
MyBatisPlus中的常用注解
数据库·oracle·mybatis
盼哥PyAI实验室1 天前
MySQL 数据库入门第一课:安装、账户、库、表与数据操作详解
数据库·mysql
tsumikistep1 天前
【前后端】接口文档与导入
前端·后端·python·硬件架构
小白学大数据1 天前
Python爬虫伪装策略:如何模拟浏览器正常访问JSP站点
java·开发语言·爬虫·python
h***59331 天前
MySQL如何执行.sql 文件:详细教学指南
数据库·mysql
郑重其事,鹏程万里1 天前
键值存储数据库(chronicle-map)
数据库·oracle
Doro再努力1 天前
【MySQL数据库09】外键约束与多表查询基础
数据库·mysql