Oracle经典sql语句总结@sql-plus重点函数串讲与sql语句案例@中文排序详讲)
1.经典的select sql语句
//注意:包含空值的数学表达式求出的结果为空值
SQL> select sal+comm from emp;
//连接员工编号与员工姓名这两个字段
SQL> select empno||ename as "员工编号和员工姓名" from emp;
//查询去掉重复行的员工部门编号
SQL> select distinct(deptno) from emp;
//查询薪水不等于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal<>3000;
或
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal !=3000;
//查询薪水大于等于1600并且小于等于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal between 1600 and 3000;
等效于
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=1600 and sal<=3000;
//查询部门号位10,20的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno in(10,20);
相当于:
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno =10 or deptno=20;
//查询员工名称以S开头的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like 'S%';
//查询员工名称以S结尾的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%S';
//查询员工名称第三个字符为N的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '__N%';
//查询员工名称中含有N的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%N%';
//查询员工名称中倒数第二个字符为%的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%_'escape'\';
//查询员工名称总含有%的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%%'escape'\';
备注:可以与条件语句结合使用但order by子句放在最后
//查询员工信息并按照员工的部门编号升序并且编号进行降序排列
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp order by deptno asc,empno desc;
备注:理解思路:首先查询员工信息按照部门的编号进行升序,然后每个部门中的员工按照员工的编号进行降序排列
2. 字符串函数
字符串函数是oracle使用最广泛的一种函数.
LOWER:小写
UPPER:大写
INITCAP:首字母大写
CONCAT:连接
SUBSTR:截取 (参数,开始,数目)
LENGTH:返回字符串的长度
INSTR:(参数,字母) 返回字母出现的位置
LPAD:(参数,长度,在前补齐参数字母)
RPAD:(参数,长度,在后补齐参数字母)
TRIM :截取前后空格
REPLACE:(参数,参数[,参数]):第一个参数操作数,第二是要查找的字符,第三个是替换的字符,如果没有第三个就删除查找的字符。
//查询名称为scott的员工信息(不区分大小写)
//查询员工名称中含有O字符的位置
3.经典字符串函数sql语句
//查询员工名称中含有O字符的位置并且求出了员工名称字符长度
SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp;
//在查询上面结果中过滤出员工工作从第三字母开始为ERK员工
SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp where substr(job,3)='ERK';
//当含有两个参数的时候,从开始位置直接到参数结束的结束为止;在效果同上的同时指明了截取个数为3
SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp where substr(job,3,3)='ERK';
//查询员工信息 薪资是10位位数不够在左部分补*填充
SQL> select empno,ename,job,mgr,hiredate,LPAD(sal,10,'*'),comm,deptno from emp;
//查询员工信息 薪资是10位位数不够在右部分补*填充
SQL> select empno,ename,job,mgr,hiredate,RPAD(sal,10,'*'),comm,deptno from emp;