oracle v sql视图详解,Oracle(SQL 之视图)

-- 查询部门号为10所有的员工,所有得到提成的员工,以及20号部门工资不超过2000的美元的员工

select * from emp where empno=10 or comm is not null or deptno=20 and sal>2000;

--  union 函数 去除重复的

select deptno from dept union  select deptno from emp;

-- 授权

grant create view to scott;

grant create table to  scott;

grant create session to scott;

--  创建视图

create view V

as

select * from emp

where job = 'SALESMAN' ;

-- 授权视图

grant create view to scott;

-- 使用union all 把 表中的行组合在一起

select ename from emp

union all

union

select dname from dept;

-- 显示10部门员工的姓名 以及员工所在地点   简单的两个表的查询

--等值连接 内链接的一种

select

e.ename,d.loc

from

emp e,dept d

where

e.deptno=d.deptno

and d.deptno=10;

-- 利用(inner) join on关键字  内连接

select

e.ename,d.loc

from

emp e inner join dept d on(d.deptno=e.deptno)

and d.deptno=10;

-- 利用别名查询表

select d.* from dept d;

--查询 三个表显示数据

create table emp_bonus(

enpno number,

received varchar2(20),

type number

);

--修改把字段名enpno修改 empno;

--alter table [表名]  rename   column 旧的字段名 to 新的字段名;

alter table emp_bonus rename  column enpno to empno;

select * from emp_bonus;

insert into emp_bonus values(7369,'14-MAR-2005',1);

insert into emp_bonus values(7900,'14-MAR-2005',1);

insert into emp_bonus values(7788,'14-MAR-2005',1);

-- 将员工的奖励加入到系统当中

select

e.ename ,eb.received ,d.loc

from

emp e,emp_bonus eb,dept d

where

e.empno=eb.empno

and

d.deptno=e.deptno;

-- 查到的不是我们想要的结果

-- 应该现实全部类容 左外连接

select e.ename,eb.received,d.loc

from

emp e,emp_bonus eb,dept d

where

e.deptno=d.deptno

and e.empno=eb.empno(+);

-- 使用标量子查询  把第二列已经查出来

select

e.ename ,d.loc,(select eb.received  from emp_bonus eb where eb.empno=e.empno)as received

from

emp e , dept d

where e.deptno=d.deptno;

-- 高级查询   去除重复行

select  ename  from

(select row_number() over(order by ename)rn,ename

from  emp

)

where mod(rn,2)=1;

-- 创建序列

create sequence panhe;

-- 查找序列

select panhe.nextval panhe;

select panhe.currval panhe;

-- 序列支持并发

-- 主要用于主键生成策略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值