SQL
- 数据库:数据库是以某种有组织的方式存储的数据集合,也可以说,数据库(database)是保存有组织的数据的容器(通常是一个文件或一组文件)。
- 表(table):某种特定类型数据的结构化清单。
这里的关键一点在于,存储在表中的数据是同一种类型的数据或清单。
说明:表名:使表名成为唯一的,实际上是数据库名和表名等的组合。有的数据库还使用数据库拥有者的名字作为唯一名的一部分。也就是说,虽然在一个数据库中不能两次使用相同的表名,但在不同的数据库中完全可以使用相同的表名。
表具有一些特性,这些特性定义了数据在表中如何存储,包括存储什么样的数据,数据如何分解,各部分信息如何命名等信息。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表,也可以用来描述整个数据库(和其中表的关系)。
模式:关于数据库和表的布局及特性的信息。 - 列和数据类型:表由列组成。列存储表中某部分的信息。
列(column):表中的一个字段。所有表都是由一个或者多个列组成的。
理解列的最好方法是将数据库想象为一个网格,就像个电子表格那样。网格中每一列存储着某种特定的信息。例如,在顾客表中,一列存储顾客编号,另一列存储顾客姓名,而地址、城市、州以及邮政编码全都存储在各自的列中。
**数据分解:**正确将数据分解为多个列极为重要。例如,城市、州、邮政编码应该总是彼此独立的列。通过分解这些数据,才有可能利用特定的列对数据进行分类和过滤(如找出特定州或者特定城市的所有顾客)。如果城市和州组合在一个列中,则按州进行分类或者过滤就会很困难。
数据库中每一列都有相应的数据类型.数据类型(datatype)定义了列可以存储哪些数据种类。数据类型:允许什么类型的数据。每个表都有相应的数据类型,它限制(或允许)该列中存储的数据。
数据类型限定了可存储在列中的数据种类。数据类型还帮助正确地分类数据,并在优化磁盘方面起重要作用。因此,在创建表时必须特别关注所用的数据类型。
注意:数据类型兼容。 数据类型及其名称时SQL不兼容的一个主要原因。虽然大多数数据类型得到了一致的支持。但许多高级的数据类型却没有。更糟的是,偶然会有相同的数据类型在不同的DBMS中具有不同的名称。对比用户毫无办法,重要的是在创建表结构时要记住这些差异。 - 行:表中的一个记录。
- **主键(primary key):一列(或几列),其值能够唯一标识表中每一行。**主键用来表示一个特定的行。没有主键,更改或者删除表中特定行就极为困难,因为你不能保证操作只涉及相关的行,没有伤及无辜。
成为主键的条件:
任意两行都不具有相同的主键值;
每一行都必须具有一个主键值(主键列不允许空值NULL);
主键列中的值不允许修改或更新;
主键值不能重用(如果某行从表中删除,他的主键不能赋给以后的新行)。 - 什么时SQL
SQL是Structured Query Language(结构化查询语言)的缩写。SQL是一种专门用来与数据库沟通的语言。
说明:SQL的扩展
许多DBMS厂商通过增加语句或者指令,对SQL进行了扩展。这种了扩展的目的是提供执行特定操作的额外功能或简化方法。虽然这种扩展很有用,但一般都是针对个别DBMS的,很少有两个厂商同时支持这种扩展。
标准SQL由ANSI标准委员会管理,从而称为ANSI SQL。所有主要的DBMS,即使有自己的扩展,也都支持ANSI SQL。各个实现有自己的名称。如Oracle的PL/SQL、微软SQL Server用的Transact-SQL等。