数据库基础
数据库
定义:数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件)
注释:人们通常用“数据库”来代表他们使用的数据库软件(这是错误的),正确描述为 [数据库管理系统](DBMS)。数据库是通过DBMS创建和操作的容器。
表
定义:表(table)某种特定类型数据的结构化清单
表名:每个数据库中表名唯一,表名的唯一性取决于多个因素。如数据库和表名等的结合。不同的数据库中却可以使用相同的表名
特性:不同表的特性,定义了数据在表中如何存储,例如:存在怎样的数据,数据如何分解,各部分信息如何命名等等。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)
模式
定义:关于数据库和表的布局及特性的信息
列
定义:列(column)表中的一个字段。所有表都是由一个或者多个列组成
注释:分解数据:正确地将数据分解为多个列极为重要。例如,城市、州、邮政编码应该总是独立的列。通过把它分解开,才有可能利用特定的列对数据进行排序和过滤(如,找出特定州或特定城市的所有顾客)。如果城市和州组合在一个列中,则按州进行排序或过滤会很困难。
数据类型(datatype)
定义:所容许的数据类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。
数据类型限制可存储在列中数据种类(例如:防止在数值字段存储录入字符值)。数据类型还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。
行(row)表中的一个记录。
定义:表中的数据按行存储,所保存的每个记录存储在自己的行内。网格中垂直的列为表列,水平行为表行
例如:顾客表可以每行存储一个顾客。表中的行数为记录的总数
主键
定义:一列(或一组列),其值能够唯一区分表中每个行
注释:
- 表中每一行都应该有可以唯一标识自己的一列(或一组列)。例如 顾客表可以使用顾客编号列,订单使用订单ID,雇员表可以使用雇员id
- 应该总是定义主键 虽然并不总是都需要主键,但大多数数据库设计人员都应把库存他们创建的每个表具有一个主键,以便于以后的数据操纵和管理
成为主键的条件
- 任意两行都不具有相同的主键值
- 每个行都必须具有一个主键值(主键值不允许为NULL)
- 不更新主键列中的值
- 不重用主键列的值
- 不在主键列中使用可以会更改的值
SQL
定义: SQL是结构化查询语言(Structured Query Language),SQL是一种专门用来与数据库通信的语言
SQL特点:
- SQL 不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL,所以学习此语言使你几乎能与所有数据库打交道
- SQL简单易学。它的语句全都是由描述性很强英语单词组成,而且单词数目不多
- SQL尽管看上去很简单,但他实际是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作