这里关键一点就在于,存储在表中的数据是同一种类型的数据或清单,绝不可以将顾客的清单与订单的清单存储在同一个数据库表中。数据库中的每一个表都有一个名字来标识自己,这个名字是唯一的,即数据库中没有其他表具有相同的名字。虽然在相同数据库中不能使用相同名字,但在不同数据库中,可以使用相同名字。
表具有一些特性,这些特性定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。描述表的这组信息就是所谓的模式。模式可以用来描述数据库中特定的表,也可以用来描述整个数据库。
模式:关于数据库和表的布局及特性的信息。
列和数据类型
表由列组成。列储存表中某部分的信息。
列:表中的一个字段,所有表都是由一个或多个列组成的。
理解列的最好办法就是将数据库表想象称为一个网格,就像电子表格那样。
提示:分解数据
正确地将数据分解为多个列极为重要。通过分解这些数据,才有可能利用特定的列对数据进行分类和过滤
数据库中每个列都有相应的数据类型,数据类型定义了列可以存储哪些数据种类,每个表列都有相应的数据类型。它限制(或允许)该列中存储的数据
数据类型限定了可存储在列中的数据种类。数据类型还帮助正确地分类数据,并在优化磁盘使用方面起重要的作用。
行:表中数据是按行存储的,所保存的每个记录存储在自己的行内,如果将表想象为网格,网格中的列为表列,水平行为表行。
主键
表中的每一行都应该有一列可以唯一地标示自己。顾客表可以使用顾客编号,订单表可以使用订单ID。
主键:一列,其值能唯一标识表中的每一行。
唯一标识表中每行的这个列称为主键。主键用来标识一个特定的行。表中的任何列都可以作为主键,只要满足以下的条件:
- 任意两行都不具有相同的主键值;
- 每一行都必须具有一个主键值(主键列不允许NULL值);
- 主键列的值不允许修改或更新;
- 主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)
需要注意的是也可以一起使用多个列作为主键,在使用多列作为主键时,上述条件必须应用到所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。
SQL基础概念
SQL 是结构化查询语言,是一种专门用来与数据库沟通的语言。
优点:
- SQL不是针对某个特定数据库供应商专有的语言。
- SQL简单易学,它的语句全都是由有很强描述性英语单词组成。
- SQL虽然看上去很简单。但实际上是一种强有力的语言。