设为首页 加入收藏

TOP

Oracle day04 DML_事务_序列_视图_数据类型_DDL(二)
2019-09-17 18:49:40 】 浏览:81
Tags:Oracle day04 DML_ 事务 序列 视图 数据 类型 _DDL
-语法2: insert into tablename sub-query 
--例子:

insert into emp_temp (select * from emp where deptno = 20)

 


--创建一个emp的临时复制表

create table emp_temp as select * from emp where 1 = 2

 

--delete关键字

--作用:删除表中的数据
--语法: delete [from] tablename [where condition] 
--例子:

delete emp_temp where empno = 8888;

 

小心使用  delete emp_temp; 

 

--update关键字

--作用:更新表中的数据
--语法: update tablename set column1=value1,column2=value2,...,columnN=valueN [where condition] 
--例子:

update emp_temp set sal = sal*1.2 where ename = 'SMITH';

 

事务

--转账

update emp_temp set sal = sal - 500 where ename='JONES';
update emp_temp set sal = sal + 500 where ename='SMITH';

 

commit;
rollback;

create table aaa(id number,name varchar2(20));

insert into emp_temp(empno,ename) values(1111,'cai10');
insert into emp_temp(empno,ename) values(2222,'cai20');
--savepoint 存档点 savepoint sp1;
insert into emp_temp(empno,ename) values(3333,'cai30'); insert into emp_temp(empno,ename) values(4444,'cai40'); rollback to sp1;

 


--事务的四个特性:ACID
--原子性(A)
--一致性(C)

update emp_temp set sal = 5000 where empno=1111
update emp_temp set sal = sal+1000 where empno = 1111;

 


--隔离性(I)
--持久性(D)

 

用户管理

--1.创建一个账户

create user zhangsan identified by 123456;

 


--2.修改账户的密码

alter user zhangsan identified by 654321;

 


--3.删除一个账户 [cascade 表示是否级联删除]

drop user zhangsan;

 


--4.让一个用户的密码失效

alter user zhangsan password expire;

 


--5.锁定、解锁一个账户

alter user zhangsan account lock;
alter user zhangsan account unlock;

 


--DCL

--grant授予权限
--revoke收回权限

--1.给用户授权
--允许用户登录

grant create session to zhangsan;

 


--给账户授权可以操作表

grant all on scott.emp_temp to zhangsan;

 


--2.取消用户的权限

revoke all on scott.emp_temp from zhangsan;

 

 

--创建序列

create sequence seq_emp_temp
increment by 1
start with 1

 


--使用序列

--通过序列名.next_val
自增序列: select seq_emp_temp.nextval from dual; 
查询序列: select seq_emp_temp.currval from dual; 
使用一次加一行序列加一: insert into emp_temp(empno) values(seq_emp_temp.nextval)


 

视图

--登录到sys账户给scott赋予创建视图的权限: grant create view to scott; 


--1.视图的创建

create view v$_emp_dept
as
select ename,sal,job,dname from emp,dept where emp.deptno = dept.deptno;

 



--视图也可以从视图中产生

create view v$_emp_dept_tem
as
select ename,sal from v$_emp_dept

 




--修改视图的数据,就是修改基表的数据

create or replace view v$_emp
as
select empno,ename from emp
with read only

select * from v$_emp;
select * from emp;

update emp set sal = 8888 where empno = 9527;

 




--视图的优点:可以使某些重复出现SQL语句变得更为简单
--视图的缺点:1.如果修改基表的结构,视图失效
--           2.增加数据库的维护成本
--           3.视图会被覆盖掉
--           4.一般情况下,不要对视图进行DML操作

--视图的例子

select dname, grade
  from (select deptno, avg_sal, grade from (select deptno, avg(sal) avg_sal from emp group by deptno) t, salgrade s where t.avg_sal between s.losal and s.hisal) t1,
       dept
 where t1.deptno = dept.deptno
   and t1.grade =
       (select min(grade)
          from (select deptno, avg_sal, grade from (select deptno, avg(sal) avg_sal from emp group by deptno) t, salgrade s where t.avg_sal be
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL slow_log日志表出现非法字.. 下一篇oracle学习笔记(三) DCL 数据控..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目