友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
oracle从入门到精通(PDF格式)-第4部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
第 10 页,共 106 页
…………………………………………………………Page 11……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
4、SQLPLUS 命令:
4。1、与文件相关的命令:
4。1。1、 spool + 路径
。
。
spool off
4。1。2、save
把当前内存中的语句保存为文本文件。
4。1。3、run 或 /
运行当前内存中的语句
4。1。4、clear buffer(cl buff)
清空当前内存中的语句
4。1。5、start @ 读取并执行
4。1。6、get 读取不执行
4。2编辑命令:
z List 列出一条语句
*表示当前行
z Change 修改命令
原来 c/jj/kk
c/jjj/xxx
z input 在当前行之后插入一行新的数据
z append 在当前行中插入新的东西
n 写数字显示对应行
z delete
del + 回车 删除当前行
del 1 3 删除第一到第三行
z edit l;c;i;a;n;d;e
z 查看当前用户
SHOW USER
z 默认的日期格式:DD…MON…RR 日…月…年
z 日期可以进行比较;
z 字符可以进行比较(以字母的 ASCLL 码比较);
z IN(set)或NOT IN 匹配任何列表中的值;
z LIKE 模糊匹配字符串值;
z IS NULL 是否空值;
z IS NOT NULL 是否不为空;
z BETWEEN 可以做数字、日期和字符的比较。
z 通配符 %、_
S_mith
WHERE first_name like 's/_%'escape'/';
解释这个符号后的下划线为正常的字符。如果不加,将被视为通配符作用的下划线。
'_'只能通配一个字符
主要用于通配固定位数的字符。例如查询月收入五位数以上的员工。五位就可以用'_'来查询。
第 11 页,共 106 页
…………………………………………………………Page 12……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
z 逻辑操作符(用在 WHERE 子句中)
1。 AND
2。 OR
3。 NOT
先执行 NOT ,再执行 AND 最后执行 OR。
z ORDER BY
ORDER BY 子句在 SELECT 语句的最后。
z ASC:升序 DESC:降序
z 空值作为无穷大来处理。
z rownum 显示行数量约束的关键字(在结果中可以做代理键使用);
可以按照查询列表中序号进行排序。
系统在用户写出查询列表的同时就赋予每个列名一个序号,升序赋予。
例: SELECT name;phone;adress from。。。。。。。。。;
1 2 3
1。6、单行函数
单行函数:对单行数据进行计算并返回一个值的函数。
*修改数据项
*接受参数返回一个值。
*对每行进行操作。
*每行返回一个结果。
*可以修改数据类型
*可以嵌套
1、character 字符类型函数:
z LOWER()强制小写
z UPPER()强制大写
z INITCAP()每个单词首字母大写;可以用在 WHERE子句中。
z CONCAT(‘’,‘’)连接函数
z SUBSTR(string;a';b')返回 string 的一部分,a和 b 以字符为单位。
z SUBSTRB(string;a';b')返回 string的一部分,a和 b 是以字节为单位。
z SUBSTRC(string;a';b')返回 string的一部分,a和 b 是以UNICODE 完全字符为单位。
z SUBSTR2(string;a';b')返回 string的一部分,a和 b 是以UCS2 代码点为单位。
z SUBSTR4(string;a';b')返回 string的一部分,a和 b 是以UCS4 代码点为单位。
以上函数都是返回 string 的一部分,从字符位置 A 开始,长为 B 个字符。如果 A 是0,那它就
被认为是 1 (字符串的开始位置)。如果 A 是正数,那么字符从左边开始数。如果是负数,则从 STRING
的末尾开始,从右边数。如果 B 不存在,那么缺省是整个字符串。如果 B 小于 1,将返回 NULL。如
果 A 或B 使用了浮点数,那么该数值首先被节取成一个整数,返回类型与 STRING相同。
z LENGTH(string)
z LENGTHB(string)
z LENGTHC(string)
z LENGTH2(string)
第 12 页,共 106 页
…………………………………………………………Page 13……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
z LENGTH4(string)
以上函数返回 string 的长度。因为 CHAR 类型的值是填充空格的,所以如果 string 是 CHAR 数
据类型,那么末尾的空格算在长度之内。如果 string 是NULL,函数返回NULL。
z INSTR(string1;string2';a'';b') 返回string1中包含string2的位置。a和b以字符为单位。
z INSTRB(string1;string2';a'';b') 返回 string1 中包含 string2 的位置。a 和 b 是以字节为
单位。
z INSTRC(string1;string2';a'';b')返回 string1 中包含 string2 的位置。a 和 b 是以 UNICODE
完全字符为单位。
z INSTR2(string1;string2';a'';b') 返回 string1 中包含string2 的位置。a 和b 是以 UCS2 代
码点为单位
z 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 的取值。
z LPAD(列名;数字;‘要补上的字符’)左补位
z RPAD(列名,数字,‘要补上的字符’)右补位
z TRIM(‘child_str’ FROM ‘parents_str’)将连续子串(只能有一个字符)从主串的两边截
取出来,区分大小写。默认为截取空格。
z LTRIM左截取
z RTRIM右截取
z ascii(x)函数,返回'X'字符的十进制数,即 X的 ASCII 码值。
z chr(x)函数,返回 ASCII 码为X 的字符。
z length(x)函数,求串 X的长度,与之相似的是 lengthb(x)函数,用在多字节字符中。
z replace(x;y';z')函数,返回值为将串 X 中的Y串用 Z 串替换后的结果字符串。若省略 Z 参数,
则将串 X 中为 Y 串的地方删除。
z soundex(x)函数,返回串 X 的语音描述,这个描述由 4 个字符组成,说明串 X 的声音表示形式
发音,有时在只知道一个名字的发音而不知道拼写情况下或许能用到。
例:select soundex ('smith') from dual; 返回值为:S530。
z translate(x;y;z)函数,返回将 X 串中每个字符按它在 Y 串中出现的位置翻译成 Z 串中相应位
置的字符后的结果,相当与替换。
例:select translate('this is an example';'my is';'@#%^&') from dual;
z NLS 函数
除了 NCHR,这些函数都是以字符类型为参数返回字符类型值。
z CONVERT(string;dest_charset';source_charset')
将输入 string 转换为指定字符集 dest_charset。source_charset 是输入值的字符集——如果
它没有被指定,则缺省为数据库字符集。输入值可以是 CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB
和 NCLOB 类型。返回值为 VARCHAR2 类型。如果 dest_charset 中没有输入字符串中的一个字符,将
会使用一个代替字符(由 dest_charset 定义)
z NCHR(X)
返回数据库国家字符集中值为 X 的字符。NCHR(X) 等价于 CHR(x USING NCHAR_CS)。
z NLS_CHARSET_DECL_LEN(byte_width;charset)
返回一个 NCHAR 值的声明宽度(以字符为单位)。byte_width 是该值以字节为单位的长度 charset 是
该值的字符集 ID。
第 13 页,共 106 页
…………………………………………………………Page 14……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
z NLS_CHARSET_ID(charset_name)
返回指定字符集 charset_name 的数字 ID。为 charset_name 指定“CHAR_CS”将返回数据库字符集
的 ID,为charset_name指定“NCHAR_CS”将返回数据库国家字符集的 ID。如果 charset_name 是一
个无效字符集名,将返回 NULL。NLS_CHARSET_ID 和 NLS_CHARSET_NAME 是互为反函数。
z NLS_CHARSET_NAME('charset_id')
返回指定字符集 ID charset_id 的名字。如果 charset_id 是一个无效字符集 ID,将返回 NULL;
z NLS_INITCAP(string';nlsparams')
以字符串中每个单词第一个字符大写而单词中其余字母小写的形式返回 string。nlsparams 指定了
一个与该会话缺省的不同的排序次序。如果没有指定该参数,NLS_INITCAP 与 INITCAP 相同。
nlsparams 应该采取下面的形式:
'NLS_SORT=sort';其中 sort 是一个语言排序序列。
z NLS_UPPER(string';nlsparams')
以大写形式返回 string;不是字母的字符不受影响。如果没有指定 nlsparams;NLS_UPPER 与 UPPER
相同。
z NLS_LOWER
以小写形式返回 string;不是字母的字符不受影响,如果没有指定 nlsparams,NLS_LOWER 与 LOWER
相同。
z NLSSORT(string';nlsparams')
返回用于排序 string 的字符串字节。所有值都被转换为字节字符串,这样在不同数据库之间就保持
了一致性。
如果没有指定 nlsparams;那么就会使用会话中缺省排序序列。
z TRANSLATE(string USING {CHAR_CSINCHAR_CS})
TRANSLATE。。。USING 将输入 string 参数转换为数据库字符集(指定 CHAR_CS)或数据库国家字符集
(指定 NCHAR_CS)。string 可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2 类型。如果指定 CHAR_CS,
返回类型为 VARCHAR2,如果指定 NCHAR_CS;返回类型为 NVARCHAR2。TRANSLATE。。。USING是 CONVERT
功能的子集。
如果输入值包含 UCS2 字符或反斜线符号要使用 UNSTR 函数。
例:
SQL》 select translate('asd' using NCHAR_CS) from dual;……数据库国家字符集
TRANSL
……………
asd
SQL》 select translate('asd' using CHAR_CS) from dual;……数据库字符集
TRA
……
asd
z UNSTR(s)
返回转换为数据库 UNICODE 字符集的字符串。s 可包含 escaped UCS2 代码点字符。它由一个反斜线
符号加上十六进制代码点数字组成。因此,要在字符串中包含一个反斜线符号就必须使用双反斜线
符号()。
UNISTR与 TRANSLATE。。。USING 相似,差别是它仅能转换为 UNICODE,而且可以包含 escaped 字符。
general
//number
//conversion
//date
第 14 页,共 106 页
…………………………………………………………Page 15……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
多行函数:对多行数据(一组数据)进行计算并返回一个值的函数。
2、number 数字类型函数
z ABS(x) 函数,此函数用来返回一个数的绝对值。
z ACOS(x) 函数,返回X 的反余弦值。X 范围从 1 到…1,输入值从 0 到派,以弧度为单位。
z ASIN(x) 函数,返回X 的反正弦值。X 范围从 1 到…1,输入值从…PI/2 到 PI/2 ,以弧度为单位。
z ATAN(x) 函数,返回X 的反正切值。输入值从…PI/2 到 PI/2 ,以弧度为单位。
z BITAND(x;y) 函数;返回 X 和 Y 的与结果。X 和 Y 必须为非负整数。注意没有 BITOR 函数,但
是在 UTL_RAW 包中有用于 RAW 值的位操作符。
z CEIL(x)函数,用来返回大于或等于X 的最小整数。
z COS(x)函数,返回x 的余弦值。x 是以弧度表示的角度。
z COSH(x)函数,返回X 的双曲余弦。
z EXP(x)函数,与power(x;y) 函数类似,不过不用指明基数,返回 E 的X 次幂。E=2。71828183。。。
z FLOOR(x) 函数,用来返回小于或等于X 的最大整数。
z LN(x) 函数,返回x 的自然对数。x 必须大于 0 。
z LOG(x;y) 函数,返回以X 为底 Y 的对数。底必须是不为0 和 1 的正数,Y 是任意正数。
z MOD(被除数,除数)求余函数,如果除数为 0,则返回被除数。
z POWER(x;y) 函数,返回X 的Y 次幂。底 X 和指数 Y 都不必是正整数,但如果 X 是负数的话,
Y 必须是整数。
z ROUND(x';y') 函数,返回舍入到小数点右边Y 位的 X 值。Y 缺省为 0,这将X 舍入为最接近的
整数。如果 Y 是负数,那么舍入到小数点左边相应的位上,Y 必须为整数。
z SIGN(x)函数,此函数用来返回一个数的正负值,若为一个正数则返回 1,若为一个负数则返回
…1,若为 0 则仍返回 0,有点像把模拟量数字化的意思。
z SIN(x)函数,返回X 的正弦。x 是以弧度表示的角度。
z SINH(x)函数,返回x 的双曲正弦。
z SQRT(x)函数,返回x 的平方根,x 不能是负数。
z TAN(x)函数,返回x 的正切。x 是以弧度表示的角度。
z TANH(x)函数,返回x 的双曲正切。
z TRUNC(x';y')截取值函数,Y 缺省为 0,这样X 被截取成一个整数。如果 Y 为负数,那么截取
到小数点左边相应位置
z WIDTH_BUCKET(x;min;max;num_buckets) 只能在 SQL 语句中使用。
使用WIDTH_BUCKET 可以根据输入参数创建等长的段。范围MIN 到MAX 被分为num_buckets
节,每节有相同的大小。返回 X 所在的那一节。如果 X 小于 MIN ,将返回 0,如果X 大于或等于
MAX ,将返回num_buckets+1。MIN 和 MAX 都不能为 NULL ,num_buckets 必须是一个正整数。如
果 X 是 NULL ,则返回NULL 。
3、时间类型函数:(date)
内部存储格式:世纪、年、月、日、小时、分钟、秒
默认格式是:DD…MON…RR。
SYSDATE 返回当前的系统时间。
SELECT SYSDATE FROM DUAL;
第 15 页,共 106 页
…………………………………………………………Page 16……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
3。1、对日期的数学运算
SELECT (SYSDATE…HIRE_DATE)/7 FROM TABLENAME WHERE ROWNUM;
SYSDATE…HIRE_DATE:数字列
ADD_MONTHS(date;x)函数,返回加上X 月后的日期 DATE 的值。X 可以是任意整数。如果结果的
月份中所包含的 日分量少于 DATE 的月份的日分量,则返回结果月份的最后一天。如果不小
于,则结果与 DATE 的日分量相同。时间分量也相同。
CURRENT_DATE 以DATE 类型返回会话时区当前的日期。这个函数同 SYSDATE 相似,除了SYSDATE
不管当会话时区。
CURRENT_TIMESTAMP'(precision)' 以 TIMESTAMP WITH TIMEZONE 类型返回会话时区当前的
日期。如果指定 precision,它指返回秒数的精度,缺省为 6。
DBTIMEZONE 返回数据库的时区。
LAST_DAY (日期) 指定日期所在月份的最后一天的日期,这个函数可用来确定本月还有多少天。
LOCALTIMESTAMP'(precision)' 以 TIMESTAMP 类型返回会话时区的当前日期。如果指定
precision,它指返回秒数的精度,缺省为 6 。
MONTHS_BETWEEN(离当前比较近的日期 date1;以前的日期) 两个日期之间相差的月数(以日作
为最小单位来计算的)。返回是相差的月数。如果 date1 和date2 的日分量相同,或者这两个日
期都分别是所在月的最后一天,那么返回结果是个整数。否则,返回结果包含一个分数,以一
个月 31 天计算。
NEW_TIME(d;zone1;zone2)函数,当时区 zone1 中的日期和时间是 D 的时候,返回时区 zone2 中
的日期和时间。返回类型为 DATE。zone1和 zone2 是字符字符串,另外的时区可在 ORACLE9I 中
通过查询 VTIMEZONE_NAMES 得到。
NEXT_DAY (日期,星期几) 指定日期后将要遇到的后七天的某一天的日期。
ROUND(日期,‘MONTH/YEAR’) 四舍五入得到新的日期。 保留位置是月和年
SESSIONTIMEZONE 返回当前会话的时区。返回类型是一个时区偏移或时区片名的字符字符串。
如果指 定格式,则与 ALTER SESSION 语句中的格式相同。
SYS_EXTRACT_UTC(datetime) 从提供的 DATETIME 中以UTC(Coordinated Universal Time)返回
时间。DATETIME 必须包含一个时区。
SYSTIMESTAMP 以 TIMESTAMP WITH TIMEZONE 返回当前的日期和时间。当在分布式 SQL语句中
使用的时候,返回本地数据库的日期和时间。
TRUNC(日期,‘MONTH/YEAR’) 截取
TZ_OFFSET(timezone) 以字符字符串返回提供的 timezone和 UTC 之间的偏移量。timezone
可以被指定为时区名或'+/…HH:HI'格式表示的偏移量。也可使用 SESSIONTIMEZONE 和
DBTIMEZONE函数,返回格式为'+/…HH:HI'。
字符字符串 时区
AST 大西洋标准时
ADT 大西洋夏令时
BST 白令标准时
BDT 白令夏令时
CST 中央标准时
CDT 中央夏令时
EST 东部标准时
EDT 东部夏令时
GMT 格林威治平均时
HST 阿拉斯加夏威夷标准时
第 16 页,共 106 页
…………………………………………………………Page 17……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
HDT 阿拉斯加夏威夷夏令时
MST Mountain 标准时
MDT Mountain 夏令时
NST 纽芬兰标准时
PST 太平洋标准时
PDT 太平洋夏令时
YST YuKon 标准时
YDT YuKon 夏令时
3。2、日期和日期时间算术
运算 返回类型
结果
d1…d2 NUMBER
返回 D1 和 D2 之间相差的天数。该值是一个数值,其小数部分代表一天的几分之几。
dt1…dt2 INTERVAL
�
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!