DB2第三章 使用SQL-表, 临时表,约束,视图,索引,数据类型

            DB2第三章 使用SQL-表, 临时表,约束,视图,索引,数据类型

            作者:魏华超   联系方式:[email protected]
1. 表的概念:
   
   (1) 表是未排序的数据记录的集合,行由多列组成(通常称为记录).每个列都有一个数据类型.
   (2) 表有三中类型:
      A. 永久表
      B. 临时(声明)表
      C. 临时(派生)表
 2.永久表:
 (1)永久表的创建:
    CREATE TABLE EMPLOYEE
    (
         EMPNO INT NOT NULL,
         NAME VARCHAR(20),
         SALARY NUMERIC(8,2)
    )
 (2)表中标识列的生成:标识列是由DB2系统自动生成的序列号或者其它值.
    --按照默认的方式生成自动增长的序列:(初始值为1,自动增长为1)
    create table employee
   (
       EMPNO integer generated always as identity ,
       EMPName varchar(30) not null
   )

  --自定义序列的增长.
      create table employee
   (
       EMPNO integer generated always as identity(start with 100,increment 10) ,
       EMPName varchar(30) not null
   )

 (3)默认值的创建:
    CREATE TABLE EMPLOYEE
    (
     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,increment 10) ,
     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规则:数据库管理器禁止更新父表中的行.当更新从表的外键时,如外键设置为NOT NULL,则外

键的值必须和主表的值相匹配.有两个选项:
   RESTRICT  ------如果从表中的某行匹配键的原始值,将拒绝对父表的更新
   NO ACTION -----在更新语句结束时,如果从表中的任意行没有相应的父键,将拒绝对父键的更新.这个 

          是默认设置.
   (6)DELETE规则:当从父表中删除一行时,数据库管理器将检查在依赖表是否存有与外键值相符的依赖行

.如果发现依赖行,将执行系统采用的动作:
   RESTRICT(限制)--这个规则在发现有依赖关系的行后防止父表中的行被删除.如果要删除主表和从表的

行,必须先删除从表.
   NO ACTION(无动作)---这个规则要求在所有引用约束应用后每一个子行都有对应的父行.这个是默认设

置.

   CASCADE (级联)---当删除主表中的记录时,同时删除从表中依赖的相关行.
   SET  NULL(置空)---如果从表允许空,则删除主表行时,从表中的依赖行的外键置空.
  
 
    
     

你可能感兴趣的:(sql,C++,c,db2,C#)