大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

数据的存储(二)

概要:上节简单的介绍了数据以文本或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查询

查询很简单,简单实例如下

这是一个一个的取出来

也可以这样取:

这是一下全部出来,推介使用上一种。