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 @   丿狂奔的蜗牛  阅读(213)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示