数据库
数据库(database,保存有组织的数据容器)是一个以某种有组织的方式储存的数据集合。最简单的办法是将数据库想象为一个文件柜。这个文件柜是一个存放数据的物理位置,不管数据是什么,也不管数据是如何组织的。
关于数据库和数据库管理软件
人们通常用数据库这个术语来代表他们使用的数据库软件,这是不正确的。确切的说,数据库软件应被称为数据库管理系统(DBMS),数据库是通过DBMS创建和操纵的容器。
表
表(table,某种特定类型数据的结构化清单)是一种结构化的文件,可用来存储某种特定类型的数据。设计表的关键一点在于,存储在表中的数据是同一类型的数据或者清单。
数据库中的每个表都有一个名字来识别自己,这个名字是唯一的,但是实际上是数据库名和表名的组合来使表名唯一,有的数据库还使用数据库拥有者的名字作为唯一名的一部分。但是在相同的数据库中不能两次使用相同的名字。
模式(schema)
表具有一些特性,这些特性定义了数据在表中如何储存,包含什么样的数据,数据如何分解,各部分信息如何命名等信息。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表,也可以用来描述整个数据库(和其中表的关系)。
列和数据类型
列
列(column)代表表中的一个字段,所有表都是由一个或者多个列组成的。每一列都储存着某种特定的信息。
将数据分解为多个列是数据库表结构设计中的重要环节,通过正确的数据分解,才有可能利用特定的列对数据进行分类和过滤。
数据类型
数据库中每个列都有相应的数据类型。数据类型(datatype)定义了列可以储存哪些数据种类。数据类型可以帮助正确的分类数据,并且在优化磁盘使用方面起重要的作用。因此,在设计和创建表的时候必须特别关注所用的数据类型。
数据类型兼容
数据类型及其名称是SQL不兼容的一个主要原因。各DBMS只是支持大部分的基本数据类型,但是对于高级类型的支持则有所不同。所以在创建表结构时需要清楚这些差异。
行
行(row)是表中的一个记录。表中的数据都是按行储存的,每条记录对应表中的一行。
记录还是行?
有些用户提到行时称其为数据库记录(record),这两个术语多半是可以交替使用的,但是准确的说,行才是正确的术语。
主键
表中的每一行都应该有一列或者几列可以唯一标识自己,这一列的字段被称为主键(primary key)。没有主键的话,更新或者删除表中的特定行就极为困难,因为无法保证操作只涉及到相关的行。
应该总是定义主键,以便于以后的数据管理和操作。
表中的任何列都可以作为主键,只需满足以下条件:
- 任意两行都不具有相同的主键值
- 每一行都必须具有一个主键值(主键列不允许null值)
- 主键列中的值不允许修改或更新
- 主键值不能重用(某行从表中删除,其主键也不能赋给以后的行)
主键通常定义在表的一列上,也可以一起使用多个列作为主键。使用多个列作为主键的时候,上述条件必须应用到所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。
外键将会在后面提到
SQL
SQL是Structured Query Language(结构化查询语言)的缩写,SQL是一种专门用来与数据库沟通的语言。
SQL的优点:
- SQL不是某个特定数据库供应商专有的语言,几乎所有的DBMS都支持SQL。
- SQL的语句全都是由有很强描述性的英文单词组成,可以像写英文句子一样写出SQL的语句,而且这些单词的数量很少。
- SQL看似简单,但实际上是一种强有力的语言。熟练使用以后可以进行非常负责和高级的数据库查询。
关于SQL的扩展
许多DBMS厂商通过增加语句或指令,对SQL进行了扩展。这种扩展的目的是提供执行特定操作的额外功能或简化方法。但是这种扩展通常都是针对个别DBMS的。
我们所讨论的SQL是由ANSI标准委员会制定的和管理的标准SQL,从而被称为ANSI SQL。所有主要的DBMS都支持标准的SQL。
以上就是关于数据库基础的一些介绍。
在进行下一步数据库的操作之前,还有一个重要的步骤就是安装数据库,将在下一篇介绍如何在Mac电脑上安装MySQL数据库。