- 一、mysql创建数据库
- 1.1 创建数据库和表
- 1.2插入数据
- 1.3 查看数据
- 二、pymysql操作数据库
- 2.1 引入库mysql库
- 2.2 查询操作
- 2.3 增删改操作
首先,我们在mysql中创建一个名为travel的数据库,并在数据库中创建flights表。
1.1 创建数据库和表DROp DATAbase IF EXISTS travel; CREATE DATAbase IF NOT EXISTS travel; USE travel; CREATE TABLE IF NOT EXISTS flights( flightNum VARCHAR(30) PRIMARY KEY,#航班号 price INT,#机票价格 numSeats INT,#座位总数 numAvail INT,#可被预定座位数 FromCity VARCHAR(30),#起点 ArivCity VARCHAR(30),#终点 CONSTRAINT ck_numAvail CHECK(numAvail<=numSeats AND numAvail>=0), CONSTRAINT ck_price CHECK(price>=0), CONSTRAINT ck_numSeats CHECK(numSeats>=0) )1.2插入数据
然后,我们在mysql中插入一定量的数据。
INSERT INTO flights
VALUES('CA1206','1500','100','100','Houston','Olympic'),
('CZ3151','800','100','100','Lincoln','Washington D.C.'),
('CP2452','900','100','100','Olympic','New Orleans'),
('CN1242','1000','100','100','Miami','New York'),
('CM1672','780','100','100','New York','Lincoln');
1.3 查看数据
在mysql中查看flights表中数据
SELECt *FROM `flights`;二、pymysql操作数据库 2.1 引入库mysql库
from pymysql import * import pandas as pd2.2 查询操作
进行查询操作,我们创建函数select_text()用来查询数据库中的数据。
#查询数据
def select_text():
#创建Connection连接,password为你的mysql用户密码
conn=connect(host='localhost',port=3306,user='root',password='XXXXXX',database='travel')
#获取游标对象
cs1=conn.cursor()
#执行select语句,并返回影响行数:查询一条数据
count=cs1.execute('select * from flights;')
#打印受影响的行数
print('受影响的数据有:',count,'行')
#获取查询全部数据,返回结果为元组
result=cs1.fetchall()
#将结果转化为dataframe形式
table_list=[]
for i in result:
table_list.append(list(i))
df=pd.Dataframe(table_list,columns=["flightnum","price","numSeats","numAvail","FromCity","ArivCity"])
#关闭游标
cs1.close()
#关闭连接
conn.close()
return df
调用函数,我们可以得到以下结果:
print(select_text())2.3 增删改操作
对于mysql中的插入,更新,删除语句,我们均可以使用execute函数来实现,我们只需要更改execute函数中的字符串便可以实现三种mysql基本语句。在这里以插入语句insert为例来进行python代码实现。
在代码中,需要注意的是,每一次执行execute语句,均需在execute后执行commit语句,因为pymysql库默认执行mysql语句为事务形式,在执行事务后,需要进行事务提交才能成功执行mysql语句。
#增删改
def change_data():
#创建Connection连接
conn=connect(host='localhost',port=3306,user='root',password='XXXXXXX',database='travel')
#获取游标对象
cs1=conn.cursor()
#输入插入语句
cs1.execute("INSERT INTO flights VALUES('CA1230','6500','90','90','Olympic','Houston');")
#提交事务
conn.commit()
cs1.close()
conn.close()
调用函数:
change_data()
再次执行查询语句:
print(select_text())
我们可以得到:



