DCL 数据控制语言 Data control language

之前说过的授权和收权利语句

grant, revoke

DDL 数据定义语言 Data define language

create alter,drop语句,创表,修改表,删除

创建表

create table $tablename$(
id int,
name varchar2(5) --需要声明最大长度
money number(6,2) --9999.00
--最后不能有逗号,否则会创表失败
)
/*
把其他的表的内容与结构复制生成一个新表,新表没有约束
将其它表的数据二复制到新表中(新表事先 不存在)
新表具有与查询的表格基本相同的结构,但不会有约束(主键、外键、默认约束..)。
*/
create table $tablename$ as $othertablename$ -- 把查询的结果的内容和结构生成一个新表
create table $tablename$ as select * from student

查看表结构

desc $tablename$

修改表

添加约束

约束用于限制加入表中的数据的合法性:

    1. NOT NULL:非空约束
    1. UNIQUE :唯一约束 UN_表名_列名 规范格式
    1. PRIMARY KEY :主键约束 PK_表名_列名
    1. FOREIGN KEY :外键约束 FK_表名_列名
    1. CHECK :检查约束 CHK_表名_列名
    1. DEFAULT :默认约束 DF_表名_列名

1.默认约束

alter table $tablename$ modify (列名 default 默认值);
--例
alter table student modify (age default 18);

2.唯一约束

alter table $tablename$ add constraint UN_$tablename_$columnname$ unique(列名)
--例
alter table student add constarint UN_student_num unique(num);

3.主键约束

alter table $tablenamae$ add constraint PK_$tablename_$columnname$ primary key(列名);
--例
alter table student add constraint PK_student_num primary key(num);
--复合主键(联合主键)
alter table student add constraint PK_student_numandage primary key(num,age);

4.检查约束

alter table $tablename$ add constraint CHK_$tablename_$columnname$ check(条件);--条件 且and  或or
--例
alter table student add constraint CHK_student_age check(age>=18 and age<=22);

5.外键约束

存在外键的表称为外键表

被外键引用的表称为主键表

  • no action(默认)

    删除主键表的某一数据,会拒绝删除,需要先删除外键表中引用了主键表某个数据的那些数据,才能删除主键表的该条数据
  • cascade 级联删除

    当删除主键表的某条数据,外键表引用了主键表的该数据的所有数据都会一起删除
  • set null

    当删除主键表的某条数据,外键表引用了主键表的该数据的所有数据的该列都会设置为null
alter table tablename add constraint FK_ foreign key() references () [on delete cascade/set null]

cascade update 级联更新类似

删除约束

alter table $tablename$ drop constraint 约束名
--例
alter table student drop CHK_student_age;

禁用约束

alter table $tablename$ disable constraint 约束名
--例
alter table student disable constraint CHK_student_age;

修改表名

--修改表名
alter table $oldtablename$ rename to $newtablename$;

添加列

alter table $tablename$ add $列名$ $数据类型$;

删除列

alter table $tablename$ drop column $列名$;

修改列(列数据类型或数据最大长度)

alter table $tablename$ modify $列名$ $数据类型$

创建表同时加入约束条件

create table $tablename$(
id int,
name,varchar(5),
money,number(6,2),
constraint pk_CK check...
) --这一种不能指定约束名,而是系统自动生成的约束名,删除的时候比较麻烦
create table $tablename(
id int not null primary key,
name varchar(5),
)

删除表

drop table $tablename$ --删除的表放入回收站中
drop table $tablename$ purge --彻底删除表
show recyclebin; --在PLSQL Developer中看不见,需要在sqlplus窗口执行
purge recyclebin; --清空回收站

删除表数据但不删除表结构

truncate table $tablename$;

恢复表

flashback table $tablename$ to before drop;

oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. Oracle学习笔记三

    一.创建表空间 表空间是ORACLE数据库的逻辑单元.数据库--表空间 一个表空间可以与多个数据文件(物理结构)关联一个数据库下可以建立多个表空间,一个表空间可以建立多个用户个用户下可以建立多个表. ...

  3. oracle 学习笔记(三)

    1. SQL(基础查询) 1.1. 基本查询语句 1.1.1. FROM子句 SQL查询语句的语法如下:   SELECT <*, column [alias], -> FROM tabl ...

  4. Oracle学习笔记(三)

    五.操作表 1.表分为行和列 约定:每行数据唯一性,每列数据同类性,每列列名唯一性. 2.数据类型 字符型 -- 固定长度的字符类型 字符类型:CHAR(n)(MAX n=2000).NCHAR(MA ...

  5. Oracle学习笔记一

    Oracle数据库的体系结构 数据库: database Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实 Oracle数据库的概念和其它数 ...

  6. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  7. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  8. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  9. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

随机推荐

  1. 伪元素before after

    什么是伪元素(Pseudo element)? 伪元素不是真正的元素,不存在与文档之中,所以js无法操作他.那为什么叫他"元素"?因为我们可以对其进行跟元素几乎无差别的操作. 伪元 ...

  2. 死磕 java集合之SynchronousQueue源码分析

    问题 (1)SynchronousQueue的实现方式? (2)SynchronousQueue真的是无缓冲的吗? (3)SynchronousQueue在高并发情景下会有什么问题? 简介 Synch ...

  3. 抽象工厂模式--java代码实现

    抽象工厂模式 抽象工厂模式,对方法工厂模式进行抽象.世界各地都有自己的水果园,我们将这些水果园抽象为一个水果园接口,在中国.英国和美国都有水果园,种植不同的水果,比如苹果.香蕉和梨等.这里将苹果进行抽 ...

  4. 约定Service构建方式

    对于DevOps中,将开发好的软件交付给运维人员去部署与维护,过程中参杂着诸多不可控制的变量,如环境问题.版本问题等等,而Docker容器极大程度上解决了这些问题,同时对于服务的持续交付,也变得方便和 ...

  5. 深入理解Linux内核 学习笔记(4)

    第四章 中断和异常 中断通常被分为同步中断和异步中断,同步中断是当指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断异步中断是由其他硬件设备依照CPU时 ...

  6. 【学习笔记Part 1 ● Linux】

    本章目标 Linux简介 Linux发展 Linux界面熟悉 Linux常用命令 Linux简介 经常看到的或者熟悉的操作系统: Windows操作系统:Window 10或者Window 7 Mac ...

  7. SuperMap iObject入门开发系列之四管线长度统计

    本文是一位好友“托马斯”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢. 上一期文章主要写了管线系统的标注功能,结合代码简单讲解了一些超图.NET开发框架气泡Bubble的使用方法,这期的文章 ...

  8. 【普及篇】通信能力API及其前景分析

    ** 1.目前通信行业发展背景**运营商基础通信能力的价值逐渐提升进入数字化时代以来,信息产业正迎来新变革与新发展——网络信息技术与社会各领域全面深度融合,为工业制造.智慧城市等各行业赋能.运营商传统 ...

  9. 多线程总结之旅(1):线程VS进程

    一.进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,也就是应用程序的执行实例,进程是系统进行资源分配和调度的一个独立单位.每个进程是由私有的虚拟地址空间.代码.数据和其它各种系统资 ...

  10. 接触新的项目,构建时候报错:Failure to find io.netty:netty-tcnative:jar:${os.detected.classifier}:2.0.7.Final in

    详细信息如下: Failure to find io.netty:netty-tcnative:jar:${os.detected.classifier}:2.0.7.Final in http:// ...