术语


    数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件)。


    人们通常用数据库这个术语来达标他们使用的数据库软件。这是不正确的。


    确切地说,数据库软件应成为 DBMS(数据库管理系统)。

    数据库是通过 DBMS 创建和操纵的容器。数据库可以是保存在硬件设备上的文件,也可以不是。

    数据库究竟是文件还是别的东西并不重要,因为你并不直接访问数据库;你使用的是 DBMS,它替你访问数据库。





    将资料放入自己的文件柜,并不是随便将它们扔进某个抽屉就完事了。而是在文件柜中创建文件,然后将相关的资料放入特定的文件中。

    在数据库领域中,这种文件称为表。

    表示一种结构化的文件,可用来存储某种特定类型的数据。

    表可以保存顾客清单、产品目录,或者其他信息清单。


    表(table) 某种特定类型数据的结构化清单。


    表特性:可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。
    描述这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库。




    模式(schema)关于数据库和表的布局及特性的信息。


    列和数据类型


    表由列组成。列中存储着表中某部分的信息。

    列(column)表中的一个字段。所有表都是由一个或多个列组成的。


    数据库中每个列都有相应的数据类型。数据类型定义列可以存储的数据种类。

    数据类型(datatype)所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。

    数据类型,限制可存储在列中的数据种类(例如,防止在数值字段中录入字符值)。

    数据类型,还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。





    表中的数据是按行存储的,所保存的每个记录存储在自己的行内。

    如果将表想象为网格,网格中垂直的列为表列,水平行为表行。

    如,顾客表可以每行存储一个顾客。表中的行数为记录的总数。


    行(row)表中的一个记录,又可称为数据库记录(record)。



    主键


    表中每一行都应该有可以唯一标识自己的一列(或一组列,联合索引??)。

    一个顾客表,可以是哟娜顾客编号列,而订单表可以使用订单 ID,雇员表可以使用雇员 ID 或 雇员社会保险号。


    主键(primary key)一列(或一组列),其职能够唯一区分分表中每个行。


    唯一标识表中每行的这个列(或这组列)成为主键。

    主键用来表示一个特定的行。没有主键,更新或删除表中特定行很困难。


    每个表应该总是定义主键,以便于以后的数据操纵和管理。


    做主键的列,必须满足以下条件:

    任意两行都不具有相同的主键值;

    每个行都必须具有一个主键值(主键列不允许 NULL 值)。


    主键通常定义在表的一列上,这并不是必须的,也可以一起使用多个列作为主键。



    使用多列作为主键时,构成主键的所有列,所有列值的组合必须是唯一的(单个列的值可以不唯一)。

    主键的最好习惯:

    1、不更新主键列中的值;


    2、不重用主键列的值;


    3、不在主键列中使用可能会更改的值。如使用一个名字作为主键以标识某个供应商,当供应商合并和更改其名字时,必须更改这个主键。




    SQL 是结构化查询语言(Structured Query Language)的缩写。

    SQL 是一种专门用来与数据库通信的语言。