zoukankan      html  css  js  c++  java
  • DDL数据库对象管理

    DDL数据库对象管理

     

    约束的分类:

    主键约束:primary key 要求主键列数据唯一,并且不允许为空。

    外键约束:foreign key 用于在两表之间建立关系,需要指定引用主表的哪一列。

    检查约束:check 某列取值范围限制、格式限制等。 例如性别列

    唯一约束:unique 数据的唯一性,可以空,但只能有一个

    非空约束:not null 该列数据不能为空

    注意:1.not null 约束只能在列级上定义。

    2. 外键需要关联主键表的主键列或唯一列,这里关联唯一列

    3. 创建外键表时:先创建主键表,在创建外键 。删除表时:先删除外键表,在删除主键表

     

    1.创建表格

    -- Create table 表格名称(列名 数据类型 约束 ,列名 数据类型 ,约束);

    create table cla

    (

    clano number,

    claid nvarchar2(20),

    claname nvarchar2(20)

    );

    --在创建完列后,同时创建约束(列级约束)

    例如:

    create table T1(

    id number constraint PK_T1 primary key, -- 声明约束可以使用constraint PK_T1指定约束名

    NAME VARCHAR(20) constraint UN_T1_NAME unique NOT NULL, -- 唯一和非空

    SEX CHAR(2) constraint CK_T1_SEX CHECK( SEX IN ('男','女')),

    tid number constraint FK_T1_T references T(id)

    );

     

    --在创建完表格列后,在列下面创建约束(表级约束)

    例如:

    create table T2(

    id number ,

    NAME VARCHAR(20) not null, -- not null 只能定义在列的后面,称为列级约束

    SEX CHAR(2),

    tid number ,

    constraint PK_T2 primary key(id), ---先定义列后编写的约束称为表级约束;

    constraint UN_T2_NAME unique(name) ,

    constraint CK_T2_SEX CHECK( SEX IN ('男','女')),

    constraint FK_T2_T foreign key (tid) references T(id) -- 在表格后指定外键列时需要使用 foreign key指定外键列

    );

     

    --联合主键,联合唯一

    create table T3(

    ID NUMBER ,

    SID NUMBER ,

    NAME NVARCHAR2(20),

    NAME2 NVARCHAR2(20),

    constraint PK_T3 PRIMARY KEY(ID,SID), -- 联合主键

    CONSTRAINT UN_T3_NAME_NAME2 UNIQUE(NAME,NAME2) -- 联合唯一

    );

     

    2.修改表格

    --修改表格之添加主键,唯一约束,外键约束,检查约束

    例如:

    1.alter table cla add constraint PK_CLA primary key (CLANO);

    2.alter table cla add constraint UN_CLA_CLAID unique (CLAID);

    3.alter table STU add constraint FK_STU_CLA foreign key (CLASSID) references cla (CLANO);

    4.alter table STU add constraint CK_STU_SEX check (sex in ('男','女'));

     

     

    3.删除表格

    语法: drop table 表格名称

    注意:删除主键表前,需要先删除外键表上的引用关系

    drop table cla2;

     

    4. 查询表格 (不属于DDL)-----

    select table_name from user_tables;

     

    补充:

    1 . references 和 reference 的区别

    references 可以在定义列的同时引用主键表;reference不可以

    2. 声明约束可以使用constraint PK_T1指定约束名

    3. 外键需要关联主键表的主键列或唯一列

    4.如果没有声明约束或指定约束名称,则系统会默认生成一个名称

     

  • 相关阅读:
    【BZOJ4769】超级贞鱼 归并排序求逆序对
    [简明版] 有道云笔记Markdown指南
    在Pycharm中配置Github
    Linux学习笔记之Xshell配色方案定制
    前端学习笔记之ES6快速入门
    魔改有道云笔记
    Python爬虫学习笔记之Centos下安装配置Mongodb3.6
    Linux学习笔记之CentOS6.9 防火墙的关闭以及开启
    Web前端学习笔记之jQuery选择器
    Django学习笔记之Queryset详解
  • 原文地址:https://www.cnblogs.com/xiaomingit/p/11253056.html
Copyright © 2011-2022 走看看