unijun 发表于 2016-11-17 08:12:02

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]
查看完整版本: DB2第三章 使用SQL-表, 临时表,约束,视图,索引,数据类型