DB2第三章 使用SQL-表, 临时表,约束,视图,索引,数据类型
DB2第三章 使用SQL-表,临时表,约束,视图,索引,数据类型作者:魏华超 联系方式:weihuachao@sina.com
1. 表的概念:
(1)表是未排序的数据记录的集合,行由多列组成(通常称为记录).每个列都有一个数据类型.
(2) 表有三中类型:
A. 永久表
B. 临时(声明)表
C. 临时(派生)表
2.永久表:
(1)永久表的创建:
CREATE TABLEEMPLOYEE
(
EMPNO INT NOT NULL,
NAME VARCHAR(20),
SALARY NUMERIC(8,2)
)
(2)表中标识列的生成:标识列是由DB2系统自动生成的序列号或者其它值.
--按照默认的方式生成自动增长的序列:(初始值为1,自动增长为1)
create tableemployee
(
EMPNO integer generated always as identity ,
EMPName varchar(30) not null
)
--自定义序列的增长.
create table employee
(
EMPNO integer generated always as identity(start with 100,increment10) ,
EMPName varchar(30) not null
)
(3)默认值的创建:
CREATE TABLEEMPLOYEE
(
EMPNO INTEGER NOT NULL,
EMPNAME VARCHAR(30) NOT NULL WITH DEFAULT ' ',
EMPSALARY NUMERIC(8,2)WITH DETAULT 0.0
)
(4)GENERATED的第二种用法:
用于列的计算
CREATE TABLE EMPLOYEE
(
EMPNO integer generated always as identity(start with 100,increment10) ,
EMPName varchar(30) not null,
EMPSALARY INT,
EMPBONUS INT,
EMPPAY INT GENERATED ALWAYS AS(EMPSALARY+EMPBONUS)
)
3.表的约束:
(1)表的约束,就是数据库管理器实施的规则:有三种约束:
A.唯一性约束--确保表中键值的唯一性.
B.引用性约束--对插入.更新.以及删除操作强制进行引用约束
C.表检查约束--检查更改过的数据是否违反了表在创建或者更该时制定的条件.
(2)唯一性约束:
A.唯一性约束中每一组成键的列必须都定义为NOT NULL.
B.唯一性约束使用primary key和unique来保证.
(3)引用性约束
A.主表和从表的区别:
B.引用约束要求主表被引用的列必须唯一.
C.引用约束的执行对于一些依赖于表示主表还是从表的SQL操作具有特殊的含义.数据库管理器根据
引用完整性规则在系统间强制进行引用约束,这些规则是:
INSERT规则
UPDATE规则
DELETE规则
(4)当插入一个外键是就隐含了INSERT规则:INSERT规则要求在从表插入数据时,外键的值在主表必须存
在或者为空,否则不能在从表中插入记录.如果多行插入中,一行失败则所有的插入的行都从数据库中删除.
(5)UPDATE规则:数据库管理器禁止更新父表中的行.当更新从表的外键时,如外键设置为NOTNULL,则外
键的值必须和主表的值相匹配.有两个选项:
RESTRICT ------如果从表中的某行匹配键的原始值,将拒绝对父表的更新
NO ACTION-----在更新语句结束时,如果从表中的任意行没有相应的父键,将拒绝对父键的更新.这个
是默认设置.
(6)DELETE规则:当从父表中删除一行时,数据库管理器将检查在依赖表是否存有与外键值相符的依赖行
.如果发现依赖行,将执行系统采用的动作:
RESTRICT(限制)--这个规则在发现有依赖关系的行后防止父表中的行被删除.如果要删除主表和从表的
行,必须先删除从表.
NOACTION(无动作)---这个规则要求在所有引用约束应用后每一个子行都有对应的父行.这个是默认设
置.
CASCADE(级联)---当删除主表中的记录时,同时删除从表中依赖的相关行.
SET NULL(置空)---如果从表允许空,则删除主表行时,从表中的依赖行的外键置空.
页:
[1]