1 数据库基础
1.1 数据库(database)
是一个以某种有组织的方式存储的数据集合。相当于一个文件柜,是一个存放数据的物理位置,而不用管数据是什么以及如何组成的。
1.2 区分数据库和数据库软件。
不能用数据库这一术语代替数据库软件,通常使用的数据库软件成为DBMS(数据库管理系统),数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,但也可以不是。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为我们并不直接访问数据库;如果使用的是DBMS,它替我们访问数据库。
1.3 表(table)
是某种特定类型数据的结构化清单。当我们向文件柜存放资料时需要在文件柜中创建文件,然后将对应资料放进去。而这种文件就是表。表可以保存顾客清单、产品目录或者其他信息清单。
关键的一点在于一个表中的数据类型是同一的,比如不能将顾客的清单和订单的清单放在同一个表中,应分两个表存放。
每一个表都有唯一的名字用来标识自己。
1.4 模式(schema)
关于数据库和表的布局及特性的信息。用来描述表的信息就是模式,模式用来描述数据库中特定的表以及整个数据库。
1.5 列(column)
是表中的一个字段。所有的表都是由一个或多个列组成。
数据库中每个列都有相应的数据类型,数据类型定义列可以存储的数据种类。数据类型限制可存储在列中的数据种类,还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。
我们将数据库理解为一个网格,网格中的每一列存有特定的信息。比如在顾客表中,一列存顾客编号,另一列存顾客名,而地址、城市、州及邮政编码都存在各自的列中。
分解数据 :正确地将数据分解为多个列极为重要。例如,城市、州、邮政编码应该总是独立的列。通过把它分解开,才有可能利用特定的列对数据进行排序和过滤(如,找出特定州或特定城市的所有顾客)。如果城市和州组合在一个列中,则按州进行排序或过滤会很困难。
1.6 行(row)≈ 数据库记录(record)
是表中的一个记录,表中的数据是按行存储的,所保存的每个记录存储在自己的行内。例如,顾客表可以每行存储一个顾客。表中的行数为记录的总数。
1.7 主键(primary key)
是唯一标识表中每行的这个列(或组列),用来表示一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安
全的方法保证只涉及相关的行。
表中任何列都能成为主键,需要满足两点条件:
(1)任意两列不具有相同的主键值
(2)每个行必须具备一个主键值(不能为NULL)
几个好习惯:
(1)不更新主键列中的值
(2)不重用主键列的值
(3)不在主键列中使用可能会更改的值
2 关于SQL
SQL(Structured Query Language)是结构化查询语句的缩写,是一种专门用来与数据库通信的语言。
SQL不同于其他语言,其由很少的词构成。设计SQL的目的是很好地完成一项任务,即提供一种从数据库中读写数据的简单有效的方法。