快速入门网络爬虫系列 Chapter12 | 将数据存储到数据库

举报
不温卜火 发表于 2020/12/02 22:28:51 2020/12/02
【摘要】 Chapter12 | 将数据存储到数据库 一、存到数据库1、存到数据库后的亚子2、SQL的作用3、SQL的常用命令 二、字段类型三、常用操作1、创建连接2、插入数据3、查询数据4、更新数据5、删除数据6、删表 虽然CSV文件读写方便,但我们更希望把数据写道数据库中,方便查询和保存 数据库系统包括数据库、数据库管理系统、数据库的用户和支撑数据...

虽然CSV文件读写方便,但我们更希望把数据写道数据库中,方便查询和保存
数据库系统包括数据库、数据库管理系统、数据库的用户和支撑数据库管理系统运行的软硬件

1
数据模型是现实生活中数据的抽象,用来描述数据的概念和定义,是数据库中数据的存储方式,是数据库系统的基础。
常用的数据模型有以下三种:

  • 层次模型:以树形结构表示数据之间的关系
  • 网状模型:以网,图型结构表示数据之间的关系
  • 关系模型:以二维表结构表示数据之间的关系

根据数据库的数据模型划分,数据库可以分为以下类型:

  • 网状型数据库(Network Database)
  • 关系型数据库(Relational Darabase)
  • 树状数据库(Hierarchical Database)
  • 面向对象数据库(Object-oriented Database)

一、存到数据库

关系型数据库常用的5个对象

  • 表(Table):由行和列组成
    列由同类信息组成,每列为一个字段,标题为字段名
  • 图标(Diagram):数据库表之间的关系示意图
  • 视图(View):一张虚拟的表,并不实际存储
    可以限定用户可查看,修改的数据
  • 触发器(Trigger):由用户定义的SQL事务命令的集合
  • 索引(Index):根据给定的数据库表建立起来的顺序,可以快速访问数据

1、存到数据库后的亚子

2

2、SQL的作用

SQL是一种结构化程序查询语言,是关系型数据库的标准语言,可以用来:

  • 数据查询
  • 数据存取
  • 数据更新
  • 管理数据库
    3

3、SQL的常用命令

SQL的常用命令主要分为:

  • 数据定义:CREATE,DROP,ALTER
  • 数据操作:SELECT,DELETE,UPDATE,INSERT

SQL语句以关键字SELECT,INSERT,UPDATE等开始,所有语句以分号为结束
eg:

SELECT column1 FROM table1 WHERE condition;

  
 
  • 1

4
查询结果如下:
5
下图为SQL语句的书写顺序和执行顺序:
6
Python连接SQL的常用包:

  • MySQLdb
  • pymysql

以pymysql为例:

  • import pymysql
  • import pymysql.cursors

二、字段类型

MySql常见类型数据:
7
8
9

三、常用操作

结合pymysql,使用python所给的数据库API,我们将介绍如下常用的操作命令:

  • 插入数据
  • 查询数据
  • 更新数据
  • 删除数据

1、创建连接

使用pymysql创建数据库连接:

# 连接数据库
connect = pymysql.Connect(host='localhost',port=3306,user='root',passwd='199712','minfo1','mvinfo',charset = "utf-8")

  
 
  • 1
  • 2

获取数据库的游标,使用游标对数据库进行操作

# 获取游标
cursor = connect.cursor()

  
 
  • 1
  • 2

通过cursor可以直接进行数据库操作:
创建数据库:

cursor.execute('CREATE DATABASE test;')
cursor.execute("show databases;") 

  
 
  • 1
  • 2

查看数据库名称:

for db in cursor.fetchall():
	print(db)

  
 
  • 1
  • 2

完整代码:

import traceback
import pymysql as pymysql

def mysql(sql): db = pymysql.connect(host='localhost',port=3306,user='root',passwd='199712',charset = 'utf8') # 使用cursor()方法获取操作游标 cursor = db.cursor() try: print(sql) # 执行sqk语句 result = cursor.execute(sql) # db.commit() results = cursor.fetchall() except: traceback.print_exc() # 发生错误时回滚 db.rollback() # 关闭数据库连接 db.close() return results

results = mysql('create database Lihuaxin')
for result in results: print(result)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

2、插入数据

通过cursor实现向数据库插入数据:

import traceback
import pymysql as pymysql

def mysql(sqls): db = pymysql.connect(host='localhost',port=3306,user='root',passwd='199712',charset = 'utf8') # 使用cursor()方法获取操作游标 cursor = db.cursor() results=[] try: print("get sqlqueries = ",len(sqls)) # 执行sqk语句 for sql in sqls: result = cursor.execute(sql) print(sql,":",result) db.commit() results = cursor.fetchall() except: traceback.print_exc() # 发生错误时回滚 db.rollback() # 关闭数据库连接 db.close() return results

results = mysql(['use hackdata','show tables'])
for result in results: print(result)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

刚开始我们看到的是没有show tables的:
12
然后通过添加下图红线处部分
13
如果多次执行一个数据库可以这样写:
14
插入数据:

results = mysql(['insert into user values (1, "Tom");','insert into user values (2, "Li");','select * from user ;'])

  
 
  • 1

15

3、查询数据

17

4、更新数据

19

5、删除数据

20

6、删表

21

文章来源: buwenbuhuo.blog.csdn.net,作者:不温卜火,版权归原作者所有,如需转载,请联系作者。

原文链接:buwenbuhuo.blog.csdn.net/article/details/105272055

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。