快速入门网络爬虫系列 Chapter12 | 将数据存储到数据库
虽然CSV文件读写方便,但我们更希望把数据写道数据库中,方便查询和保存
数据库系统包括数据库、数据库管理系统、数据库的用户和支撑数据库管理系统运行的软硬件
数据模型是现实生活中数据的抽象,用来描述数据的概念和定义,是数据库中数据的存储方式,是数据库系统的基础。
常用的数据模型有以下三种:
- 层次模型:以树形结构表示数据之间的关系
- 网状模型:以网,图型结构表示数据之间的关系
- 关系模型:以二维表结构表示数据之间的关系
根据数据库的数据模型划分,数据库可以分为以下类型:
- 网状型数据库(Network Database)
- 关系型数据库(Relational Darabase)
- 树状数据库(Hierarchical Database)
- 面向对象数据库(Object-oriented Database)
一、存到数据库
关系型数据库常用的5个对象
- 表(Table):由行和列组成
列由同类信息组成,每列为一个字段,标题为字段名 - 图标(Diagram):数据库表之间的关系示意图
- 视图(View):一张虚拟的表,并不实际存储
可以限定用户可查看,修改的数据 - 触发器(Trigger):由用户定义的SQL事务命令的集合
- 索引(Index):根据给定的数据库表建立起来的顺序,可以快速访问数据
1、存到数据库后的亚子
2、SQL的作用
SQL是一种结构化程序查询语言,是关系型数据库的标准语言,可以用来:
- 数据查询
- 数据存取
- 数据更新
- 管理数据库
3、SQL的常用命令
SQL的常用命令主要分为:
- 数据定义:CREATE,DROP,ALTER
- 数据操作:SELECT,DELETE,UPDATE,INSERT
SQL语句以关键字SELECT,INSERT,UPDATE等开始,所有语句以分号为结束
eg:
SELECT column1 FROM table1 WHERE condition;
- 1
查询结果如下:
下图为SQL语句的书写顺序和执行顺序:
Python连接SQL的常用包:
- MySQLdb
- pymysql
以pymysql为例:
import pymysql
import pymysql.cursors
二、字段类型
MySql常见类型数据:
三、常用操作
结合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的:
然后通过添加下图红线处部分
如果多次执行一个数据库可以这样写:
插入数据:
results = mysql(['insert into user values (1, "Tom");','insert into user values (2, "Li");','select * from user ;'])
- 1
3、查询数据
4、更新数据
5、删除数据
6、删表
文章来源: buwenbuhuo.blog.csdn.net,作者:不温卜火,版权归原作者所有,如需转载,请联系作者。
原文链接:buwenbuhuo.blog.csdn.net/article/details/105272055
- 点赞
- 收藏
- 关注作者
评论(0)