当前位置:数据库 > Oracle >>

Oracle经典sql语句总结@sql-plus重点函数串讲与sql语句案例@中文排序详讲)

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;
 
//查询员工信息  把员工名称中含有S字符去除掉
 
SQL> select empno,TRIM('S' from ename),job,mgr,hiredate,comm,deptno from emp;
 
等效于:
 
SQL> select empno,TRIM( both 'S' from ename),job,mgr,hiredate,comm,deptno from emp;
 
//查询员工信息  把员工名称中前面有S字符去除掉
 
SQL> select empno,TRIM( Leading 'S' from ename),job,mgr,hiredate,comm,deptno from emp;
 
//等效于
 
SQL> select empno,LTRIM( ename,'S'),job,mgr,hiredate,comm,deptno from emp;
 
//查询员工信息  把员工名称中后面有S字符去除掉
 
SQL> select empno,TRIM( trailing 'S' from ename),job,mgr,hiredate,comm,deptno from emp;
 
等效于:
 
SQL> select empno,RTRIM( ename,'S'),job,mgr,hiredate,comm,deptno from emp;
 
1、字符串连接  || 或  concat(‘’,’’)
 
SQL> select 'a' || 'b' from dual;    //oracle 特有的符号操作
 
'A'||'B'
 
--------
 
ab
 
SQL> select concat('a','b') from dual;
 
CONCAT('A','B')
 
---------------
 
ab
 
SQL> select concat(concat('a','b'),'c') from dual;
 
CONCAT(CONCAT('A','B'),'C')
 
---------------------------
 
Abc
 
子串函数 substr(‘’,开始位置,字符长度)  instr(‘’,’出现的字符’)
 
SQL> select substr('abcdef',1) from dual;
 
SUBSTR('ABCDEF',1)
 
------------------
 
abcdef
 
备注:开始位置从1开始,如果有两个参数(substr(‘’,2))那么代表的意思是从位置2开始到字符串的结尾的字符串
 
&
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,