数据库的基本知识

数据库和Excel具有很多相通之处,很多概念都可以结合起来理解。接下来我们可以通过操作图形化界面来具体了解数据表的一些基础知识,这些基础知识大家也无需死记硬背。

数据库以及数据思维

我们前面已经接触了不少数据库的概念,

  1. 有时候数据库它是指我们下载的MySQL软件
  2. 有时候它是我们部署在本地或云服务器上的数据库服务器
  3. 有时候它是数据库文件(数据库文件以.sql后缀结尾)

但这些概念都是由数据库的功能也就是存储数据引申而来,大家可以不必纠结这些词汇。但是在学习数据库之前我们需要了解最基础的数据思维。

比如我们要建一个图书借阅管理系统,

  • 我们应该如何设计这个数据库呢?
  • 我们需要建哪些表格呢?
  • 每个表格需要包含哪些字段呢?

这时候我们会使用到E-R模型,大家可以不必知道E-R模型的具体概念,看一张E-R图即可明白。

了解数据库

前面我们已经说过,数据库和Excel有很多相似之处,注意下面加粗的英文单词,我们之后会使用到它们的哦~我们这里把一个最简单的图书借阅系统的数据库做成了Excel,大家可以对照学习:

图书借阅Excel:在线图书借阅系统Excel

  • 一个数据库database相当于是一个Excel数据簿,library Excel数据簿相当于一个library数据库;
  • 一个数据库的数据表table相当于是一个Excel的数据表,这里Excel工作簿有三个Excel数据表,分别为reader、books、borrow
  • 数据库的数据列column,相当于是Excel数据表的每一列,比如reader数据表的每一列,第二列存储的是读者的姓名;
  • 数据库的字段field,相当于是Excel第一行的字段,比如reader数据表有两个字段为id、name
  • 数据库的记录row,相当于是Excel数据表的除开第一行的每一行,比如reader数据表有8条记录

创建数据表

大家可以跟着下面的操作说明来把在线图书借阅系统Excel,转化成一个数据库。我们在第三节第四节会使用到它们,所以一定要做一下哦。我们可以就以上图书管理系统建3个数据表,分别为reader、books、borrow。

我们以新建reader数据表为例,打开phpMyAdmin,点击左侧我们之前建好的数据库,比如hwlesson,这时候我们会进入到hwlesson的数据表操作界面。

数据表名的方框里输入borrow、添加4列,因为我们的reader数据表有4个字段分别为student_id(学号)、book_id(书籍编码)、borrow_date(借书时间)、return_date(还书时间)。

数据库表中的每个列(字段)都要求有名称(名字)数据类型以及长度

名字

在名字的方框里填入字段名,分别填入student_id、book_id、borrow_date、return_date。

类型

SQL 开发人员必须在创建数据表时决定表中的每个列将要存储的数据的类型。在phpMyAdmin下拉类型可以看到数据类型有很多,不过常见的数据类型有INT、VARCHAR、TEXT、DATE,还有DATETIME、FLOAT、DECIMAL(p,s)。

  • INT:是整数类型,student_id就是一个整数,类型这里我们选择INT;
  • FLOAT:是浮点类型,也就是带有小数点的数字,比如商品的价格是199.99元,就是一个浮点类型;
  • VARCHAR:保存可变长度的字符串(可包含字母、数字以及特殊字符、汉字),book_id包含数字和字母,类型这里我们选择VARCHAR;
  • TEXT:也是用来存放字符串的,不过是存放数据量特别大的字符串,比如一篇博客文章的内容会有很多字,我们就可以使用TEXT类型
  • DATE:存放格式格式为YYYY-MM-DD的日期,比如2018-02-12,borrow_date和return_date可以选择该类型。
  • DATETIME:存放日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS,2018-02-12 10:45:30。
  • DECIMAL(p,s):精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数小数点后有 2 位数的数字,常常用于商品的价格,商品的价格通常为4999.50元。

长度

我们需要根据实际需求来预估一个字段的长度,一个数字、一个字母、一个特殊符号、一个汉字都是一个长度,比如手机号码为11位,那么它的类型应该为INT整数类型,长度可以固定在11。

这里的空指的是非空约束,NOT NULL 约束强制列不接受 NULL 值。NOT NULL 约束强制字段始终包含值。也就是说如果不向字段添加值,就无法插入新记录或者更新记录。这里我们不要勾选,也就是不允许为空值。

预览SQL语句

保存(执行)前,有一个预览SQL语句,我们点击后可以看到如下内容的代码,这就是SQL语句。也就是说我们在图形化界面新增数据字段等的过程其实都是在后面执行了SQL语句而已,关于SQL语句的知识,我们在后面的章节会来学习。

其他的配置我们都可以先不用管,然后我们点击保存就可以把数据表给建好啦。大家依次把其他三个数据表给建好哦,在phpMyAdmin的管理界面

给数据表填充记录

在phpMyAdmin左侧选择一个数据表,比如borrow数据表,点击phpMyAdmin工具栏的插入标签,在的那一列,把Excel每行的数据填写到值里面,只需填值即可,记录有5个,而界面只有两行,可以输入继续插入 n行,在执行前我们也预览一下SQL语句,了解SQL语句是什么样的。

SQL语言与案例

在前面我们预览SQL语句的时候就已经了解,原来我们在图形界面对MySQL的操作,都是SQL脚本在起作用,而同时我们也可以把这些脚本写成后缀名为.sql的脚本文件。

SQL结构化查询语言(Structured Query Language),是用于数据库查询和程序设计的语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

上面的概念大家能理解多少是多少,只需要知道大致是一个什么东西即可。

国家数据库样本:国家社会经济数据库

下载链接里的country.sql,然后使用VS Code打开这个sql文件。可能大家会看不懂,不过没有关系,这个sql的内容,我们把它做成了一个excel表格分享在石墨上面,大家可以查看了解一下:

国家数据库Excel:数据库所对应的Excel表格

数据库的导入

使用数据库的文件导入

首先我们在phpmyAdmin左侧选择一个数据库,比如hwlesson,然后点击phpmyAdmin工具栏的导入,把下载好的country.sql上传到本地的数据库服务器。这样我们在本地数据库就拥有了country这个数据表。

使用执行SQL语句的方式

我们也可以在phpMyAdmin新建一个数据库,然后选择该数据库,phpMyAdmin工具栏的SQL,把下载好的country.sql里面的SQL语句复制粘贴到这里之后点击执行

数据字典

在phpMyAdmin左侧选择一个数据库,比如我们之前建好了数据表、数据字段的hwlesson,在右侧页面中找到数据字典,看看数据字典是什么。

本节任务

  1. 观察学习ER图,初步构想一个职员表应该包含哪些数据表以及哪些字段
  2. 结合Excel来理解数据库、数据表、数据列、数据行、记录、字段;
  3. 学会使用可视化界面phpMyAdmin给指定数据库创建数据表,了解常用的数据类型、长度、非空约束;
  4. 学会使用可视化界面phpMyAdmin给指定的数据表填充数据;
  5. 了解创建数据表、数据记录、数据库导入和执行SQL语句之间的关系
  6. 初步了解数据字典;