上次写的爬淘宝评论爬虫还没解决数据存储不全的问题,后来想想,这样的几十行代码,问题挺多 的,一是速度太慢,二是数据可能也太多。
所以想着提升效率的方法,上框架吧,要不开线程,都是要学;
存储方面,数据库,有一个能熟练应用就应该能满足,先学学SQL语句。
学习内容来自w3school。
注:SQL语句对大小写不敏感。
一:组成:
SQL语句由DML(data manage language)和DDL(data define language)组成。
DML:
SELECT: 选取
UPDATE: 更新
DELETE: 删除
INSERT INTO: 插入
DDL:
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
①SELECT:
选取某一列内容:
SELECT A FROM SHEET1
选取全部的列:
SELECT * FROM SHEET1
对于由重复名称的列,若是不想重复选择,可以:
SELECT DISTINCT A FROM SHEET1
如图:
select Company from sheet1
结果:
IBM
W3School
Apple
W3School
不想要重复的W3School,可以用:
select distinct Company from sheet1
结果:
IBM
W3School
Apple
W3School
select 语句可以添加where语句,这样能够更加方便地从表中有条件地删选数据:
select a from sheet1 where 列 运算符 值
例子:
选择person表中,FirstName = Bill的内容:
select * from person where FirstName = 'John'
结果:
注意,用where语句筛选,需要用单引号,没有引号和双引号都是错误的。
但是,对于数字则不需要引号:
错误的: select * from person where Firstname = John
正确的: select * from person where Firstname = 'John'
错误的: select * from person where Year = '1970'
正确的: select * from person where Year = 1970
②逻辑运算AND&OR:
就是简单的高中数学“或并且交”,或 并集,且 交集。
select * from person where city = 'Beijing' and Year = '1985'
结果:
select * from person where city = 'New York' or city = 'London'
结果:
③order by语句:
对结果集合进行排序:默认升序,若降序可用DESC关键字
例子:
以Company一列的内容元素的起始字母进行排序:
selecet Company, orderNumber from chart order by Company
结果略
以orderNumber进行排序:
selecet Company, orderNumber from chart order by orderNumber
结果略
④INSERT INTO 语句:
用于在表格中插入数据,基本语法为:
insert into 表名称 (列1名, 列2名,......) values (内容1, 内容2, ......)
例子:
不指定添加数据的位置:
insert into chart1 values('a', 'b', 'c', 'd')
结果略。
指定添加数据的位置:
insert into chart1 (LastName, FirstName) values ('a', 'b')
结果略。
⑤UPDATE 语句用于修改表中的数据:
基本语法为:
update 表名称 set 列1名称 = 某值 where 列2名称 = 某值
其中where语句是用于限定单元格的位置
例子:
update chart2 FirstName = 'Dash' where LastName = 'Wilson'
如果说 FirstName = 'Dash' 确定了我们要修改的数据单元的纵坐标,那么 LastName = 'Wilson' 就确定了数据单元的行坐标。
可以在同一句语句中修改多个内容:
update chart2 FirstName = 'Dash', city = 'beijing' where LastName = 'Wilson'