专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Oracle学习笔记2 oracle教程全集

ins518 2024-11-08 13:10:13 技术文章 16 ℃ 0 评论

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()也可以设置为负数,表示由后指定截取的开始点;

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表