数据库(Database)
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
MySQL(读音:"my circle") 即是一种常见的数据库管理系统。
数据库管理系统(DBMS)
数据库管理系统(Database Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
客户端
通过图形化界面的形式对数据库管理系统进行操作,已提供更简便和直观的操作模式,MySQL数据库的常见客户端有:Mysql Workbench、Navicat等。
数据库表(Table)
数据库中以表为组织单位存储数据,其结构类似于Excel中的工作表,我们一般将一个业务逻辑定义为一个数据库,根据不同的应用场景定义不同的数据表。比如:社会政策数据库(dbpolicy_web)下辖:子链接表(api_links)、政策正文表(api_details)、用户表(auth_user)以及一些因为临时需要而产生的表,如使用最新分类依据而产生的组配分类表zupei
注意类比理解数据库表和Excel表,它们都可以描述为一个二维结构,每一行是一条记录,每一列是该记录的不同属性(Excel中称为字段),所不同的是mysql会对属性之间的关系做进一步的限制,如:限制某个属性必须唯一或限制某个属性值不能为空。
简述MySQL对比Excel的优点
简单的关系图

注:每个表都有的id字段为自增字段,无实际含义,仅仅用作唯一的序号使用。该字段也可以提供多个数据表之间的关联查询。
有些字段在数据表中存在而我没有在以下表结构说明中作出解释的,或为一些结构性配置信息,或没有意义,不需要关心。
table_name: api_location // 发文地点表
code // 部门代码
province // 发文省份
city // 发文城市
table_name: api_config // 配置文件表(即爬取的目标网站的配置信息)
loc_id // 与之关联的发文地点表的id,通过这个找到发文地点的具体信息
gov // 发文部门
target_url // 目标网页url地址(网站链接)
table_name: api_links // 子链接表
loc_id // 与之关联的发文地点表的id,通过这个找到发文地点的具体信息
config_id // 与之关联的配置文件表的id,通过这个找到配置文件的具体信息
gov // 发文部门
title // 文件标题
pub_date // 发布时间
crawl_date // 爬取时间
sub_url // 子链接url地址
pub_date // 发布时间
crawl_date // 爬取时间
table_name: api_details // 网页正文表
links_id // 与之关联的子链接表的id,通过这个找到子链接的具体信息
main_text // 文件正文部分
table_name: zupei // 组配分类表
link_id // 与之关联的子链接表的id,通过这个找到子链接的具体信息
zupei_type // 组配分类名(如政策文件、政策科普、领导工作报告等)
//一条完整的SQL查询语句应该包括如下结构:
select select_list from database_name where primary_constraint group by group_columns order by sorting_columns limit count;
//对每一部分进行分解说明:
select select_list //要查询的内容,选择哪些列,列名为select_list
from database_name //指定数据表,表名为database_name
where primary_constraint //查询时需要满足的条件,行必须满足的条件,条件语句为primary_constraint
group by grouping_columns //如何对结果进行分组,分组依据的列名为grouping_columns
order by sorting_columns //如何对结果进行排序,排序依据的列名为sorting_columns
limit count //限定输出的查询结果的条数,条数为count
2.1 单表查询
use dbpolicy_web; //使用dbpolicy_web数据库
//方法一
use dbpolicy_web;
select * from api_location;
//方法二
select * from dbpolicy_web.api_location; //在查询语句中指明所用数据库,查询该表全部字段的内容