大数据挖掘—(七):读懂MySql数据库操作
数据库
通过上期的分享,我们了解了MySQL数据库的基本连接与新建,本期分享一下MySQL数据的基本增减删查的操作
新建数据库
打开MySQL Workbench,连接到我们的数据库,右击新建一个数据库
- 数据库: 数据库是一些关联表的集合
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格类似Excel
数据库
数据库以数据表的形式来管理数据,你可以在一个数据库中建立多张表,来管理不同的数据类型,为了保存我们通过scrapy爬虫爬取的数据(参考往期scrapy爬虫系列教材scrapy爬虫),我们新建一个小说的表,里面保存需要保存的Items
数据库表
数据库操作
增加(insert)
#定义一个插入数据库函数,后期可以直接调用 def insert_data(cls,novelname,author,category,nameid,status,num,url): #sql语句 sql="INSERT INTO python (novelname,author,category,nameid,status,num,url)" \ "VALUES('%s','%s','%s','%s','%s','%s','%s')"\ %(novelname,author,category,nameid,status,num,url) try: cursor.execute(sql)#保存数据 connect.commit()#断开数据库,避免资源占用 print("保存ok")#提示数据保存成功 except: print('保存 error')#提示数据保存失败
数据库的操作使用sql语句来执行,后期的数据插入,直接调用insert_data 函数
更新 update
#定义更改数据库函数 def update_data(cls,author,category,nameid,status,num,url,novelname): #sql语句 sql="update python set author='%s',category='%s',nameid='%s',status='%s',num='%s',url='%s' where novelname ='%s'" % (author, category, nameid, status, num, url, novelname) try: cursor.execute(sql)#执行 connect.commit()#释放资源 print('更新 ok') except: print('error')
%S是占位符,当更新数据库时,有where函数作判断语句,更新数据库时,用where函数指定更新那一行的数据,以便数据指针能够正确找到更新位置
查询数据库 select
def select_all_data(cls,novelname): sql="(SELECT * FROM python WHERE novelname='%s')"%(novelname) try: cursor.execute(sql) # 获取所有符合的记录列表 results = cursor.fetchone() # cursor.fetchall() 获取第一条数据 return results except: print('error')
查询数据库,需要指定查询的条件,本例使用小说的名字作为条件,查询所有的数据,当然你也可以查询部分数据.
fetchone: 查询符合条件的所有数据
fetchall:查询符合条件的第一条数据
sql = "(SELECT author,category FROM python WHERE novelname='%s')"%(novelname) #只查询小说作者与小说类别
判断是否存在 exists
def select_name(cls,novelname): sql="SELECT EXISTS(SELECT 1 FROM python WHERE novelname='%s')"%(novelname) try: cursor.execute(sql) return cursor.fetchall()[0]#若存在返回 1 ,不存在返回0 except: print('error')
后期通过调用exists函数,判断数据是否存在,避免重复保存数据。
通过以上的介绍,我们了解到了MySQL的基本简单操作,还有很多MySQL的数据库操作,大家可以自行学习。在同一个项目中,建议大家使用函数的形式写sql语句,避免在使用时,重新写sql语句。
下期预告
我们的爬虫项目中间插入了MySQL数据库的基本操作,以便我们爬虫项目的基本保存,能够完整的建立一个爬虫项目,下期会结合前期的爬虫与MySQL数据库,继续完善我们的爬虫项目。
谢谢大家的观看点赞与转发,关于分享的文章,大家有任何问题,可以在评论区一起探讨学习!!!