1.1 数据库基础
数据库(datebase)
保存有组织的数据的容器(通常是一个文件或一组文件),是一个以某种有组织的方式存储的数据集合。
数据库管理系统(DBMS,Data Base Management System)
数据库软件,用来创建和操作数据库。
表(table)
某种特定类型数据的结构化清单。
存储在表中的数据是同一种类型的数据或清单。
同一数据库中的每个表的名字都是唯一的。
模式(schema)
关于数据库和表的布局及特性的信息。
例如:存储何种数据、数据如何分解、各部分信息如何命名等信息。
列(column)
列是表中的一个字段。所有表都是由一个或多个列组成的。列存储表中某部分的信息。
根据具体需求正确地将数据分解为多个列,才有可能利用特定的列对数据进行分类和过滤。
数据类型(datatype)
所允许的数据的类型。每个表列都有相应的数据类型,它限制(或允许)该列中存储的数据。
在创建表结构时,必须特别关注所用的数据类型。
相同的数据类型在不同的DBMS中具有不同的定义和名称。
行(row)
表中的数据是行存储的,一行数据就是表中的一个记录。
主键(primary key)
一列(或一组列),其值能够唯一标识表中的每一行。也就是说主键是用来唯一表示特定的行。
通常推荐在每个表的某一列上定义主键。
如果使用多列作为主键时,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。
作为主键,必须满足以下条件:
- 任意两行都不具有相同的主键值;
- 每一行都必须具有一个主键值(主键列不允许NULL值);
- 主键列中的值不允许修改或更新;
- 主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行);
1.2 什么是SQL
SQL(Structured Query Language)
结构化查询语言SQL是一种专门用来与数据库沟通的语言。
- 广泛适用:几乎所有重要的DBMS都支持SQL
- 简单易学: 语句数量少,而且都是由很强描述性地英语词汇组成
- 化繁为简:灵活使用可以进行非常复杂和高级的数据库操作
SQL扩展
标准SQL由ANSI标准委员会管理,也称为ANSI SQL,被绝大多数DBMS厂商支持。
多数DBMS厂商为了提供特定操作的额外功能或简化方法,对SQL进行了扩展,增加了语句或指令。这种扩展一般都是适用个别DBMS,不具有广泛的适用性。