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

dcl 数据控制语言 data control language

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

ddl 数据定义语言 data define language

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

创建表

create table $tablename$(
    id int,
    name,varchar(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);

删除约束

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;
(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐