登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

PL/SQL循序渐进全面学习教程(1)_Net things Ruyan  

2009-05-11 12:09:29|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
PL/SQL循序渐进全面学习教程(1)
2009-03-27 10:49

课程一 PL/SQL 基本查询与排序

本课重点:

1、写SELECT语句进行数据库查询

2、进行数学运算

3、处理空值

4、使用别名ALIASES

5、连接列

6、在SQL PLUS中编辑缓冲,修改SQL SCRIPTS

7、ORDER BY进行排序输出。

8、使用WHERE 字段。

一、写SQL命令:

不区分大小写。

SQL语句用数字分行,在SQL PLUS中被称为缓冲区。

最后以;或 / 结束语句。

也可以用RUN来执行语句

二、举例

例1:

SQL> SELECT dept_id, last_name, manager_id FROM s_emp;

例2:

SQL> SELECT last_name, salary * 12, commission_pct FROM s_emp;

对于数值或日期型的字段,可以进行相应的四则运算,优先级与标准的高级语言相同。

SQL> SELECT last_name, salary, 12 * (salary + 100) FROM s_emp;

三、列的别名ALIASES:

计算的时候特别有用;

紧跟着列名,或在列名与别名之间加“AS”;

如果别名中含有SPACE,特殊字符,或大小写,要用双引号引起。

例:

SQL> SELECT last_name, salary, 12 * (salary + 100) "Annual Salary" FROM s_emp;

四、连接符号:||

连接不同的列或连接字符串

使结果成为一个有意义的短语:

SQL> SELECT first_name || ’ ’ || last_name || ’, ’|| title "Employees" FROM s_emp;

五、管理NULL值:

SQL> SELECT last_name, title, salary * NVL(commission_pct,0)/100 COMM FROM s_emp;

此函数使NULL转化为有意义的一个值,相当于替换NULL。

六、SQL PLUS的基本内容,请参考《SQL PLUS 简单实用精髓篇》

七、ORDER BY 操作:

与其他SQL92标准数据库相似,排序如:

SELECT expr FROM table [ORDER BY [ASC|DESC]];

从Oracle7 release 7.0.16开始,ORDER BY 可以用别名。

另:通过位置判断排序:

SQL> SELECT last_name, salary*12 FROM s_emp ORDER BY 2;

这样就避免了再写一次很长的表达式。

另:多列排序:

SQL> SELECT last name, dept_id, salary FROM s_emp ORDER BY dept_id, salary DESC;

八、限制选取行:

SELECT expr FROM table [WHERE condition(s)] [ORDER BY expr];

例1:

SQL> SELECT first_name, last_name, start_date FROM s_emp WHERE start_date BETWEEN ’09-may-91’ AND ’17-jun-91’;

例2:

SQL> SELECT last_name FROM s_emp WHERE last_name LIKE ’_a%’; //显示所有第二个字母为 a的last_name

例3:

如果有列为NULL

SQL> SELECT id, name, credit_rating FROM s_customer WHERE sales_rep_id IS NULL;

优先级:

Order Evaluated Operator

1 All comparison operators (=, <>, >, >=, <, <=, IN, LIKE, IS NULL, BETWEEN)

2 AND

3 OR

总结:我们今天主要学习了如何进行查询SELECT操作,具体的组合查询与子查询将在以后的课堂中学习,同时希望大家可以工作、学习中多多摸索,实践!

课程二 PL/SQL查询行函数

本课重点:

1、掌握各种在PL/SQL中可用的ROW函数

2、使用这些函数的基本概念

3、SELECT语句中使用函数

4、使用转换函数

注意:以下实例中标点均为英文半角

一、FUNCTION的作用:

进行数据计算,修改独立的数据,处理一组记录的输出,不同日期显示格式,进行数据类型转换

函数分为:单独函数(ROW)和分组函数

注意:可以嵌套、可以在SELECT, WHERE, 和 ORDER BY中出现。

语法:function_name (column|expression, [arg1, arg2,...])

二、字符型函数

1、LOWER 转小写

2、UPPER 转大写

3、INITCAP 首字母大写

4、CONCAT 连接字符,相当于 ||

5、SUBSTR SUBSTR(column|expression,m[,n])

6、LENGTH 返回字符串的长度

7、NVL 转换空值

其中,1、2经常用来排杂,也就是排除插入值的大小写混用的干扰,如:

SQL> SELECT first_name, last_name FROM s_emp WHERE UPPER(last_name) = ’PATEL’;

FIRST_NAME LAST_NAME

-------------------- --------------------

Vikram Patel

Radha Patel

三、数学运算函数

1、ROUND

四舍五入:

ROUND(45.923,2) = 45.92

ROUND(45.923,0) = 46

ROUND(45.923,-1) = 50

2、TRUNC

截取函数

TRUNC(45.923,2)= 45.92

TRUNC(45.923)= 45

TRUNC(45.923,-1)= 40

3、MOD 余除

MOD(1600,300)

实例:

SQL> SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM SYS.DUAL;

本课重点:

1、写SELECT语句进行数据库查询

2、进行数学运算

3、处理空值

4、使用别名ALIASES

5、连接列

6、在SQL PLUS中编辑缓冲,修改SQL SCRIPTS

7、ORDER BY进行排序输出。

8、使用WHERE 字段。

不区分大小写。

SQL语句用数字分行,在SQL PLUS中被称为缓冲区。

最后以;或 / 结束语句。

也可以用RUN来执行语句

例1:

SQL> SELECT dept_id, last_name, manager_id FROM s_emp;

例2:

SQL> SELECT last_name, salary * 12, commission_pct FROM s_emp;

对于数值或日期型的字段,可以进行相应的四则运算,优先级与标准的高级语言相同。

SQL> SELECT last_name, salary, 12 * (salary + 100) FROM s_emp;

计算的时候特别有用;

紧跟着列名,或在列名与别名之间加“AS”;

如果别名中含有SPACE,特殊字符,或大小写,要用双引号引起。

例:

SQL> SELECT last_name, salary, 12 * (salary + 100) "Annual Salary" FROM s_emp;

连接不同的列或连接字符串

使结果成为一个有意义的短语:

SQL> SELECT first_name || ’ ’ || last_name || ’, ’|| title "Employees" FROM s_emp;

SQL> SELECT last_name, title, salary * NVL(commission_pct,0)/100 COMM FROM s_emp;

此函数使NULL转化为有意义的一个值,相当于替换NULL。

六、SQL PLUS的基本内容,请参考《SQL PLUS 简单实用精髓篇》

与其他SQL92标准数据库相似,排序如:

SELECT expr FROM table [ORDER BY [ASC|DESC]];

从Oracle7 release 7.0.16开始,ORDER BY 可以用别名。

另:通过位置判断排序:

SQL> SELECT last_name, salary*12 FROM s_emp ORDER BY 2;

这样就避免了再写一次很长的表达式。

另:多列排序:

SQL> SELECT last name, dept_id, salary FROM s_emp ORDER BY dept_id, salary DESC;

SELECT expr FROM table [WHERE condition(s)] [ORDER BY expr];

例1:

SQL> SELECT first_name, last_name, start_date FROM s_emp WHERE start_date BETWEEN ’09-may-91’ AND ’17-jun-91’;

例2:

SQL> SELECT last_name FROM s_emp WHERE last_name LIKE ’_a%’; //显示所有第二个字母为 a的last_name

例3:

如果有列为NULL

SQL> SELECT id, name, credit_rating FROM s_customer WHERE sales_rep_id IS NULL;

优先级:

Order Evaluated Operator

1 All comparison operators (=, <>, >, >=, <, <=, IN, LIKE, IS NULL, BETWEEN)

2 AND

3 OR

总结:我们今天主要学习了如何进行查询SELECT操作,具体的组合查询与子查询将在以后的课堂中学习,同时希望大家可以工作、学习中多多摸索,实践!

本课重点:

1、掌握各种在PL/SQL中可用的ROW函数

2、使用这些函数的基本概念

3、SELECT语句中使用函数

4、使用转换函数

注意:以下实例中标点均为英文半角

进行数据计算,修改独立的数据,处理一组记录的输出,不同日期显示格式,进行数据类型转换

函数分为:单独函数(ROW)和分组函数

注意:可以嵌套、可以在SELECT, WHERE, 和 ORDER BY中出现。

语法:function_name (column|expression, [arg1, arg2,...])

1、LOWER 转小写

2、UPPER 转大写

3、INITCAP 首字母大写

4、CONCAT 连接字符,相当于 ||

5、SUBSTR SUBSTR(column|expression,m[,n])

6、LENGTH 返回字符串的长度

7、NVL 转换空值

其中,1、2经常用来排杂,也就是排除插入值的大小写混用的干扰,如:

SQL> SELECT first_name, last_name FROM s_emp WHERE UPPER(last_name) = ’PATEL’;

FIRST_NAME LAST_NAME

-------------------- --------------------

Vikram Patel

Radha Patel

1、ROUND

四舍五入:

ROUND(45.923,2) = 45.92

ROUND(45.923,0) = 46

ROUND(45.923,-1) = 50

2、TRUNC

截取函数

TRUNC(45.923,2)= 45.92

TRUNC(45.923)= 45

TRUNC(45.923,-1)= 40

3、MOD 余除

MOD(1600,300)

实例:

SQL> SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM SYS.DUAL;




©2009 Baidu



引文来源  PL/SQL循序渐进全面学习教程(1)_Net things Ruyan
  评论这张
 
阅读(352)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018