网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > PL/SQL > PL/SQL学习笔记(一)  

PL/SQL学习笔记(一)

2006-02-09  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏

基本概念:
                                                       
数据库对象:                                         
                                                          
表                                                    网管下载dl.bitscn.com
                                                      
约束条件:保证数据完整性。                            
                                                   
视图:虚表,命名的查询语句。                        
                                                      网管论坛bbs_bitsCN_com
索引:加速查询(加快查询的速度)。                 
                                                    
序列:一串连续递增或递减的数字,步长相同,(代理键)。
                                                                                                    网管网www_bitscn_com
同义词:一个对象的另外一个叫法(对象的别名)。                                                                                                
                                                                                              中国网管论坛bbs.bitsCN.com
存储过程:用于操作 网管网www.bitscn.com

函数:用作复杂运算的。用于计算。                                                                                         
                                                                                                网管网www_bitscn_com
触发器:由事件触发的存储过程。                                                                                         

网管下载dl.bitscn.com

包: 网管论坛bbs_bitsCN_com


数据库安全:

网管朋友网www_bitscn_net

1、用户 网管网www_bitscn_com

2、方案或模式(Schema):是用户所对应的对象的集合。用户名等于方案名 网管论坛bbs_bitsCN_com

3、权限 网管u家bitscn.net

4、角色:权限组,一组权限。
                                                      
5、配额(quota):允许被使用的空间。用户可以在表空间上可以使用的空间。                                            
                                               
端口:2030 网管网www.bitscn.com


环境变量 网管u家bitscn.net

-ORACLE_BASE基本目录

网管有家www.bitscn.net

-ORACLE_NAME 当前的主目录

网管u家www.bitscn.net

-ORACLE_NLS33
使用US7ASCLL字符集时不用设

网管u家www.bitscn.net


-PATH 路径

网管联盟bitsCN_com


//////////////////////////////////////////////////////////////////////////////////////////////////////////// 网管网www.bitscn.com

基本的SQL SELECT 语句 网管论坛bbs_bitsCN_com

口令中的第一个字符不能为数字。

网管u家u.bitscn@com

语句:

网管u家u.bitscn@com

(一)查询:SELECT
数据操作语句:DML(数据的插入INSERT、删除DELETE、修改UPDATE、合并MERGE)

网管网www.bitscn.com

(二)合并:把一个表中的数据合并到另一个表中去,如果数据在原表中存在做UPDATE,否则INSERT(9I独有)。 网管有家bitscn.net

(三)事务控制语句:COMMIT 提交、ROLLBACK 回滚、

网管u家bitscn.net

SAVEPOINT 存储点(与 ROLLBACK 搭配使用)在回滚的时候可以回滚到某个存储点上。否则回滚到最初起点上。

网管论坛bbs_bitsCN_com

(四)数据定义语句:对对象操作。TRUNCATE 清除表中所有数据 /CREATE 创建 /DROP 删除 /ALTER 修改 

网管下载dl.bitscn.com

(五)权限控制语句(DCL):GRANT 授予权限 /REVOKE 移除权限

网管联盟bitsCN@com

  网管下载dl.bitscn.com


SELECT:

网管u家u.bitscn@com

SELECT 查询列表 FROM 数据源;

中国网管联盟bitsCN.com

*&* SQL命令必须加分号。

网管有家www.bitscn.net

ALTER USER HR IDENTIFIED BY HR ACCOUNT UNLOCK;
修改用户   解锁
给HR解锁

网管bitscn_com

CONNECT(conn) HR/HR(密码) 用HR用户连接数据库。 
*&*(不是SQL命令 是 SQLPLUS 命令)不用加分号

网管有家bitscn.net

 

网管下载dl.bitscn.com

DESCRIBE(desc) DEPARTMENTS
关键字  表名 网管联盟bitsCN_com

描述表命令(SQLPLUS 命令)

网管u家u.bitscn@com


SQL语句说明: 网管有家www.bitscn.net

(1)语句文本的书写不区分大小写。(但字符串在作为值的时候要注意大小写)
(2)语句可以写单行也可以写多行。
(3)关键字不能缩写或跨行。
(4)语句通常被分多行书写。
(5)缩进被用于提高语句的可读性。 网管u家u.bitscn@com

 

网管联盟bitsCN@com

数字和日期都可以使用数学运算符建立表达式。
+,-,*,/ <>不等于 网管朋友网www_bitscn_net

日期可以加减数字,数字默认为天。

网管u家www.bitscn.net

日期不能加日期,但日期可以减日期。 中国网管论坛bbs.bitsCN.com

字符不能加减。 网管有家www.bitscn.net

 

网管有家bitscn.net

定义空(NULL)值

网管u家u.bitsCN.com

空值出现在表达式中会导致整个表达式的值为空。 网管u家u.bitscn@com

NVL(字段名,将要赋予的值)函数
作用:将空值转换成其他有ASCLL码的值。

网管u家u.bitscn@com

annual_salary年薪

网管网www_bitscn_com


别名

网管u家u.bitscn@com

可以加中文的字段别名。 网管联盟bitsCN_com

如果想强制地改变列名的大小写,可以在别名的定义时加上双引号,列名有空格时也要在列名上加双引号。
例:
select lastname as "employees name" from employees; 网管论坛bbs_bitsCN_com

spool +路径;
保存命令(将显示保存) 网管u家u.bitsCN.com

  网管u家u.bitsCN.com

 

网管u家u.bitsCN.com

连接操作符:
 
 || 网管网www_bitscn_com

select lastname || 'work in' || department_id from tablename;

网管u家bitscn.net

select last_name || '''s salary is ' || salary 员工月薪 from employees;
     ~~~ 
     在单引号中还要使用单引号的话,就必须使用两个单引号来实现一个单引号的功能。  网管u家u.bitsCN.com


文本字符串: 网管有家www.bitscn.net

*可以代表字符、数字或是日期。
*当代表字符或日期的时候用单引号括起来,数字不需要。 网管有家bitscn.net

  网管有家bitscn.net

 

中国网管联盟bitsCN.com

在查询时默认显示所有的行,包括有重复值的行。

网管联盟bitsCN_com

DISTINCT 消除重复行关键字,放在整查询列表的最前面。 网管下载dl.bitscn.com

作用范围:整个查询列表的组合。 网管bitscn_com

消除重复行后会按字段的特性,做升序排列。(执行过程:先排序,再消除重复) 网管u家bitscn.net

select distinct department_id,job_id from employees;

网管联盟bitsCN_com

  网管u家u.bitscn@com

SQLPLUS 与 SQL 的关系 网管bitscn_com

SQL     *是一种语言
 *ANSI标准
 *关键字不能缩写
 *用于操作数据库中的数据和表的定义
  
SQLPLUS命令的功能: 网管bitscn_com

*描述表的结构
*编辑SQL语句 网管联盟bitsCN_com

查询 SQLPLUS 命令 网管联盟bitsCN@com

help + 命令 网管联盟bitsCN_com

SQLPLUSW 在 WINDOWS 下运行的分析器。
 

网管网www.bitscn.com

登陆ISQLPLUS 中国网管论坛bbs.bitsCN.com

(1)先到服务中启动OracleOraHome92HTTPServer 中国网管论坛bbs.bitsCN.com

(2)在浏览器中输入:http://wnj:7778/isqlplus
       ~~~~~~~~~~~~~~~ 
       URL(网页中的地址)
      
 

网管朋友网www_bitscn_net


SQLPLUS 命令: 网管u家www.bitscn.net

与文件相关的命令:
  spool + 路径
 .
 .
 .
 .
   spool off 网管联盟bitsCN_com

save
把当前内存中的语句保存为文本文件。 网管u家www.bitscn.net

run 或  /
运行当前内存中的语句

网管有家bitscn.net

clear buffer(cl buff)
清空当前内存中的语句

中国网管联盟bitsCN.com

start @
读取并执行

网管论坛bbs_bitsCN_com

get
读取不执行 网管下载dl.bitscn.com

  网管联盟bitsCN_com

编辑命令:

中国网管联盟bitsCN.com

list
列出一条语句
*表示当前行 中国网管论坛bbs.bitsCN.com

change
修改命令
原来c/jj/kk
c/jjj/xxx 网管u家u.bitscn@com

input
在当前行之后插入一行新的数据 网管u家u.bitscn@com


append
在当前行中插入新的东西

网管bitscn_com

n
写数字显示对应行 网管联盟bitsCN@com


delete
del + 回车 删除当前行
del 1 3 删除第一到第三行

网管u家bitscn.net

edit 中国网管论坛bbs.bitsCN.com

l,c,i,a,n,d,e

网管网www_bitscn_com

 

网管论坛bbs_bitsCN_com

查看当前用户

网管联盟bitsCN_com

SHOW USER 中国网管联盟bitsCN.com

默认的日期格式
DD-MON-RR
日-月-年

网管下载dl.bitscn.com

日期可以进行比较;

网管朋友网www_bitscn_net

字符可以进行比较(以字母的ASCLL码比较); 网管网www_bitscn_com

IN(set)或NOT IN 匹配任何列表中的值; 网管联盟bitsCN_com

LIKE 模糊匹配字符串值; 网管bitscn_com

IS NULL 是否空值;
IS NOT NULL 是否不为空; 网管联盟bitsCN_com

BETWEEN 可以做数字、日期和字符的比较。

网管朋友网www_bitscn_net

 

网管下载dl.bitscn.com

通配符

网管u家bitscn.net

%
S_mith

网管网www.bitscn.com

WHERE first_name like 's/_%'escape'/';
    解释这个符号后的下划线为正常的字符。
    如果不加,将被视为通配符作用的下划线。 网管下载dl.bitscn.com

'_'只能通配一个字符
主要用于通配固定位数的字符。例如查询月收入五位数以上的员工。五位就可以用'_'来查询。

网管联盟bitsCN@com

 

网管有家www.bitscn.net

逻辑操作符(用在WHERE子句中)

网管联盟bitsCN@com

AND 网管下载dl.bitscn.com

OR 网管有家bitscn.net

NOT

网管有家bitscn.net

先执行 NOT ,再执行 AND 最后执行 OR。 网管u家u.bitsCN.com

  网管联盟bitsCN_com

ORDER BY 网管下载dl.bitscn.com

ORDER BY子句在 SELECT 语句的最后。  网管bitscn_com

ASC:升序
DESC:降序 网管u家u.bitscn@com

空值作为无穷大来处理。 网管u家u.bitsCN.com

rownum 显示行数量约束的关键字(在结果中可以做代理键使用);

网管u家u.bitscn@com

可以按照查询列表中序号进行排序。 网管联盟bitsCN_com

系统在用户写出查询列表的同时就赋予每个列名一个序号,升序赋予。
例:
SELECT name,phone,adress from.........;
          1      2          3

中国网管联盟bitsCN.com

  网管bitscn_com


单行函数:对单行数据进行计算并返回一个值的函数。

网管联盟bitsCN@com

*修改数据项
*接受参数返回一个值。
*对每行进行操作。
*每行返回一个结果。
*可以修改数据类型
*可以嵌套 网管网www_bitscn_com

character字符类型函数:

网管有家www.bitscn.net

LOWER()强制小写

网管朋友网www_bitscn_net

UPPER()强制大写 网管u家bitscn.net

INITCAP()每个单词首字母大写 网管u家www.bitscn.net

可以用在WHERE子句中。

网管论坛bbs_bitsCN_com

CONCAT(‘’,‘’)连接函数
    {
 SUBSTR(string,a[,b])返回string的一部分,a和b以字符为单位。 网管论坛bbs_bitsCN_com

 SUBSTRB(string,a[,b])返回string的一部分,a和b是以字节为单位。 网管网www_bitscn_com

 SUBSTRC(string,a[,b])返回string的一部分,a和b是以UNICODE完全字符为单位。

网管下载dl.bitscn.com

 SUBSTR2(string,a[,b])返回string的一部分,a和b是以UCS2代码点为单位。

中国网管论坛bbs.bitsCN.com

 SUBSTR4(string,a[,b])返回string的一部分,a和b是以UCS4代码点为单位。

网管联盟bitsCN@com

    以上函数都是返回string的一部分,从字符位置A开始,长为B个字符。如果A是0,那它就被认为是1(字符串的开始位置)。如果A是正数,那么字符从左边开始数。如果是负数,则从STRING的末尾开始,从右边数。如果B不存在,那么缺省是整个字符串。如果B小于1,将返回NULL。如果A或B使用了浮点数,那么该数值首先被节取成一个整数,返回类型与STRING相同。
    } 网管u家u.bitsCN.com

 

网管网www.bitscn.com

{
 LENGTH(string)
 LENGTHB(string)
 LENGTHC(string)
 LENGTH2(string)
 LENGTH4(string)
以上函数返回string的长度。因为CHAR类型的值是填充空格的,所以如果string是CHAR数据类型,那么末尾的空格算在长度之内。如果string是NULL,函数返回NULL。
}

网管u家www.bitscn.net

 

网管网www.bitscn.com

{
 INSTR(string1,string2[,a][,b])   返回string1中包含string2的位置。a和b以字符为单位。
 
 INSTRB(string1,string2[,a][,b]) 返回string1中包含string2的位置。a和b是以字节为单位。  中国网管联盟bitsCN.com

 INSTRC(string1,string2[,a][,b])返回string1中包含string2的位置。a和b是以UNICODE完全字符为单位。

网管u家bitscn.net

 INSTR2(string1,string2[,a][,b]) 返回string1中包含string2的位置。a和b是以UCS2代码点为单位

网管朋友网www_bitscn_net

 INSTR4(string1,string2[,a][,b]) 返回string1中包含string2的位置a和b是以UCS4代码点为单位。
以上函数返回string1中包含string2的位置。从左边开始扫描string1,起始位置是A。如果A为负数那么从右边开始扫描。第B次出现的位置将被返回。A和B缺省都为1,即返回在string1中第一次出现string2的位置。如果string2在A和B的规定下没有找到那么就返回0。位置的计算是相对于string1的开始位置的,而不关A和B的取值。
}

网管u家u.bitscn@com

 

网管有家bitscn.net


LPAD(列名,数字,‘要补上的字符’)左补位 网管网www.bitscn.com

RPAD(列名,数字,‘要补上的字符’)右补位

网管bitscn_com

TRIM(‘child_str’ FROM ‘parents_str’)将连续子串(只能有一个字符)从主串的两边截取出来,区分大小写。
默认为截取空格。

网管下载dl.bitscn.com

LTRIM()左截取 网管联盟bitsCN@com

RTRIM()右截取 网管u家u.bitscn@com

ascii(x)函数,返回'X'字符的十进制数,即X的ASCII码值。 网管u家www.bitscn.net

chr(x)函数,返回ASCII码为X的字符。

网管有家www.bitscn.net

length(x)函数,求串X的长度,与之相似的是lengthb(x)函数,用在多字节字符中。 中国网管论坛bbs.bitsCN.com

replace(x,y[,z])函数,返回值为将串X中的Y串用Z串替换后的结果字符串。若省略Z参数,则将串X中为Y串的地方删除。 中国网管联盟bitsCN.com

soundex(x)函数,返回串X的语音描述,这个描述由4个字符组成,说明串X的声音表示形式发音,有时在只知道一个名字的发音而不知道拼写情况下或许能用到。
例:select soundex('smith') from dual; 返回值为:S530.
 
translate(x,y,z)函数,返回将X串中每个字符按它在Y串中出现的位置翻译成Z串中相应位置的字符后的结果,相当与替换。
例:select translate('this is an example','my is','@#$%^&') from dual;

网管论坛bbs_bitsCN_com


NLS函数
除了NCHR,这些函数都是以字符类型为参数返回字符类型值。 网管联盟bitsCN@com

CONVERT(string,dest_charset[,source_charset]) 网管bitscn_com

将输入string转换为指定字符集dest_charset。source_charset是输入值的字符集——如果它没有被指定,则缺省为数据库字符集。输入值可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB和NCLOB类型。返回值为
VARCHAR2类型。如果dest_charset中没有输入字符串中的一个字符,将会使用一个代替字符(由dest_charset定义) 网管网www.bitscn.com

NCHR(X)

网管网www_bitscn_com

返回数据库国家字符集中值为X的字符。NCHR(X) 等价于CHR(x USING NCHAR_CS). 中国网管联盟bitsCN.com

NLS_CHARSET_DECL_LEN(byte_width,charset)

网管u家bitscn.net

返回一个NCHAR值的声明宽度(以字符为单位).byte_width是该值以字节为单位的长度charset是该值的字符集ID。 网管论坛bbs_bitsCN_com

NLS_CHARSET_ID(charset_name) 网管有家www.bitscn.net

返回指定字符集charset_name的数字ID。为charset_name指定“CHAR_CS”将返回数据库字符集的ID,为charset_name指定“NCHAR_CS”将返回数据库国家字符集的ID。如果charset_name是一个无效字符集名,将返回
NULL。NLS_CHARSET_ID和NLS_CHARSET_NAME是互为反函数。

网管网www_bitscn_com

NLS_CHARSET_NAME([charset_id])

网管朋友网www_bitscn_net

返回指定字符集ID charset_id 的名字。如果 charset_id 是一个无效字符集ID,将返回NULL; 网管下载dl.bitscn.com

NLS_INITCAP(string[,nlsparams])

网管bitscn_com

以字符串中每个单词第一个字符大写而单词中其余字母小写的形式返回string.nlsparams指定了一个与该会话缺省的不同的排序次序。如果没有指定该参数,NLS_INITCAP与INITCAP相同。nlsparams应该采取下面的形式:
'NLS_SORT=sort',其中sort是一个语言排序序列。

网管u家u.bitscn@com

NLS_UPPER(string[,nlsparams])

网管u家u.bitsCN.com

以大写形式返回string,不是字母的字符不受影响。如果没有指定nlsparams,NLS_UPPER与UPPER相同。 网管bitscn_com

NLS_LOWER

网管有家www.bitscn.net

以小写形式返回string,不是字母的字符不受影响,如果没有指定nlsparams,NLS_LOWER与LOWER相同。

网管u家u.bitsCN.com

NLSSORT(string[,nlsparams]) 网管有家bitscn.net

返回用于排序string的字符串字节。所有值都被转换为字节字符串,这样在不同数据库之间就保持了一致性。
如果没有指定nlsparams,那么就会使用会话中缺省排序序列。 中国网管联盟bitsCN.com

TRANSLATE(string USING {CHAR_CSINCHAR_CS}) 网管u家u.bitsCN.com

TRANSLATE...USING 将输入string参数转换为数据库字符集(指定CHAR_CS)或数据库国家字符集(指定NCHAR_CS).string可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2类型。如果指定CHAR_CS,返回类型为VARCHAR2,如果指定NCHAR_CS,返回类型为NVARCHAR2。TRANSLATE...USING是CONVERT功能的子集。
如果输入值包含UCS2字符或反斜线符号要使用UNSTR函数。 网管有家bitscn.net

例:
SQL> select translate('asd' using NCHAR_CS) from dual;--数据库国家字符集 网管网www.bitscn.com

TRANSL
------
asd 中国网管联盟bitsCN.com

SQL> select translate('asd' using CHAR_CS) from dual;--数据库字符集 网管有家www.bitscn.net

TRA
---
asd 网管有家www.bitscn.net

UNSTR(s)

网管有家bitscn.net

返回转换为数据库UNICODE字符集的字符串。s可包含escaped UCS2 代码点字符。它由一个反斜线符号加上十六进制代码点数字组成。因此,要在字符串中包含一个反斜线符号就必须使用双反斜线符号(\\).UNISTR
TRANSLATE...USING相似,差别是它仅能转换为UNICODE,而且可以包含escaped 字符。 网管下载dl.bitscn.com


general
//number
//conversion
//date 网管论坛bbs_bitsCN_com

多行函数:对多行数据(一组数据)进行计算并返回一个值的函数。

网管有家www.bitscn.net

TAGs笔记   学习   返回   字符   string   函数   语句    
 上一篇:PL/SQL学习笔记(二)   下一篇:PL/SQL在from后面使用变量,以及输入'&字符'的方法
相关文章列表
PL/SQL学习笔记(一) 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.PL/SQL - 嵌套游标 cursor-PLSQL
2.用一个实例讲解Oracle数据库的PL/SQL语句
3.PL/SQL----触发器-PLSQL
4.mysql存储过程写法—动态参数运用-PLSQL
5.PL/SQL Developer导出分区索引脚本-PLSQL
6.PL/SQL collection— table() 函数-PLSQL
7.SQL Server 2005 中的架构与用户-PLSQL
8.Oracle数据库维护常用SQL语句集合(2)-P
9.Oracle数据库维护常用SQL语句集合(3)-P
10.再议SQL Server临时表和表变量-PLSQL
最新推荐文章:
1.与数据库无关的处理放到数据库以外来实现
2.Oracle 10g第2版新特性之SQL和PL/SQL
3.通过PL/SQL访问Web Services
4.菜鸟学oracle - 用PL/SQL画直方图
5.重新编译PLSQL中无效对象或指定对象
6.Oracle高级技巧
7.深入了解Oracle 10g新的多重集运算符
8.在SQL中删除重复记录(多种方法)
9.Oracle:PL/SQL中怎样使用Array
10.数据库手册:速查Oracle函数列表
网管论坛交流:
·大家来开心一下吧---看了会很开心的东西-
·中国人不可不知道的知识
·@@小鹏◎◎小鹏同志与某位女明星亲密接触
·◎◎小鹏◎◎发现不明生物,居然正在交配
·[图文]^^^版主是什么?????
·泡论坛的女人是好女人
·做个“水性杨花”的女人
·献给mm俱乐部的所有mm
·深圳一集团企业电脑基础应用培训教程
·■■■■十一遊玩照■■■■■