• 我所知道的数据库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查询语句;--将查询结果插入新建表单中。

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

  • 相关阅读:
    函数 定义与调用
    python文件基本操作(读,写,追加)
    python集合深浅copy
    day6 bytes类型用法
    字典的增删改查
    一个文件启动Django(基础中的基础)
    Django错误集
    Linux的Shell
    Linux的Vim文本编辑器
    Linux管道符和重定向与环境变量
  • 原文地址:https://www.cnblogs.com/jason-huang/p/6358446.html
Copyright © 2020-2023  润新知