简单总结一下学习MySQL数据库的过程。主要就是实现用Python对数据库进行增删改查的功能。
1、连接数据库
首先要先安装MySQL数据库,可以单独安装MySQL也可以安装xampp,我是装的xampp。
乌班图系统下MySQL启动命令:sudo /opt/lampp/lampp start。
然后就是在Python中连接数据库,如下代码所示:
import pymysql #导入pymysql库
conn = pymysql.connect(user='root', host='localhost', passwd='999888', db='test') #连接数据库,其中db是需要连接的数据库名称
cur = conn.cursor() #获取游标
sql = "create table data(id int(11) primary key auto_increment,name text(100),city text(100))" #sql语句,创建一个名称为data的数据表
cur.execute(sql) # 执行sql语句
print("创建成功!")
2、插入数据
此时我们可以到网页的数据库中看是否创建成功了。搜索网址localhost。可以看到已经创建成功了。下面向数据库中插入数据。
sql = "insert into data(name,city) values('张三','广州')"
cur.execute(sql)
conn.commit()
这就是很简单的插入数据语句,可以看到在数据库中插入了数据。
如果想要插入很多数据怎么办?比如,
for x in range(10):
y = x*2
sql = "insert into data(name,city) values(%s,%s)"
cur.execute(sql,(x,y))
conn.commit()
conn.close()
3、查询数据
这段代码是从data数据表中读取数据,你还可以指定字段,select name from data就是将name字段的数据输出。fetchall是读取所有数据,fetchone是读取一个,fetchmany是读取多个,你可以给指定的数量输出。
那么我想有条件查询怎么办呢?比如我想查询name字段中大于5的数据。select name from data where name > 5就可以了。
4、更新数据库
如何更新数据库呢,比如刚才的数据库,里面插入了name字段0~9了,如果现在又有一批数据想要插入,比如0~15,如下:
for x in range(15):
y = x*3
x = str(x)
y = str(y)
sql = "select name from data where name like '"+x+"'"
cur.execute(sql)
datas = cur.fetchone()
if datas:
cur.execute("update data set city='"+y+"' where name like '"+x+"'")
conn.commit()
else:
sql1 = "insert data(name,city) values (%s,%s)"
cur.execute(sql1,(x,y))
conn.commit()
这段代码的意思就是,如果原数据库中有即将插入的数据,那么就更新它,如果没有,就插入。select name from data where name like '"+x+"'这段代码就是查询源数据中是否包含变量x的数据,update data set city='"+y+"' where name like '"+x+"'这段代码就是对city字段进行更新。