什么是数据库?
定义:保存有组织的数据的容器(一般是一个文件或者一组文件)
通常我们认为网站的数据是直接从数据库中获取,这里的数据库一词其实指的是数据库管理系统(DBMS)。
什么是表?
定义:某种特定类型数据的结构化清单
存储在表中的数据是一种类型的数据,比如用户表,那么肯定都是存储的用户信息,不可能将订单的信息放到用户信息清单里面,那么会显得很乱。
模式
定义:关于数据库和表的布局以及特性的信息
列和数据类型
表由列组成。
列定义:表中的一个字段,所有表都是有一个或多个列组成的。
比如:
姓名 | 性别 | 年龄 |
---|---|---|
李三 | 男 | 20 |
其中姓名、性别、年龄就是一列,每一列都保存用户的一部分信息。
数据类型定义:存储数据的类型,每个表列都有相对应的数据类型,它限制该列中存储的数据。
比如说姓名存储的字符串,而年龄这一列存储的是20这样一个整数而不能是二十这样子的字符串
行
定义:表中的一条记录
如上面那张用户表,李三的信息就是用户的一条记录
主键
定义:一列或者一组列,其值能够唯一表中每行。
我们来对上表进行改造:
身份证 | 姓名 | 性别 | 年龄 |
---|---|---|---|
431111xxxx | 李三 | 男 | 20 |
432222xxxx | 李三 | 男 | 32 |
新的用户表中多加了一列,就是身份证列。我们看到现在表中有两行数据,且姓名都是李三,这一点我们都能够理解,因为现实生活中,重名的情况确实很多。
众所周知,身份证号码是唯一的,那么我们就可以用身份证号码来区分每一行。唯一标志表中每行的这个列(身份证列)称为主键
没有主键,更新或删除表中特定行都很困难。因为很难区别特定的某行!
作为主键的条件:
-
任意两行都不具有相同的主键值
-
每个行都必须具有一个主键值,不能空缺(每个人从出生就具备一个身份证号码)
主键通常定义在表的一列上,也可以一起使用多个列来作为主键。
我们在现实生活中很少登记用户的身份证,大都是姓名和年龄。而姓名相同,年龄相等的情况却很少,于是我们可以用姓名+年龄作为主键。当然这并不是严谨的,我这里只是举出一个例子,用来明白一组列也可以作为主键!
什么是SQL?
SQL是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。
SQL的优点
-
几乎所有的DBMS都支持SQL
-
SQL简单易学
-
虽然看上去简单,但是可以实现非常复杂和高级的数据库操作。
虽然几乎所有的DBMS都支持SQL,但事实上,任意两个DBMS的SQL都不完全相同,即MySQL的SQL语句并不能完全移植到其他的DBMS中。
总结
本章介绍了什么是数据库,也区分了数据库和数据库管理系统、介绍了数据库的组成、以及SQL。