oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言
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$
修改表
添加约束
约束用于限制加入表中的数据的合法性:
- NOT NULL:非空约束
- UNIQUE :唯一约束 UN_表名_列名 规范格式
- PRIMARY KEY :主键约束 PK_表名_列名
- FOREIGN KEY :外键约束 FK_表名_列名
- CHECK :检查约束 CHK_表名_列名
- 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 数据定义语言的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- Oracle学习笔记三
一.创建表空间 表空间是ORACLE数据库的逻辑单元.数据库--表空间 一个表空间可以与多个数据文件(物理结构)关联一个数据库下可以建立多个表空间,一个表空间可以建立多个用户个用户下可以建立多个表. ...
- oracle 学习笔记(三)
1. SQL(基础查询) 1.1. 基本查询语句 1.1.1. FROM子句 SQL查询语句的语法如下: SELECT <*, column [alias], -> FROM tabl ...
- Oracle学习笔记(三)
五.操作表 1.表分为行和列 约定:每行数据唯一性,每列数据同类性,每列列名唯一性. 2.数据类型 字符型 -- 固定长度的字符类型 字符类型:CHAR(n)(MAX n=2000).NCHAR(MA ...
- Oracle学习笔记一
Oracle数据库的体系结构 数据库: database Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实 Oracle数据库的概念和其它数 ...
- Oracle学习笔记之四,SQL语言入门
1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Oracle学习笔记—数据字典和常用命令(转载)
转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
随机推荐
- 腾讯面试:一条SQL语句执行得很慢的原因有哪些?---不看后悔系列
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯 ...
- JDK--box和unbox
目录 什么是装箱.拆箱 基本类型和包装类型 为什么会有基本类型? 为什么还要有包装类型 两者区别 两者互转 源码分析(JDK1.8版本) valueOf方法 1.Integer.Short.Byte. ...
- 使用jdbc拼接条件查询语句时如何防止sql注入
本人微信公众号,欢迎扫码关注! 使用jdbc拼接条件查询语句时如何防止sql注入 最近公司的项目在上线时需要进行安全扫描,但是有几个项目中含有部分老代码,操作数据库时使用的是jdbc,并且竟然好多都是 ...
- 更好用的css命名方式——BEM命名
一.什么是BEM? BEM代表块(Block),元素(Element),修饰符(Modifier).无论是什么网站页面,都可以拆解成这三部分. 二.带你认识网页 我们来看一下qq的官网,它可以由三个块 ...
- 004. 前端跨域资源请求: JSONP/CORS/反向代理
1.什么是跨域资源请求? https://www.cnblogs.com/niuli1987/p/10252214.html 同源: 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有 ...
- SpaceSyntax【空间句法】之DepthMapX学习:唠叨(目录)
最近花大力气学习了空间句法这一理论,以及其相关软件DepthMapX. 我觉得吧,你要是能搜索到这理论,这一软件名,这篇博客,那我甚至都不用介绍这软件是干什么用的——好吧,还是会说一下的. 虽然不知道 ...
- 景观指数分析 - 初识FragStats4.2
引 言 FragStats景观格局分析软件 ,简单扼要地说就是景观指数的集成分析环境,不用自己编写相关的算法和读/取文件的开发.根据了解,FragStats(Fragment Statistic)官方 ...
- 常见hash算法
hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),这样可以快速在数组等条件中里面存取数据. ...
- Android 平台 Native 代码的崩溃捕获机制及实现
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/g-WzYF3wWAljok1XjPoo7w 一.背景 ...
- PHP全栈学习笔记8
面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类. 类,属性和方法,类,对象,面向对象编程的三大特点.特点,封装性,继承性,多态性. 封装性 ...