oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言

mac2022-06-30  93

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:非空约束2) UNIQUE :唯一约束 UN_表名_列名 规范格式3) PRIMARY KEY :主键约束 PK_表名_列名4) FOREIGN KEY :外键约束 FK_表名_列名5) CHECK :检查约束 CHK_表名_列名6) 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;

转载于:https://www.cnblogs.com/chaoyang123/p/11549336.html

相关资源:oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串
最新回复(0)