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 

 

 

 --rank

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

 

 

 -- dense rank

 

 

 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

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

posted @ 2020-06-09 14:04  丿狂奔的蜗牛  阅读(208)  评论(0编辑  收藏  举报