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.如果没有声明约束或指定约束名称,则系统会默认生成一个名称

DDL数据库对象管理的更多相关文章

  1. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  2. (二)sql入门 管理数据库对象

    在数据库里,有各种各样的对象,除了最常见的表之外,还有诸如视图.索引等数据库对象. 这些对象,在数据库里需要有人来管理,那么谁来管理呢?当然是数据库的使用者了.每个使用者相对于数据库里有一片区域,称为 ...

  3. [转]使用VS2010的Database 项目模板统一管理数据库对象

    本文转自:http://www.cnblogs.com/shanyou/archive/2010/05/08/1730810.html Visual Studio 2010 有一个数据库项目模板:Vi ...

  4. MySQL提供了以下三种方法用于获取数据库对象的元数据

    MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...

  5. 19.Mysql优化数据库对象

    19.优化数据库对象19.1 优化表的数据类型应用设计时需要考虑字段的类型和长度,并留有一定长度冗余.procedure analyse()函数可以对表中列的数据类型提出优化建议.procedure ...

  6. oracle(创建数据库对象)

    1 --创建数据库 2 --1.SYSDBA系统权限 3 startup:--启动数据库. 4 shutdown:--关闭数据库. 5 alter database[mount]|[open]|[ba ...

  7. 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】

    一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...

  8. Flyway, 数据库Schema管理利器

    整天跟数据库打交道的程序员都知道,当数据库的Schema发生改变时是多么痛苦的事情.尤其是一个在不断开发完善的项目,随着需求变化,数据库的schema也会跟着变化,而追踪记录这些变化一向都是费时费力. ...

  9. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数010,obj,对象管理

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数010,obj,对象管理 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...

随机推荐

  1. Oracle 后台进程(二)DBWR进程

    一.DBWR进程介绍 DBWR进程执行将数据块缓冲区写入数据文件的工作,是负责缓冲存储管理的一个Oracle后台进程.在修改DB Cache中的某个缓冲区时,会将它标志为“DIRTY”,DBWR的主要 ...

  2. strconv

    导入strconv包 Append Format Parse 字符串转其他类型 parse返回两个值,一个转换值,一个err,没有错误时,err返回的是nil,有错误,err接受错误信息. 整型转字符 ...

  3. 线段树(结构体建法_QAQ)

    线段树(结构体)模板 #include<iostream> #include<cstdio> #include<queue> #include<cstring ...

  4. shell uniq 统计,计数

    uniq选项与参数-i:忽略大小写-c:进行计数[zhang@localhost ~]$ cat 2.txt helloHelloWOrldabcabcABChello1 对2.txt进行sort后, ...

  5. sed基础

    sed  文本流编辑的  行编辑器 hold space :保持空间.仓库,半成品 一次从文件中读取一行,放到自己编辑的内存缓冲空间即模式空间,不会编辑原文件:根据所给定的命令在模式空间中做编辑处理, ...

  6. CF1200A

    CF1200A 解法: 给出长度为n的字符串,字符串由'L'.'R'以及数字0~9组成.旅馆有10间房子,L代表客人从左边入住,R代表客人从右边入住,数字则表示第i间房子客人退房了.问经过这n次操作后 ...

  7. Pstools使用

    pstool的介绍 PsTools是Sysinternals Suite中一款排名靠前的一个安全管理工具套件.现在被微软收购.目前pstools中含有12款各式各样的小工具.如果将它们灵活的运用,将会 ...

  8. Sketch教程

    去年夏天开始用Sketch,觉得它放Dock里闪亮亮的很好看,当时笑称是男盆友送我的第一颗小钻石噗哈哈.所以那段时间几乎刷遍了所有关于 Sketch 的网站.文章.教程,之后又在自学设计,因为想和更多 ...

  9. rc.local 注意事項,call python script, file position

    如果要在 rc.local 呼叫 python script python script 的位置需使用絕對路徑 其 python script 裡的有關 file 的位置也需使用 絕對路徑 如果要在 ...

  10. LC 986. Interval List Intersections

    Given two lists of closed intervals, each list of intervals is pairwise disjoint and in sorted order ...