SQL入门经典(第5版)第三章 管理数据库对象

来源:互联网 发布:淘宝店铺名字可以改吗 编辑:程序博客网 时间:2024/06/06 00:48

本章的重点包括:
数据库对象简介
规划简介
表简介
讨论表的实质与属性
创建和操作表的范例
讨论表存储选项
引用完整性和数据一致性的概念

3.1 什么是数据库对象
数据库对象是数据库里定义的、用于存储或引用数据的对象,比如表、视图、簇、序列、索引和异名。

3.2 什么是规划
规划是与数据库某个用户名相关联的数据库对象集合。相应的用户名被称为规划所有人,或是关联对象组的所有人。

3.3 表:数据的主要存储方式
表是关系型数据库里面最主要的数据存储对象,其最简单形式是由行和列组成,分别都包含着数据。

3.3.1 列
字段在关系型数据库也被称为列,它是表的组成部分,被设置为特定的数据类型。

列也可以指定为NULL或NOT NULL,当设置为NOT NULL时,表示其中必须包含数据;设置为NULL时,就表示可以不包含数据。

3.3.2 行
行是数据库表里的一条记录。

3.3.3 CREATE TABLE语句
SQL里的CREATE TABLE语句用于创建表。

各个列定义之间以逗号分隔,全部列定义都在一对圆括号里面(左括号在第一列之前,右括号在最后一列之后)。

3.3.4 命名规范
在为对象选择名称时,特别是表和列的名称,应该让名称反应出所保存的数据。

3.3.5 ALTER TABLE命令
在表被创建之后,我们可以用ALTER TABLE命令对其进行修改。可以添加修改、删除列、修改列定义、添加和去除约束,在某些实现中还可以修改STORAGE值。

一、修改表的元素
列的属性是其所包含数据的规则和行为 。利用ALTER TABLE命令可以修改列的属性:
列的数据类型;
列的长度、有效位或标度;
列值是否为空。

二、添加列
如果表已经包含数据,这里添加的列就不能定义为NOT NULL,这是一条基本规则。

因此强行向表添加一列的方法如下:
1. 添加一列,把它定义为NULL(这一行不一定要包含数据);
2. 给这个新列在每条记录都插入数据;
3. 把列的定义修改为NULL。

三、添加自动增加的列
MySQL提供了SERIAL方法为表生成真正的唯一值。

Microsoft SQL Server中可以使用IDENTITY类型

Oracle没有提供直接的方法来创建自动增加的列。但却可以使用SEQUENCE对象和一个触发器来实现类似的效果。

四、修改列
通用规则:
列的长度可以增加到特定数据类型所允许的最大长度;
如果想缩短某列的长度,则必须要求这一列在表里所有数据的长度都小于或等于新长度;
数值数据的位数可以增加;
如果要缩短数值数据的位数,则必须要求这一列在表里所有数值的位数小于或等于新指定的位数;
数值里的小数位数可以增加或减少;
列的数据类型一般是可以改变的。

3.3.6 从现有表新建另一个表
利用CREATE TABLE语句与SELECT语句的组合可以复制现有的表。

MySQL和Oracle都支持使用CREATE TABLE AS SELECT方法,在一个表的基础上创建另一个表。但是Microsoft SQL Server却不一样,它使用SELECT…INTO方法来实现相同的效果。

SELECT*会选择指定表里全部字段的数据。“*”表示表里的一行完整数据,也就是一条完整记录。

3.3.7 删除表
如果使用了RESTRICT选项,并且表被视图或约束所引用,DROP语句就会返回一个错误。当使用了CASCADE选项时,删除操作会成功执行,而且全部引用视图和约束都被删除。

3.4 完整性约束
完整性约束用于确定关系型数据库里面数据的准确性和一致性。

3.4.1 主键约束
主键是表里一个或多个用于实现记录唯一性的字段。

PRIMARY KEY

3.4.2 唯一性约束
唯一性约束要求表里某个字段的值在每条记录里都是唯一的,这一点与主键类似。这两个都具有唯一性的字段之间没有太多的区别,只是主键让表具有了一定的秩序,并且可以用于结合相互关联的表。

UNIQUE

3.4.3 外键约束
外键是子表里的一个字段,引用父表里的主键。外键约束是确保表与表之间引用完整性的主要机制。一个被定义为外键的字段用于引用另一个表里的主键。

利用ALTER TABLE命令可以向表里添加外键。

3.4.4 NOT NULL约束
在没有指定NOT NULL时,字段默认为NULL,也就是可以是NULL值。

3.4.5 检查约束
检查约束用于检查输入到特定字段的数据的有效性,可以提供后端的数据库编辑,虽然编辑通常是在前端程序里完成的。

3.4.6 去除约束
利用ALTER TABLE命令的DROP CONSTRAINT选项可以去除已经定义的约束。

在MySQL里可以使用下面这样的命令来去除主键约束:
ALTER TABLE EMPLOYEES DROP PRIMARY KEY;

3.5 小结
本章概述了数据库对象的基本知识,主要介绍了表是关系型数据库里最简单的数据存储方式,它包含成组的逻辑信息,比如雇员、顾客或产品信息。表由各种字段组成,每个字段都有自己的属性,主要包括数据类型和约束,比如NOT NULL主键外键唯一值

本章介绍了CREATE TABLE命令和选项,比如存储参数。还介绍了如何使用ALTER TABLE命令调整已有表的结构。虽然管理数据库表的过程并不是SQL里最基本的过程,但如果首先学习了表的结构与本质,我们就更容易地掌握通过数据操作或数据库查询来访问表的概念。下一章将介绍SQL对其他对象的管理,比如表的索引和视图。

阅读全文
0 0
原创粉丝点击