概要:上节简单的介绍了数据以文本或json,或以csv的形式储存 这节来介绍如何存在数据库。首先,数据库分为关系型数据库和非关系型数据库,比如mysql,Oracle,SQL Server等是关系型数据库。比如redis,mongoDB是非关系型数据库。
只以mysql为例
1.0首先我们要下载mysql数据库和pymysql库(在python2中导入的库为mysqldb,python3不支持)
安装库的代码:pip3 install pymysql
1.1,mysql数据库的基本操作
创建数据库:CREATE DATABASE 数据库名
创建表:CREATE TABLE stuinfo (id VARCHAR(255) NOT NULL,name VARCHAR(255) NOT NULL,age INT NOT NULL,sex VARCHAR(255) NOT NULL,PRIMARY KEY(id))
以上创建了一个表名为stuinfo的表,字段有id,name,age,sex,varchar(255)是类型,not null是不能 为空。最后id为主键。
- 插入数据:INSERT INTO stuinfo(id,name,age,sex) values('1','张三','18','男')
- 查询:SELECT * FROM stuinfo
- 修改:UPDATE stuinfo SET age=20 where id=1
- 删除:DELETE FROM stuinfo WHERE name='张三'
首先导入pymysql,基本操作就不说了
connect()打开数据库连接。这里说一下他的参数:
- host:mysql的服务器地址,本地写localhost
- user:用户名
- password:密码
- port:端口,默认为3306
- db:数据库
- charset:连接编码
cursor()创建一个游标对象
对应的方法有:
- exxecute():执行数据库查询和命令
- fetchone():获取结果集下一行
- fetchmany(size):取到size行
- fetchall():取到剩下的所有行
- rowcount():返回受影响的行数
- close():关闭cursor
1.3创建表
过程上面也已经说的很清楚了,只是修改了一下sql语句
1.4插入数据
这里插入数据是设定好的,我们爬虫爬取的数据有时候返回的是字典,
那么可以修改成这样:
commit()方法才是提交到数据库执行的方法,插入,修改,删除,都需要调用该方法才会生效。
roLLback()如果发生异常,就会数据回滚。
1.5修改
执行的方法都一样,只是sql语句发生了改变,参数发生了改变
只需要sql修改成'UPDATA stuinfo SET age=%s WHERE name=%s'
同时我们也可以这样写,在数据存在的时候修改,数据不存在的时候插入
(实例存在的时候将李四的年龄从20修改成25):
在修改之前的数据是这样的:
修改之后:
完整的写法如下:
在添加的基础上添加了ON DUPLICATE KEY UPDATE,表示有就更新,没有就插入。
我们打印一下sql语句,变成了
所以在添加的时候变成值变成了*2
1.6删除
删除直接执行删除语句就好
table='stuinfo'
cond="name='张三'"
sql='deleta from {stuinfo} where {cond}'.format(table=table,cond=cond)
即可。
1.8查询
查询很简单,简单实例如下
这是一个一个的取出来
也可以这样取:
这是一下全部出来,推介使用上一种。