1. 什么是数据库和SQL
数据库是一个以某种有组织的方式存储的数据集合,它通常用来作为保存有组织的数据的容器。
组织容器数据的方式主要通过表来实现。
表是某种特定类型数据的结构化清单。关键点在于,存储在表中的数据是同一种类型的数据。数据库中的每个表都有一个名字,用来标识自己,此名字是唯一的。
表中包含列和行,每一列都存储着相同数据类型的数据。例如,存储时指定该列存储整数,则该列相应的数据都应该是整数。行,也称为数据库记录,它实质上记录了一套完整的数据。
前面提到的名字唯一性来源于主键。主键的值能唯一区分表中的每一行,比如上面的Emp_Id
。表中的任意列都可以作为主键,条件是:
- 任意两行具有不同的主键值
- 每行都必须具有一个主键值,不允许出现NULL值
当然主键并不是限制于唯一的一列,可以多个列形成联合主键,此时条件就变为了:所有列值的组合必须唯一。下图所示,通过社区名称、楼层和户型联合确定某一住户。
社区名称 | 楼层 | 户型 |
---|---|---|
天鑫小区 | 23 | 2 |
龙湾小区 | 16 | 3 |
龙湾小区 | 16 | 1 |
主键最好保证不变性,也就是说我们不应该更新主键值,也不要采用可能变更的值作为主键(比如某个供应商的名字,他们合并或收购时可能改名)。
SQL (Structured Query Language) 是一种专门用来与数据库通信的语言。SQL不是某一种特定数据库供应商的专用语言,几乎所有DBMS都支持SQL,但每家的SQL有些许差异。
2. 什么是MySQL
前面介绍的SQL只是一种语言,而实现的载体是数据库软件——DBMS(数据库管理系统)。而MySQL就是一种数据库软件。
DBMS通常分为两类:基于共享文件系统的DBMS和基于客户端-服务器的DBMS,我们通常使用后者。MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户端—服务器的数据库。客户端-服务器模式下,需要软件分别运行在客户端和服务器下。
如何使用数据库?
首先查看当前数据库有哪些。
show DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
然后选择一个
use test;
Database changed
查看数据库内的表:
show tables;
+----------------+
| Tables_in_test |
+----------------+
| customers |
| orderitems |
| orders |
| productnotes |
| products |
| vendors |
+----------------+
6 rows in set (0.24 sec)