我所知道的数据库6-DDL语言(续)

由于种种原因,再次写博竟然隔了4天,鉴于我朋友说我之前写的太生硬,有点照搬的意思,鄙人也觉得是,这次改下,希望能好点……

接着上回吧,上次说到表单的创建,也示例了带默认值的创建方法,这次示例带约束创建表单的方法。

主键约束:

  例:CREATE TABLE CLASS(

                ID NUMBER PRIMARY KEY,

                NAME CHAR(20)

    );--创建班级表,其中学号为主键。

  当然,也可以写成

    CREATE TABLE CLASS(

                ID NUMBER ,

                NAME CHAR(20),

                PRIMARY KEY(ID)

    );--创建班级表,其中学号为主键。

这两者的效果是相同的,如果表单中有多个属性需要主键字段,可像第一种方法,在每个属性后添加主键约束关键字,也可像第二种方法,将所有需要主键约束的属性放入括号内。

    CREATE TABLE CLASS(

                ID NUMBER ,

                NAME CHAR(20),

                PRIMARY KEY(ID,NAME)

    );--创建班级表,其中学号、姓名均为主键。

这个时候主键名称是由RDBMS自动分配的,并不利于我们管理,所以我们需要在创建约束的时候对其命名。

    CREATE TABLE CLASS(

                ID NUMBER ,

                NAME CHAR(20),

                CONSTRAINT CLASS_PK PRIMARY KEY(ID)

    );--创建班级表,其中学号为主键,名称为CLASS_PK。

外键约束:

  例:CREATE TABLE CLASS(

                ID NUMBER PRIMARY KEY,

                NAME CHAR(20)

    );--创建班级表,其中学号为主键。

    CREATE TABLE SCORE(

                ID NUMBER,

                SCORE NUMBER,

                FOREIGN KEY(ID) REFERENCES CLASS(ID)

    );--创建成绩表,其中学号为外键。

唯一约束:

  例:CREATE TABLE CLASS(

                ID NUMBER UNIQUE,

                NAME CHAR(20)

    );--创建班级表,其中学号为唯一约束。

非空约束:

  例:CREATE TABLE CLASS(

                ID NUMBER UNIQUE,

                NAME CHAR(20) NOT NULL

    );--创建班级表,其中学号为唯一约束,姓名为非空约束。

检查约束:

  例:CREATE TABLE CLASS(

                ID NUMBER CHECK(ID>1),

                NAME CHAR(20)

    );--创建班级表,其中学号为检查约束。

PS,在数据库中,当我们忘记某表的约束状态时,可以查询USER_CONSTRAINT库默认表单,查询语句为:

  SELECT * FROM USER_CONSTRAINT WHERE TABLE_NAME='表名';

创建表单还有一种情况,子查询创建表,示例如下:

  CREATE TABLE 表名 AS SELECT查询语句;--将查询结果插入新建表单中。

这种方法有点类似于视图的创建,但跟视图又有区别。视图只是虚表,不操纵数据。

原文地址:https://www.cnblogs.com/jason-huang/p/6358446.html