ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

让 MySQL 帮你保存指定的信息

2021-06-10 23:53:57  阅读:16  来源: 互联网

标签:info web 数据库 db 保存 指定 语句 MySQL


 

在前面的推文,我们学会了使用 Requests、BeautifulSoup 等第三方框架来爬取相关的网页信息。虽然一切看上去都很顺利,但是我相信很多人都已经发现了这些程序存在的短板:每次获取信息,都需要重新爬取对应的网页。这无异是很枯燥,而且效率不是特别高。那么,有没有一种方法,能够让我们存储自己爬取到的信息呢?答案当然是有的,我们今天就来学习 MySQL 的基础知识,并且学会如何在 Python 中对 MySQL 进行相关的操作。

MySQL基础知识

什么是MySQL?

MySQL 是最流行的关系型数据库管理系统,在 Web 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

简单的来说:MySQL 会按照一定要求,按照一定的数据结构存放你想要存放的数据。当然,现在的你不用纠结这到底是什么意思,我们只需要了解:使用 MySQL 数据库,我们能够很方便的存储我们需要存储的信息就可以了。

安装 MySQL

Python 开发环境配置

我们使用的是 Windows 平台,因此直接在官方的下载页面点击下载后,一路点击确认就可以了。注意!如果下载时候出现登陆页面,请点击 “No thanks, just start my download.” 的链接,便可以直接前往下载页面。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

登陆 MySQL,查询数据

安装完 MySQL 后,我们就可以通过 CMD 控制台来登陆 MySQL。输入以下命令:

  •  
 mysql -u root -p # 个人建议, MySql 可以设置简单点,我差点就忘记了。 # 简单明了:123456 啥的都可以。

系统会提示输入密码,此时我们输入上一步骤中预设的代码。CMD 控制台会出现如下图所示的提示。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

创建数据库和数据表

第一步就是创建属于我们的数据库,其对应的代码为:

  •  
 create databases [name]

[name] 是我们自己定义的数据库名。需要特别指出的是,在 Windows 中,MySQL 是不区分大小写的,但是在 Linux 中,MySQL 会识别出字母大小写,并产生不同的效果。因此,如果你使用的是 Linux 系统,那么就需要特别注意了(当然了,本文所写的代码,都通过了 Linux 平台的测试,可以正常运行)。

现在,就让我们创建一个名叫pyspider的数据库:

  •  
 create database pyspider;

创建完数据库后,我们需要创建一些数据表,用来存放一些具有指定数据结构的信息。比如,我们要创建一个网页信息表 web_info,里面包含了网页的 URL 链接、网页的标题以及网页访问的终端设备:

  •  
 create table web_info ( id int auto_increment primary key, url varchar(100), title varchar(100), termi varchar(20) );

在创建一个数据库表的时候,我们就要指定对应的变量名和变量属性。关于 MySQL 中的数据类型有哪几种,你可以看看这篇文章:《详解 MySQL 数据类型》。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

或许到现在,你对上面的代码“一窍不通”。没关系!其实对于新人来讲,我更推荐你使用 Navicat 进行图形化页面的创建工作!鉴于文章篇幅的原因,你可以直接通过这篇文章《利用 Navicate 创建数据库和表》来学习如何更简单的创建对应的数据库和数据表。

MySQL 增删改查快速教学

对于本门课程来说,MySQL 仅仅是一个用来存储数据的工具,并不会对数据库的熟练程度有特别深奥的要求。但是要求低,并不是不重要,恰恰相反,数据库在我们日后的开发中占据着重要的地位。但是今天,我们只学习本门课程最重要的,也是最基础的几条语句:增加、删除、更改、查询。

查询

查询是我们日常使用最多的一条语句,其通用的语句为:

  •  
 SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M]

我们以 web_info 数据表为例,写几条常用的查询语句:

  • 查询 web_info 里的所有信息:

  •  
 select * from web_info
  • 查询 web_info 里的所有网页标题(title):

  •  
 select title from web_info
  • 查询 web_info 里使用 PC 访问的页面所有信息:

  •  
 select * from web_info where termi='PC'
  • 统计 web-_info 里使用 PC 访问的一共有多少条记录:

  •  
 select count(*) from web_info where termi='PC'

增加数据

增加语句的通用语句为:

  •  
 INSERT INTO table_name ( field1, field2,...fieldN )                        VALUES                        ( value1, value2,...valueN );

我们仍然举几个例子来展示如何写增加语句。

  • 增加一条数据在 web_info 数据表中:

  •  
 insert into web_info values("http://www.baidu.com","百度一下,你就知道","PC")
  • 只在 web_info 数据表中增加一个 URL:

  •  
 insert into web_info (url) values("http://gitbook.cn")

应该有人注意到上面两个增加语句的区别:第一个语句 web_info 后面直接加了 values,而第二条语句在 web_info 后面加了 (url)。为什么会有这样的区别呢?

大家可以百度一下相关的原因!当然,你可以直接查看这篇文章《MySQL 必知必会:数据插入(Insert)》。

修改数据

修改数据的通用语句为:

  •  
 UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]

我们仍然从几个例子来展示如何处理修改语句。

  • 修改 web_info 中 id 为6的网页标题为“gitbook”:

  •  
update web_info set title="gitbook" where id=6
  • 修改 web_info 中标题为“github”的网页标题为“github and microsoft”:

  •  
 update web_info set title="github and microsoft" where title="github"

删除数据

删除数据的通用语句为:

  •  
 DELETE FROM table_name [WHERE Clause]

我们仍然从几个例子来展示如何删除数据表的相关数据。

  • 删除 web_info 数据表中,title 为“github”的数据:

  •  
 delete from web_info where title="github"
  • 删除 web_info 数据表中,url 为"baidu.com"的数据:

  •  
 delete from web_info where url="baidu.com"

Python 操作 MySQL

安装 pymysql 库

由于 Python 并没有自带的关于 MySQL 的库,因此我们要下载专用的 pymysql 库,打开 CMD 控制台,输入 pip install pymysql。安装成功后,在 Python 中导入该库,看是否成功下载。

建立连接

  •  
 import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost',port= 3306,user = 'root',passwd='654321',db='pyspider' ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor()

其中需要解释的参数为:

  • host:MySQL 地址,本地地址一般为 localhost 或 127.0.0.1;

  • port:MySQL 端口号,默认端口号为 3306;

  • user:MySQL 用户名,默认的用户名为 root;

  • passwd:用户名密码,密码由用户自行创建,这里密码为 654321;

  • db:选择的数据库名称,链接数据库时对应的数据库名称,这里链接的是上面创建的数据库 pyspider。

插入数据

代码如下所示:

  •  
 sql = "insert into web_info values('http://www.gitbook.cn','gitbook','PC') " try:    # 执行sql语句    cursor.execute(sql)    # 提交到数据库执行    db.commit() except:    # 如果发生错误则回滚    db.rollback() # 关闭数据库连接 db.close()

修改数据

代码如下所示:

  •  
 sql = "update web_info set title='gitbook' where id=6" try:    # 执行SQL语句    cursor.execute(sql)    # 提交到数据库执行    db.commit() except:    # 发生错误时回滚    db.rollback() # 关闭数据库连接 db.close()

删除数据

代码如下所示:

  •  
 sql = "delete from web_info where title='github'" try:    # 执行SQL语句    cursor.execute(sql)    # 提交修改    db.commit() except:    # 发生错误时回滚    db.rollback() # 关闭连接 db.close()

查询数据

与其他的语句相比,查询数据在 Python 中有很多不同,具体事例如下:

  •  
 sql = "SELECT *FROM web_info" try:    cursor.execute(sql)    # 获取所有记录列表    results = cursor.fetchall()    for row in results:       id = row[0]       url = row[1]       title = row[2]       termi = row[3] except:    print ("Error: unable to fetch data") # 关闭数据库连接 db.close()

本章总结

  1. 限于篇幅原因,本文只能浅显的列出常见的数据库语句。事实上,数据库操作应该是每个开发人员必须掌握,并且能够熟练掌握的一种语言或者工具;

  2. 你应该在课后翻一翻有关于 MySQL 的书籍,例如《MySQL 必知必会》或者是进阶版的《高性能 MySQL》。

  3. 如果你有关于数据库操作的基础,或者是读完了上面提到的两本书,你应该尝试着去 LeetCode写一些 SQL 语句,巩固你的知识。

标签:info,web,数据库,db,保存,指定,语句,MySQL
来源: https://blog.51cto.com/aiyc/2895163

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有