您的位置:首页 > 博客中心 > 数据库 >

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

热门排行

今日推荐

热门手游