oracle数据库查询2

1.连接操作符

select 姓名为|| ename||工作为||job||工资为|| sal as info from emp

2.将字符串转为小写

select lower(ename)as name from emp

3.逐值替换

select decode(deptno,10,开发部,20,产品部,30,维护部)from emp

4.当前系统日期的年份

select extract(year from sysdate) from dual

5.查询每个员工的工龄

select extract(year from sysdate) - extract(year from hiredate)  as age from emp

6.转换函数

select to_char(0.123,$0.9999)from dual

7.将日期对象转成字符串

SELECT TO_CHAR(sysdate,YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS)FROM dual;

8.查询员工工资和(工资+奖金)

select ename,sal+nvl(comm,0) from emp
select ename,sal+nvl2(comm,comm,0) from emp

9.如果二个值不一样则结果为第一个值,如果两个值一样则结果为null

select nullif(200,200) from dual

10.分析函数(看后面num‘值)

-- row_number()连续排位

select emp.*, row_number() over(order by sal desc ) as num from emp 

oracle数据库查询2

 

 

 --rank

select emp.*, rank() over(order by sal desc ) as num from emp 

oracle数据库查询2

 

 

 -- dense rank

oracle数据库查询2

 

 

 11.创建一个用户

CREATE  USER  test  IDENTIFIED  BY  test;
GRANT  CONNECT , CREATE  SYNONYM TO test;
GRANT  SELECT   ON   SCOTT.EMP  TO test;
GRANT  DELETE  ON   SCOTT.EMP TO test;
GRANT  UPDATE  ON  SCOTT.EMP TO test;

12.创建同义词

CREATE  SYNONYM   e   FOR  SCOTT.emp;
select * from e

13.创建公有同义词

CREATE   PUBLIC   SYNONYM  pub_emp FOR  SCOTT.emp;
select * from  pub_emp 

14.创建序列

CREATE  sequence mysql
start with 1
increment by 1

create  table student(
        sid int primary key,
        sname varchar(20)
) 

insert into student values(mysql.nextval,张三)
select mysql.currval from dual
select * from student

15.授权

grant create view to scott

16.创建视图

create  view dept_emp 
as 
select dept.deptno,dname,loc,empno,ename,job,mgr,hiredate from emp join dept on emp.deptno=dept.deptno

欢迎各位大神指点和评论;

oracle数据库查询2

上一篇:数据库系统概论习题集 第九章 数据库安全性


下一篇:MySQL下载与安装