网站首页 > 技术文章 正文
6、查询排序(重点)
对查询的数据进行排序可以使用order by子句,order by子句永远是写在最后一行,是在select子句之后执行。
使用order by两种排序模式:
ASC:升序,默认的方式
DESC:降序,必须由用户设置
范例:工资由高到低排序
select * from emp order by sal desc;
范例:工资由高到低排序,雇佣日期由低到高
select * from emp order by sal desc,hiredate asc;
范例:按年薪排序,因为order by 是在select之后执行
select empno,ename,sal*12 income from emp order by income;
范例:所有办事员的信息,工资又高到低排序
select empno,ename,sal from emp where job='CLERK' order by sal desc;
课时8、单行函数(重点、背)
虽然各个数据库都是支持SQL语句的,但是每一个数据库也有每一个数据库自己所支持的操作函数,这些就是单行函数,而如果要想进行数据库开发的话,除了要会使用SQL之外 ,就是要多学习函数。(数据格式化)
单行函数主要分为以下五类:字符函数、数字函数、日期函数、转换函数、通用函数;
Oracle之中有一点比较麻烦,即使要验证字符串,也必须编写完整的SQL语句,所以在Oracle数据库之中为了用户查询方便,所以专门提供了一个“dual”的虚拟表。
UPPER(字符串 | 列):将输入的字符串变为大写返回;
范例:观察转大写的函数
SELECT UPPER('hello') FROM dual;
范例:如何实现用户的数据输入
Select * from &tablename ; ? 要查询的数据表名称由用户输入
大写转换的用处:在一般的使用之中,用户输入数据的时候去关心数据本身存放的是大写还小写吗?
范例:输入一个雇员的姓名查询出雇员的详细信息
SELECT * FROM emp WHERE ename='&str';
输出:
SQL> select * from emp where ename='&str';
输入 str 的值: SMITH
原值 1: select * from emp where ename='&str'
新值 1: select * from emp where ename='SMITH'
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- ---------- ---------- ---------- ----
7369 SMITH CLERK 7902 17-12月-80 800
此时如果输入的是小写,则肯定无法查询出数据,所以这个时候不能要求用户这么多,所以这个时候只能由程序自己去适应,加入一个函数(有些网站的用户名不区分大小写,而这样的功能都是在数据保存的时候将保存的数据变为统一的大写或小写):
范例:输入的数据一律转换为大写
SELECT * FROM emp WHERE ename=UPPER('&str');
当然以上的“&”的操作属于替代变量的内容,此部分内容不做重点。
LOWER(字符串 | 列):将输入的字符串变为小写返回;
范例:观察转小写的操作,将所有的雇员姓名按照小写字母返回
SELECT LOWER(ename) FROM emp;
INITCAP(列名|表达式):该函数用于把每个字的头一个字符转换成大写,其余转换成小写。
范例:将每一个雇员姓名的开头首字母大写
SQL> select initcap(ename) from emp;
INITCAP(EN
----------
Smith
LENGTH(列名|表达式):该函数用于返回列或表达式中字符串的长度。
范例:查询出每个雇员姓名以及姓名的长度
SQL> SELECT ename,LENGTH(ename) FROM emp;
ENAME LENGTH(ENAME)
---------- -------------
SMITH 5
范例:要求查询出姓名长度正好是5的雇员信息
SQL> SELECT ename,LENGTH(ename) FROM emp
2 WHERE LENGTH(ename)=5;
ENAME LENGTH(ENAME)
---------- -------------
SMITH 5
ALLEN 5
REPLACE(正文表达式,要搜寻的字符串,替换字符串):该函数用于在“正文表达式”中查找“要搜寻的字符串”,如果找到了就用“替换字符串”替代。
范例:使用字母“_”替换掉姓名中的所有字母“A”
SQL> SELECT REPLACE(ename,'A','_') FROM emp;
REPLACE(EN
----------
SMITH
_LLEN
W_RD
SUBSTR(字符串 | 列,开始点 [,结束点]):字符串截取;
范例:由指定位置截取到结尾
SQL> select substr('hello world',7) from dual;
SUBST
-----
world
范例:表示从开始点截取到结束点,截取部分内容
SQL> SELECT ename,SUBSTR(ename,0,3) FROM emp;
ENAME SUBSTR
---------- ------
SMITH SMI
SQL> SELECT ename,SUBSTR(ename,1,3) FROM emp;
ENAME SUBSTR
---------- ------
SMITH SMI
面试题:请问SUBSTR()函数截取的时候下标从0还是从1开始?
在Oracle数据库之中,SUBSTR()函数从0或1开始都是一样的;
SUBSTR()也可以设置为负数,表示由后指定截取的开始点;
猜你喜欢
- 2024-11-08 学习Oracle和MySQL推荐的几本书 学mysql好还是oracle好
- 2024-11-08 oracle学习之——Oracle数据库SQL优化
- 2024-11-08 Oracle EMCC13C学习-产品介绍(1) mvcc oracle
- 2024-11-08 oracle学习笔记8——序列 oracle的序列啥作用
- 2024-11-08 数据库自学捷径-MySQL、MSSQL或Oracle随你喜欢
- 2024-11-08 oracle数据库学习历程1 oracle数据库从入门到精通
- 2024-11-08 SQL难学吗,有什么好的学习建议? sql 难度
你 发表评论:
欢迎- 09-0613.通过Excel导出数据库中的维值_数据库exp导入导出数据
- 09-06做数据分析时,SQL需要达到以下水平
- 09-06Java开发指南:JDK21下载、安装及目录解析,轻松开启编程之旅
- 09-06hive存储过程_hive存储过程环境变量
- 09-06Maven常用命令_maven常用命令有哪些
- 09-06JDK从8升级到21的问题集_jdk更新到几了
- 09-06Oracle狂刷存在感 NRF展会惊艳四座
- 09-06哪些软件支持UDI标签的生成与验证
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)