欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-02-26 14:26:33
DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create alter,drop语句,创表,修改表,删除 创建表 查看表结构 修改表 添加约束 约束用于限制加入 ......

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;