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. SpringCloud学习系列之六 ----- 路由网关Zuul基础使用教程

    前言 在上篇中介绍了SpringCloud Config的完美使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关 ...

  2. 100 天从 Python 新手到大师

    Python应用领域和就业形势分析 简单的说,Python是一个“优雅”.“明确”.“简单”的编程语言. 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支 ...

  3. SpringBoot之旅第二篇-配置

    一.引言 虽然springboot帮我们进行了自动配置,但配置还是不可避免的,比如最简单的端口号,数据库连接.但springboot的配置一般不用xml进行配置,而是yml和properties,选择 ...

  4. 『Möbius函数与Möbius反演』

    Möbius函数 定义 设正整数\(n\)算数基本定理分解后为\(n=\prod_{i=1}^{k}p_i^{a_i}\),定义函数 \[ \mu(n)= \begin{cases} 0\ \ (\e ...

  5. asp.net core系列 60 Ocelot 构建服务认证示例

    一.概述 在Ocelot中,为了保护下游api资源,用户访问时需要进行认证鉴权,这需要在Ocelot 网关中添加认证服务.添加认证后,ReRoutes路由会进行身份验证,并使用Ocelot的基于声明的 ...

  6. 带着新人看java虚拟机05(多线程篇)

    上一篇我们主要是把一些基本概念给说了一下以及怎么简单的使用线程池,我们这一节就来看看线程池的实现: 1.线程池基本参数 以Executors.newFixedThreadPool()这种创建方式为例: ...

  7. 并发系列(7)之 ScheduledThreadPoolExecutor 详解

    文本将主要讲述 ThreadPoolExecutor 一个特殊的子类 ScheduledThreadPoolExecutor,主要用于执行周期性任务:所以在看本文之前最好先了解一下 ThreadPoo ...

  8. SQL Server AlwaysOn 集群 关于主Server IP与Listener IP调换的详细测试

    1. 背景 SQL Server 搭建AlwaysOn后,我们就希望程序连接时使用虚拟的侦听IP(Listener IP),而不再是主Server 的IP.如果我们有采用中间件,则可以在配置中,直接用 ...

  9. July 08th. 2018, Week 28th. Sunday

    Make each day your masterpiece. 让生命中的每一天都成为杰作. From John Wooden. Try to focus on what we are doing r ...

  10. 关于bootstrap报错

    在使用bootstrap报错.报错的位置如下 if("undefined"==typeof jQuery)throw new Error("Bootstrap's Jav ...