数据的存储(二)

2019-09-23 10:10:05 浏览数 (1)

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

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

这是一个一个的取出来

也可以这样取:

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

0 人点赞