Oracle DML、DCL

本文详细介绍了Oracle数据库中的DML(Data Manipulation Language)和DCL(Data Control Language)。DML包括insert into(插入数据)、update...set(修改数据)、delete(删除数据)和select(查询数据)四种操作,其中select语句是SQL的基础。DCL涉及grant(授予权限)、revoke(收回权限)、commit(提交事务)、rollback(事务回滚)和savepoint(设置保存点)。特别强调了DML操作需要commit,而DDL操作自动提交,不支持rollback。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DML:数据操纵语言,对数据记录进行新增、修改、删除、查询
SQL语句:
(1) insert into:新增数据到数据库中

insert into test7 values(seq_test7.nextval,’Lisa’,’1703068256’,’12-3月-19’,95, ’18-3月-19’);

图示1:
在这里插入图片描述
(2) update…set…:修改数据库中的数据

update test7 set testName =’Lina’where testName =’Lisa’;

图示2:
在这里插入图片描述
(3) delete:删除数据库中的数据(要注意给出过滤条件,不然整个表的数据都会被删除)

delete from test7 where IdCard=’1703068256’;

(4) select:查询数据,是SQL语言的基础,它是最为重要的
基本select语句:

select * from test7;

复杂select语句
如:查询出部门中最高工资的最高工资所在部门的员工信息

select *
from employees
where department_id=(select department_id from employees
group by department_id
having max(salary)=(select max(max(salary)) from employees
group by department_id));

图示3:
在这里插入图片描述
DCL:数据控制语言,控制数据库的访问
SQL语句:
(1) grant:授予权限访问

create user orcltest2 identified by orcltest2;(创建用户)
grant create session, create table, create sequence, create view to orcltest2;(DBA给用户赋予系统权限)
赋予了create table权限之后,还不能创建表,我们要分配相应的表空间才能开启存储空间创建表。
alter user orcltest quota unlimited on orcltest2;
(注:也可以通过创建角色,给角色赋予权限,再将角色赋予给用户)

分配对象权限:
grant select on test7 to orcltest2;(分配表test7的查询权限给用户)
grant update on scott.test7 to orcltest2;(分配表test7各个列的更新权限给用户)
grant all on test7 to orcltest2;(分配所有的权限给用户)

(2) revoke:收回权限访问

revoke select on test7 from orcltest2;
revoke update on scott.test7 from orcltest2;
revoke all on test7 from orcltest2;

(3) commit:提交事务处理,改变数据后提交
DML中的insert into语句、update…set…语句、delete语句要使用到commit
DDL中的语句是自动提交的,不需要用commit

(4) rollback:事务处理回滚
DML中的insert into语句、update…set…语句、delete语句可以使用rollback,
但是DDL中的语句是自动提交的,所以不能rollback

(5) savepoint:设置保存点

update test7 set testName ='luna' where testID=’2’;
savepoint A;--创建保留点A

图示4:
在这里插入图片描述

insert into test7 values(seq_test7.nextval,’Tina’,’1703068257’,’12-3月-19’,95, ’18-3月-19’);
savepoint B; --创建保留点B

图示5:
在这里插入图片描述

rollback to A;--回滚到保留点A,保留点B的数据被回滚

图示6:
在这里插入图片描述
Rownum伪列:rownum只能使用’<‘或’<=’,用’>‘或’>=‘都不能返回任何数据,要使用’>‘或’>=‘符号的话,要多嵌套一个子查询,并给rownum起个别名,用别名进行’>‘或’>='条件查询。
如:查询出员工表中工资排名在20至30之间的员工信息

Select * from(
Select rownum ran,last_name,salary,department_id
From (select last_name,salary,department_id from employees
Order by salary desc))
Where ran>=20 and ran<30;

图示7:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值