Oracle 三种语言
时间:2022-03-15 08:32
最近一段时间学习了Oracle,学的比较快,而且内容比较多,命令记不熟,知识点混乱,现在重新整理一下,
一 数据库的三种语言
数据库的三种语言分别是ddl(数据定义语言),dml(数据操作语言),dcl(数据控制语言).
1 数据定义语言ddl 主要有create alter drop 用于表结构(字段 约束)的修改.
1.1 create命令
创建一个表
create table 表名(字段 类型,字段 类型.....);
根据a表创建b表
create table b表 as select 字段一,字段二.....) from a表 where .....;
根据a表创建b表 只保留表结构,不要数据
create table b表 as select * from a表 where1<>1
1.2 alter命令
alter 命令 用于表结构如:字段,约束的增删改
字段的增删改
alter table 表名 add(字段 类型);
alter table 表名 drop column 字段名;
alter table 表名 modify (字段 类型);
约束的增删改
alter table 表名 add constraint 约束名 primary key(字段);
alter table 表名 add constraint 约束名 unique(字段);
alter table 表名 add constraint 约束名 check(sex=‘男‘ or sex=‘女‘);
alter table a表 add constraint 约束名 foreign key(a表外键字段) references b表(主键)[on delete cascade];(b表主键作为a表外键)
alter table 表名 modify (字段 not null);
alter table 表名 modify(字段 default ‘默认值‘);
alter table 表名 drop primary key|unique(字段名)|constraint 约束名;
禁用约束
alter table 表名 disable constraint 约束名;
启用约束
alter table 表名 enable constraint 约束名;
1.3 删除表
drop table 表名
二 数据操作语言dml
ddl 对表结构进行增删改,数据操纵语言dml 对表中数据增删改.dml 主要包含命令 inset,delete,update
2.1插入数据 insert
insert into 表名(字段1,字段2...) values(value1,value2...);
复制a表全部数据到b表
insert into b表 select * from a;
2.2修改数据 update
update 表名 set 字段 = 值 where 条件;
update 表名 set(字段1,字段2...) =(select 字段1,字段2... from 表 where 条件) where条件;
2.3数据删除 delete
delete form 表 where条件;
删除表中所用数据
delete table 表名; --数据清空,结构还在,写日志,可恢复,速度慢
truncate table 表名 ; --数据清空,结构还在,不写日志,不可恢复
区别于ddl中的 删除表操作
drop table 表名;--数据清空,表删除,表结构不在
三 数据控制语言dcl
数据库控制语言dcl 包含用户创建,用户授权,分配表空间等命令
3.1用户创建
create user 用户名 identified by 密码
3.2删除用户以及用户所有数据
drop user 用户名 cascade;
3.3授权用户
grant create table,create view,create trigger, create sequence,create procedure to 用户名;--分配创建表,视图,触发器,序列,过程 权限
grant select,insert,update on 表名 to 用户名;
3.4撤销授权
revoke 权限 from 用户
参考:https://blog.csdn.net/haiross/article/details/50904780