分享
 
 
 

PL/SQL学习笔记(三)

王朝mssql·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

子查询:

语法:

select col from table

where expr operator (select col from table);

子查询在主查询执行前执行一次。

子查询的结果被用于主查询。

使用规则:

在WHERE 和 HAVING 子句中都可以使用子查询。

*、子查询必须用括号扩起。

*、子查询应该在比较条件的右边。

*、在子查询中的ORDER BY 子句不需要,除非执行TOP-N分析。

TOP-N分析:(在一些表里求出最怎么怎么怎么样(最好、做多...)的几个人)。

*、对单行子查询使用单行比较操作符,多行子查询使用多行比较操作符。

可以在子查询中使用组函数。

子查询的分类:

单行单列子查询

单行操作符:>,<,=,>=,<=,<>

一定返回一行

多行单列子查询

单行多列子查询

返回零行或多行

多行操作符:

in 等于列表中的任何值。(不能用NOT IN)

ANY 与子查询返回的每个值进行比较。(小于是小于最大的,大于是大于最小的)

select employee_id,last_name,job_id,salary from smployees

where

salary < any(select salary from employees where job_id='IT_PROG')

and job_id <> 'IT_PROG';

ALL(小于是小于最小的,大于是大于最大的)

select e.employee_id,e.last_name,e.salary

from employees e,

(select department_id,min(salary) m from employees

group by department_id )d

where e.department_id=d.department_id

and

e.salary=d.m;

查询每个部门薪水最少的员工的资料。

多行多列子查询

替换变量:

临时存储值:

& (生命周期):单次引用中,不需要声明。如果替换字符或日期类型,最好用单引号扩起。

使用范围:

where

order by

列表达式

表名

整个SELECT 语句中。

&& (生命周期):整个会话(session连接),不需要声明。

define(生命周期):整个会话,预先声明,使用时用&引用声明的变量。

define column_name(变量名) 查看变量命令。

undefine 变量名 清除变量

define variable=用户创建的CHAR类型的值:define 变量名=值;

accept(生命周期):整个会话,预先声明,可以客户化提示信息,使用时用&引用声明的变量。

定义:accept 变量名 number/char/date prompt '提示信息内容'

ACC[EPT] variable [NUM[BER] | CHAR | DATE] [FOR[MAT] format]

[DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE]

例:accept a char prompt '请输入员工的雇佣时间(yyyy-mm-dd):'

hide

例:accept a char prompt 'input a:' hide

set verify(环境变量) off;关闭调试命令(关掉替换过程)

set verify(环境变量) on;打开调试命令(可以看到替换过程)

环境变量:

ECHO 显示回显

HEADING {OFF/ON}是否显示列标题;

ARRAYSIZE{20/n}每一次从查询得到的返回量的大小。

FEEDBACK{OFF/ON}回馈,反馈信息。

LONG{80/n}on/text} LONG类型

LINESIZE 行的宽度。

SET LINESIZE n(最好是在200之内)

PAGESIZE :设置页的大小。SET PAGESIZE N

wrap{off/on} 折行

SET 修改

SHOW 显示

格式化命令:

COLUMN[column option]可以设置字段或字段别名的格式。

COLUMN last_name HEADING employee|name '|'代表换行。

col 字段名 查看命令

CLE[AR]:清除列的格式

HEA[DING] TEXT:设置列标题

FOR[MAT] FORMAT:格式化显示列的值,对字符和数字有效,对日期无效。

column salary justify left format $999,999.00 justify left:左对齐。

col manager_id format 999999999

限制字符串的长度有A+数字限制

限制数字的长度有9,有几为9就限制成几位。

NOPRINT/PRINT NOPRINT:把一个字段从输出上屏蔽掉(返回但不显示)。

col 字段名 noprint/print.

NULL如果有NULL值,显示什么。

col name null 'on employee'

TTITLE[text/off/on]设置报表的表头

BTITLE[text/off/on]设置报表的表尾

做报表的时候要先想好PAGESIZE的大小。

BREAK ON [REPORT_ELEMENT]

压制重复值的显示。只能跟一个字段名才有效。

例:

select department_id,last_name

from employees

where rownum<30

order by 1,2;

break on department_id

otn.oracle.com/cn

www.oracle.com/cn

www.itpub.net入门与认证版 ora-600

www.oracle.com.cn

www.cnoug.org ora-600

做脚本文件的过程:

变量定义accept

环境变量设置SET

格式控制命令

SPOOL

使用变量的SQL

SPOOL OFF

清除格式控制

重置环境变量

释放变量

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有