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: