数据库基本概念

  1. 数据库(Database)

    数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加修改删除查询操作。

    MySQL(读音:"my circle") 即是一种常见的数据库管理系统。

  2. 数据库管理系统(DBMS)

    数据库管理系统(Database Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

  3. 客户端

    通过图形化界面的形式对数据库管理系统进行操作,已提供更简便和直观的操作模式,MySQL数据库的常见客户端有:Mysql Workbench、Navicat等。

  4. 数据库表(Table)

    数据库中以表为组织单位存储数据,其结构类似于Excel中的工作表,我们一般将一个业务逻辑定义为一个数据库,根据不同的应用场景定义不同的数据表。比如:社会政策数据库(dbpolicy_web)下辖:子链接表(api_links)、政策正文表(api_details)、用户表(auth_user)以及一些因为临时需要而产生的表,如使用最新分类依据而产生的组配分类表zupei

    注意类比理解数据库表和Excel表,它们都可以描述为一个二维结构,每一行是一条记录,每一列是该记录的不同属性(Excel中称为字段),所不同的是mysql会对属性之间的关系做进一步的限制,如:限制某个属性必须唯一或限制某个属性值不能为空。

  5. 简述MySQL对比Excel的优点

    1. 海量数据存储。Excel需要将数据读入内存,这限制了数据规模,很难在Excel中打开一份有几百万行数据的文件,而MySQL将数据存储在硬盘里,通过查询语句进行查询,不需要全部读入内存,可以处理上千万行的数据。
    2. 并发访问数据库。可以支持跨平台、高并发的访问数据库(同一时段,多点访问)。
    3. 可以对表结构进行更严格的限制,比如避免一些字段出现重复值,限制一些字段非空,使数据表更为“结构化”。
    4. 可以通过事物机制对表的增删改查进行更严格的限制,维护数据一致性。
    5. 支持多表关联查询操作(相较于MySQL的多表查询更简便也更高效)。
    6. 通过访问控制机制给所有数据库的用户分配权限,提高数据安全性。
  6. 简单的关系图

社会政策数据库 dbpolicy_web 基本表结构

注:每个表都有的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                     // 组配分类名(如政策文件、政策科普、领导工作报告等)

数据库查询语句 SELECT

1 基本语法格式

//一条完整的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 举例说明(所有示例均在社会政策数据库dbpolicy_web下演示)

2.1 单表查询

  1. 使用某个数据库(在对某个数据库的表进行查询时需要先使用该数据库)
use dbpolicy_web; //使用dbpolicy_web数据库
  1. 查询数据表api_location的全部内容
//方法一
use dbpolicy_web; 
select * from api_location;

//方法二
select * from dbpolicy_web.api_location; //在查询语句中指明所用数据库,查询该表全部字段的内容