一、mysql创建数据库
首先,我们在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 pd
2.2 查询操作
进行查询操作,我们创建函数select_text()用来查询数据库中的数据。
def select_text():
conn=connect(host='localhost',port=3306,user='root',password='XXXXXX',database='travel')
cs1=conn.cursor()
count=cs1.execute('select * from flights;')
print('受影响的数据有:',count,'行')
result=cs1.fetchall()
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():
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())
我们可以得到:
|