好久没写博客了,不是工作太忙而是自己太懒惰。。。最近深刻反思了一下自我。决定下面要有规律的生活,工作,学习。
入职新公司快两个月了,在第一个月末的时候误打误撞地填了转正申请,也就提前转正了,公司同事都很热情,部门经理比较‘可爱’,技术大牛。
公司主要做税务稽查软件,涉及到的查询比较多,因此最近抽出时间好好回顾了一下sql的查询语句。在这里简单做一下笔记吧:
这里主要是依托scott用户自带表做练习
- distinct
去掉查询结果中重复的部门编号
select distinct deptno from emp
去掉deptno,job二者组合的重复
select distinct deptno,job from emp;
- where
查询部门编号等于10的员工信息;
select * from emp where deptno = 10;
查询部门编号不等于10的员工信息
select * from emp where deptno <> 10;
查询员工姓名等于SCOTT的员工信息
select * from emp where ename = 'SCOTT'
查询员工薪水在800到1500之间的员工信息
select ename,sal from emp where sal between 800 and 1000
对查询结果中的空值进行处理
select ename,sal,comm from emp where comm is not null
查询员工姓名不在范围之内的
select ename,sal from emp where ename not in ('SMITH','SCOTT');
查询第二个字母为A的员工信息_表示一个字母
select ename,sal from emp where ename like '_A%'
- order by
desc表示降序asc表示升序
select * from dept order by deptno desc
组合降序升序
`select ename,sal,deptno from emp order by deptno asc,ename desc;
- sql function
查询emp表中名字第二个字母不为A且月薪大于800的员工姓名及其年薪并按照月薪降序排列
select ename,sal * 12 annual_sal from emp
where ename not like '_A%' and sal > 800
order by sal desc
获取所有员工姓名的小写第二个字母为a
select ename from emp where lower(ename) like '_a%'
以下和上面的结果相同
select ename from emp where ename like '_a%' or ename like '_A%'
从第二个字符截取,一共截取三个字符
select substr(ename,2,3) from emp;
字节型转换为字符型A
select chr(65) from dual
字符型转换为字节型65
select ascii('a') from dual
保留一位小数23.7
select round(23.652,1) from dual
四舍五入整数20
select round(23.652,-1) from dual
设置数字美元结果格式
select to_char(sal,'$99_999_999') from emp
设置数字人民币结果格式
select to_char(sal,'L9999,999.999') from emp
设置日期格式,12h制
select to_char(hiredate,'YYYY-MM-DD HH:MI:SS') from emp;
设置日期格式,24h制
select to_char(hiredate,'YYYY-MM-DD HH24:MI:SS') from emp
设置空值为0
`select ename,sal*12+nvl(comm,0) from emp