提示:以下是本篇文章正文内容,下面案例可供参考,案例转载于《Python快乐编程:web开发》实体书籍。
一、创建Mysql数据库与数据表
mysql -u root -p:命令行进入mysql数据库
# 查看所有数据库
SHOW DATABASES;
# 创建数据库hotel
CREATE DATABASE hotel;
# 使用数据库hotel
use hotel;
# 创建status表
create table status
(
statusid int(11),
statusname varchar(60),
isempty int(11),
isclear int(11),
primary key (statusid)
);
# 查看表status数据
select * from status;
# 创建style表
create table style
(
styleid int(11) AUTO_INCREMENT,
stylename varchar(60),
bedstyle varchar(20),
bedamount int(10),
price FLOAT(10),
PRIMARY KEY (styleid)
);
# 删除表style(该mysql命令选择性地执行)
# drop table style;
# 向表style插入数据
INSERT INTO style(stylename, bedstyle, bedamount, price)
VALUES ('单人房间', '单人高级套房', 1, 1000),
('单人间', '单人高级套间', 1, 1000),
('普通单人间', '普通单人床', 1, 200),
('普通双人间', '普通双人床', 1, 1000),
('豪华双人间', '豪华双人床', 1, 2000),
('一般双人间', '普通单人间', 2, 800),
('总统套间双人间', '总统套间双人床', 1, 5000);
# 查看表style数据
SELECT * FROM style;
# 修改表style中数据
update style set stylename = '豪华单人间',bedstyle = '豪华单人床',price = 500 where styleid = 1;
# 删除表中数据
delete from style where styleid = 2;
二、添加数据到表中
import pymysql
# 连接数据库
conn = pymysql.Connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='hotel',
charset='utf8'
)
# 获取游标
cursor = conn.cursor()
'''1、添加数据到表中'''
try:
sql_insert = """
INSERT INTO
style(stylename, bedstyle, bedamount, price)
VALUES('单人房间', '单人高级套房', 1, 1000),
('单人间', '单人高级套间', 1, 1000),
('普通单人间', '普通单人床', 1, 200),
('普通双人间', '普通双人床', 1, 1000),
('豪华双人间', '豪华双人床', 1, 2000),
('一般双人间', '普通单人间', 2, 800),
('总统套间双人间', '总统套间双人床', 1, 5000)"""
cursor.execute(sql_insert)
conn.commit()
except Exception as e:
print(e) # 打印异常信息
'''事务回滚,即出错后,不会继续执行,而是回到程序未执行的状态,原先执行的也不算了'''
conn.rollback()
# 关闭数据库连接和游标
conn.close()
cursor.close()
三、修改表中数据
import pymysql
# 连接数据库
conn = pymysql.Connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='hotel',
charset='utf8'
)
# 获取游标
cursor = conn.cursor()
'''2、修改表中数据'''
try:
sql_update = """
update style
set
stylename = '豪华单人间',
bedstyle = '豪华单人床',
price = 500
where styleid = 1"""
cursor.execute(sql_update)
conn.commit()
except Exception as e:
print(e) # 打印异常信息
'''事务回滚,即出错后,不会继续执行,而是回到程序未执行的状态,原先执行的也不算了'''
conn.rollback()
# 关闭数据库连接和游标
conn.close()
cursor.close()
四、删除表中指定数据
import pymysql
# 连接数据库
conn = pymysql.Connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='hotel',
charset='utf8'
)
# 获取游标
cursor = conn.cursor()
try:
sql_delete = "delete from style where styleid = 2"
cursor.execute(sql_delete)
conn.commit()
except Exception as e:
print(a) # 打印异常信息
'''事务回滚,即出错后,不会继续执行,而是回到程序未执行的状态,原先执行的也不算了'''
conn.rollback()
# 关闭数据库连接和游标
conn.close()
cursor.close()
五、查询表中所有数据
import pymysql
# 连接数据库
conn = pymysql.Connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='hotel',
charset='utf8'
)
# 获取游标
cursor = conn.cursor()
'''4、查询表中数据'''
try:
sql_select = "SELECT * FROM style"
cursor.execute(sql_select)
print(cursor.rowcount)
rr = cursor.fetchall()
for row in rr:
print("房间id是:%d, 类型名称是:%s, 床的类型是:%s, 床的数量是:%d, 价格是:%.2f" % row)
except Exception as e:
print(e)
# 关闭数据库连接和游标
conn.close()
cursor.close()
程序输出结果:
6
房间id是:1, 类型名称是:豪华单人间, 床的类型是:豪华单人床, 床的数量是:1, 价格是:500.00
房间id是:3, 类型名称是:普通单人间, 床的类型是:普通单人床, 床的数量是:1, 价格是:200.00
房间id是:4, 类型名称是:普通双人间, 床的类型是:普通双人床, 床的数量是:1, 价格是:1000.00
房间id是:5, 类型名称是:豪华双人间, 床的类型是:豪华双人床, 床的数量是:1, 价格是:2000.00
房间id是:6, 类型名称是:一般双人间, 床的类型是:普通单人间, 床的数量是:2, 价格是:800.00
房间id是:7, 类型名称是:总统套间双人间, 床的类型是:总统套间双人床, 床的数量是:1, 价格是:5000.00
六、Python完整代码
从下面的代码,集成增、删、改、查四种操作,可以看出来哪些代码是重复的。
import pymysql
# 连接数据库
conn = pymysql.Connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='hotel',
charset='utf8'
)
# 获取游标
cursor = conn.cursor()
'''1、添加数据到表中'''
# try:
# sql_insert = """
# INSERT INTO
# style(stylename, bedstyle, bedamount, price)
# VALUES('单人房间', '单人高级套房', 1, 1000),
# ('单人间', '单人高级套间', 1, 1000),
# ('普通单人间', '普通单人床', 1, 200),
# ('普通双人间', '普通双人床', 1, 1000),
# ('豪华双人间', '豪华双人床', 1, 2000),
# ('一般双人间', '普通单人间', 2, 800),
# ('总统套间双人间', '总统套间双人床', 1, 5000)"""
# cursor.execute(sql_insert)
# conn.commit()
# except Exception as e:
# print(e) # 打印异常信息
# '''事务回滚,即出错后,不会继续执行,而是回到程序未执行的状态,原先执行的也不算了'''
# conn.rollback()
'''2、修改表中数据'''
# try:
# sql_update = """
# update style
# set
# stylename = '豪华单人间',
# bedstyle = '豪华单人床',
# price = 500
# where styleid = 1"""
# cursor.execute(sql_update)
# conn.commit()
# except Exception as e:
# print(e) # 打印异常信息
# '''事务回滚,即出错后,不会继续执行,而是回到程序未执行的状态,原先执行的也不算了'''
# conn.rollback()
'''3、删除表中数据'''
# try:
# sql_delete = "delete from style where styleid = 2"
# cursor.execute(sql_delete)
# conn.commit()
# except Exception as e:
# print(a) # 打印异常信息
# '''事务回滚,即出错后,不会继续执行,而是回到程序未执行的状态,原先执行的也不算了'''
# conn.rollback()
'''4、查询表中数据'''
try:
sql_select = "SELECT * FROM style"
cursor.execute(sql_select)
print(cursor.rowcount)
rr = cursor.fetchall()
for row in rr:
print("房间id是:%d, 类型名称是:%s, 床的类型是:%s, 床的数量是:%d, 价格是:%.2f" % row)
except Exception as e:
print(e)
# 关闭数据库连接和游标
conn.close()
cursor.close()
七、总结
该案例,类似于java中的jdbc连接mysql,进行增、删、改、查操作,感兴趣的点击这里查看。