(三)、对查询结果排序 (ORDER BY 子句)
语法格式:
SELECT {DINTINCT} *|具体的列 别名 FROM 表名 {WHERE条件(S)}{ORDER BY 排序的字段1 ASC|DESC,排序的字段2 ASC|DESC}
1. 升序排序 (ASC 一般默认的就是升序,即不写排序类型时默认是升序)
例:查询出emp表的内容 并按薪水 升序排列
SELECT * FROM emp ORDER BY sal ;
SELECT * FROM emp ORDER BY sal ASC;
2. 降序排列 (在排序字段后加DESC)
例:查询出emp表的内容 并按薪水降序排列
SELECT * FROM emp ORDER BY sal DESC;
3. 多个排序排序条件 此时先按第一个条件排序 第一个条件的内容相等 在按第二个条件排序
例:查询出emp表的内容 先按薪水由高到低排序 如果薪水一样 则按雇佣日期 由早到晚排序
SELECT * FROM emp ORDER BY sal DESC,hiedate ASC;
(四)、单行函数
在数据库系统中,每个数据库之间唯一不同的最大区别就在于函数的支持上,使用函数可以完成一系列的操作
单行函数语法:
Function_name(column | expression,[arg1,arg2…..])
参数说明:
Function_name:函数名称
Column:数据库列名
Expression:字符串或计算表达式
arg1 arg2 :在函数中使用的参数
1、单行函数的分类:
|--- 字符函数 接受字符输入并返回字符或数值
|--- 数值函数 接受数值输入并返回数值
|--- 日期函数 对日期数据进行操作
|--- 转换函数 从一种数据类型转换为另一种数据类型
|--- 通用函数 NVL函数 DECODE函数
2、字符函数
专门处理字符的函数 字符的大小写变更 求出字符的长度
(1)、将小写变为大写 UPPER(‘’)
SELECT UPPER(‘smith’) FROM DUAL; àSMITH
(2)、将大写变小写 LOWER(‘’)
SELECT LOWER(‘SMITH’) FROM DUAL; àsmith
(3)、将单词的第一个字符大写 INITCAP(“”) 注:使用词语不论输入的字符是什么样的大小写格式 输出的均是首字符大写 其余小写的形式
SELECT INITCAP(‘SMITH’) FROM DUAL; àSmith
例:将雇员表中的雇员姓名变为首字母大写
SELET INITCAP(ename) FROM emp;
(4)、字符串除了可以使用 || 连接外 还可以使用CONCAT( ) 进行连接
SELECT CONCAT(‘Hello’,’World’) FROM DUAL; à使用CONCAT() 进行字符串连接
SELECT ‘HELLO’||’WORLD’ FROM DUAL; à使用 || 进行字符串的连接操作
但是可以看出 CONCAT()并没用 || 好用
(5)、字符串的长度LENGTH(‘xxxx’)
SELECT LENGTH(‘Hello’) FROM DUAL;
(6)、字符串的替换 REPLACE(‘xxx’,’被替换的内容’,’替换的内容’)
SELECT REPLACE(‘Hello’,’H’,’W’) FROM DUAL;
注:如果被替换的内容不在字符串中 SQL语句可以执行 但不会产生替换效果
SELECT REPLACE(‘Hello’,’a’,’r’);
Hello将不会变化
(7)、截取SUBSTR(‘Hello’,n,m) 表示从第n位开始截取 截取m位
例:SELECT SUBSTR(‘Hello’,1,3) 截取,LENGTH(‘Hello’) ;
注:关于SubStr()面试相关的问题
ORACLE中SUBSTR()的截取点是从0还是 1开始
|--从0 或 1 开始都是一样的 因为 oracle比较智能
★ 例:查询出所有雇员的姓名及姓名的后三个字符
SELECT ename,SUBSTR(ename,LENGTH(ename)-2) FROM emp;
注:如果从第n为开始截取 不写截取多少位 那么默认从第n位一致截取到最后
可以看出因为每个雇员姓名的长度不一样 所以需要求出姓名的长度在减去2,这样比较麻烦
★ 例:查询出所有雇员的姓名及姓名的倒数第二个字符
SELECT ename,SUBSTR(ename,-2,1) FROM emp;
为了方便的进行字符串的截取 oracle的substr()函数提供了更加方便的机制 可以采用倒着截取的方式,只有输入的位数是负数 就表示倒着截取
4、日期函数
Oracle提供了很多和日期操作有关的函数,包括加减日期 但日期进行加减结果会有一些规律
|-- 日期+/-数字 = 日期
|-- 日期