日期:2014-05-16 浏览次数:20864 次
Oracle语句总结
1. 简单的SELECT 语句? as
SELECT 字段名1 [AS] '字段名1 解释' FROM table; 
2. 处理NULL 
NVL函数可把NULL转换成其它类型的符号 
编程技巧: NVL函数在多条件模糊查询的时候比较有用 
NVL函数可返回多种数据类型: 
返回日期 NVL(start_date,'2002-02-01') 
返回字符串 NVL(title,'no title') 
返回数字 NVL(salary,1000) 
3. 使用SQL*PLUS(1) 
desc table; 显示表结构 
select * from tab; 查看用户下所有的表 
set pause on; 可以使大量结果集在用户按“Enter”(回车)后翻页 
set pagesize 100; 设定SQL语句返回结果集一页的行数100, 默认值是14 
set linesize 100; 设定SQL语句返回结果集一行的宽度100, 默认值是80 
4. SQL*PLUS里规定字段的显示格式 
规定数字的显示格式 
SQL>column 字段名 format 99999999999; 
SQL>column 字段名 format 999,999,999,999; 
SQL>column 字段名 format a数字 [word_wrapped]; 
规定long字符的显示宽度 
SQL>set long 200; 
规定字段名的显示内容 
SQL> column 字段名 heading '字段名显示内容'; 
SQL> set heading off; 查询时不显示字段名称 
规定字段的对齐方向 
SQL> column 字段名 justify [left | right | center]; 
清除字段的格式 
SQL> column 字段名 clear; 
5. SQL*PLUS里规定字段的显示格式例子 
SQL> column last_name heading 'Employee|Name' format a15; 
SQL> column salary justify right format $99,999.99; 
SQL> column start_date format a10 null 'Not Hired'; 
说明:如果start_date为null, 显示字符串'Not Hired' 
6. 判断题(T/F) 
(1). SQL command are always held in sql buffer. [T] 
(2). SQL*PLUS command assit with query data. [T] 
5 
J2EE @ zxw 
SQL*PLUS命令只控制SELECT结果集的显示格式及控制文件.只有SQL命令能访问数据库. 
二、限制选择行 
1. 按指定的规则排序 
SELECT expr FROM table [ORDER BY {column, expr} [ASC | DESC] ]; 
默认的排序是ASC升序(由小到大) 
还可以ORDER BY 字段名的位置[1]| [2] ASC| DESC; 
2. 用WHERE限制选择行(1) 
比较操作符 = > < >= <= != <> ^= 与NULL比较不能用上面的比较操作符 ANY SOME 
ALL 
SQL操作符 BETWEEN … AND… IN LIKE IS NULL 
NOT BETWEEN … AND… NOT IN NOT LIKE IS NOT NULL 
逻辑操作符 AND OR NOT 
3. 用WHERE限制选择行(2) 
比较顺序(可以用括号改变它们的顺序) 
(1). = < > >= <= in like is null between 
(2). and 
(3). Or 
4. LIKE操作 
% 零到任意多个字符 _ 一个字符 
例如: 字段名 like 'M%' 字段名 like '%m%' 字段名 like 'job_' 
如果要找含下划线的字符, 要加反斜线 例如:字段名 like '%X/_Y%' escape '/' 
5. 日期字段的比较 
举例: 
日期字段 between to_date('2001-12-12','YYYY-MM-DD') and to_date('2002-02-01','YYYY-MM-DD') 
日期字段> to_date('2001-12-12','YYYY-MM-DD') and日期字段<= 
to_date('2002-02-01','YYYY-MM-DD'); 
6. 不能用到索引的比较操作符 
???? IS NULL 
IS NOT NULL 
LIKE '%m%' 
三、单行函数 
1. 数字函数 
ABS 取绝对值 POWER 乘方 LN 10为底数取0 
SQRT 平方根 EXP e的n次乘方 LOG(m,n) m为底数n取0 
数学运算函数:ACOS ATAN ATAN2 COS COSH SIGN SIN SINH TAN TANH 
CEIL 大于或等于取整数 
FLOOR 小于或等于取整数 
MOD 取余数 
ROUND(n,m) 按m的位数取四舍五入值如果round(日期): 中午12以后将是明天的日期.???? 
round(sysdate,'Y')是年的第一天 
TRUNC(n,m) 按m的位数取小数点后的数值如果trunc(日期), 确省的是去掉时间 
6 
J2EE @ zxw 
2. 字符函数 
CHR 按数据库的字符集由数字返回字符 
CONCAT(c1,c2) 把两个字符c1,c2组合成一个字符, 和 || 相同 
REPLACE(c,s,r) 把字符c里出现s的字符替换成r, 返回新字符 
SUBSTR(c,m,n) m大于0,字符c从前面m处开始取n位字符,m等于0和1一样, 
m小与0,字符c从后面m处开始取n位字符 
TRANSLATE(c,f1,t1) 字符c按f1到t1的规则转换成新的字符串 
INITCAP 字符首字母大写,其它字符小写 
LOWER 字符全部小写 
UPPER 字符全部大写 
LTRIM(c1,c2) 去掉字符c1左边出现的空的字符c2 
RTRIM(c1,c2) 
TRIM(c1,c2) 去掉字符c1左右两边的空字符c2 
LPAD(c1,n,c2) 字符c1按制定的位数n显示不足的位数用c2字符串替换左边的空位 
RPAD(c1,n,c2) 
3. 日期函数 
ADD_MONTHS(d,n) 日期值加n月 
LAST_DAY? 返回当月的最后一天的日期 
MONTHS_BETWEEN(d1,d2) 两个日期值间的月份,d1<d2 返回负数 
NEXT_DAY? 返回日期值下一天的日期 
SYSDATE 当前的系统时间 
DUAL是SYS用户下一个空表,它只有一个字段dummy 
4. 转换函数(1) 
TO_CHAR(date,'日期显示格式') 
TO_CHAR(number) 用于显示或报表的格式对齐 
TO_DATE(char,'日期显示格式') 
TO_LOB 把long字段转换成lob字段 
TO_NUMBER(char) 用于计算或者比较大小 
4. 转换函数(2) 
to_date里日期显示格式 
YYYY 年 YEAR YYY YY Y 
Q 季度 
MM 月 MONTH MON 
W 星期 (week of month) WW, IW (week of year) 
(说明:周计是按ISO标准,从1月1日的星期数到后面七天为一周,不一定是从周一到周日) 
DD 日 DAY DY 
HH24 小时 HH12 HH 
MI 分钟 
SS 秒 
如果想固定日期的显示格式可以在数据库的参数文initorasid.o