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';//当含有两个参数的时候,从开始位置直接到参数结束的结束为止;在效果同上的同时指明了截取个数为3SQL> 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'--------abSQL> select concat('a','b') from dual;CONCAT('A','B')---------------abSQL> 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中预制的用户启用
下一个:sqlplus命令的使用
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?