時(shí)間:2015/6/28來(lái)源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)
一、選擇行
COURSEID COURSENAME SCORE
———- ———- ———-
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80
SQL> select courseid, coursename ,score ,decode(sign(score-61),-1,’fail’,'pass’) as mark from course_v;
COURSEID COURSENAME SCORE MARK
———- ———- ———- —-
1 java 70 pass
2 oracle 90 pass
3 xml 40 fail
4 jsp 30 fail
5 servlet 80 pass
12、
已經(jīng)知道原表
year salary
—————— ———————
2000 1000
2001 2000
2002 3000
2003 4000
顯示查詢結(jié)果
year salary
—————— ———————
2000 1000
2001 3000
2002 6000
2003 10000
即salary為以前年的工資的和;
解答過(guò)程如下:
select b.year,sum(a.salary)
from test a,test b
where a.year<=b.year
group by b.year
order by year
1. 簡(jiǎn)單的SELECT 語(yǔ)句
SELECT 字段名1 [AS] ‘字段名1 解釋’ FROM table;
2. 處理NULL
NVL函數(shù)可把NULL轉(zhuǎn)換成其它類型的符號(hào)
編程技巧: NVL函數(shù)在多條件模糊查詢的時(shí)候比較有用
NVL函數(shù)可返回多種數(shù)據(jù)類型:
返回日期 NVL(start_date,’2002-02-01′)
返回字符串 NVL(title,’no title’)
返回?cái)?shù)字 NVL(salary,1000)
3. 使用SQL*PLUS
SQL> desc table; 顯示表結(jié)構(gòu)
SQL> select * from tab; 查看用戶下所有的表
SQL> set pause on; 可以使大量結(jié)果集在用戶按"Enter"(回車)后翻頁(yè)
SQL> set pagesize 100; 設(shè)定SQL語(yǔ)句返回結(jié)果集一頁(yè)的行數(shù)100, 默認(rèn)值是14
SQL> set linesize 100; 設(shè)定SQL語(yǔ)句返回結(jié)果集一行的寬度100, 默認(rèn)值是80
4. SQL*PLUS里規(guī)定字段的顯示格式
規(guī)定數(shù)字的顯示格式
SQL>column 字段名 format 99999999999;
SQL>column 字段名 format 999,999,999,999;
SQL>column 字段名 format a數(shù)字 [word_wrapped];
規(guī)定long字符的顯示寬度
SQL>set long 200;
規(guī)定字段名的顯示內(nèi)容
SQL> column 字段名 heading ‘字段名顯示內(nèi)容’;
SQL> set heading off; 查詢時(shí)不顯示字段名稱
規(guī)定字段的對(duì)齊方向
SQL> column 字段名 justify [left | right | center];
清除字段的格式
SQL> column 字段名 clear;
5. SQL*PLUS里規(guī)定字段的顯示格式例子
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’;
說(shuō)明:如果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]
7、 SQL*PLUS命令只控制SELECT結(jié)果集的顯示格式及控制文件.只有SQL命令能訪問(wèn)數(shù)據(jù)庫(kù).
二、限制選擇行
1. 按指定的規(guī)則排序
SELECT expr FROM table [ORDER BY {column, expr} [ASC | DESC] ];
默認(rèn)的排序是ASC升序(由小到大)
還可以O(shè)RDER 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)
比較順序(可以用括號(hào)改變它們的順序)
(1). = < > >= <= in like is null between
(2). and
(3). Or
4. LIKE操作
% 零到任意多個(gè)字符 _ 一個(gè)字符
例如: 字段名 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%’
三、單行函數(shù)
1. 數(shù)字函數(shù)
ABS 取絕對(duì)值 POWER 乘方 LN 10為底數(shù)取0
SQRT 平方根 EXP e的n次乘方 LOG(m,n) m為底數(shù)n取0
數(shù)學(xué)運(yùn)算函數(shù):ACOS ATAN ATAN2 COS COSH SIGN SIN SINH TAN TANH
CEIL 大于或等于取整數(shù)
FLOOR 小于或等于取整數(shù)
MOD 取余數(shù)
ROUND(n,m) 按m的位數(shù)取四舍五入值如果round(日期): 中午12以后將是明天的日期.
round(sysdate,’Y')是年的第一天
TRUNC(n,m) 按m的位數(shù)取小數(shù)點(diǎn)后的數(shù)值如果trunc(日期), 確省的是去掉時(shí)間
2. 字符函數(shù)
CHR 按數(shù)據(jù)庫(kù)的字符集由數(shù)字返回字符
CONCAT(c1,c2) 把兩個(gè)字符c1,c2組合成一個(gè)字符, 和 || 相同
REPLACE(c,s,r) 把字符c里出現(xiàn)s的字符替換成r, 返回新字符
SUBSTR(c,m,n) m大于0,字符c從前面m處開(kāi)始取n位字符,m等于0和1一樣,
m小與0,字符c從后面m處開(kāi)始取n位字符
TRANSLATE(c,f1,t1) 字符c按f1到t1的規(guī)則轉(zhuǎn)換成新的字符串
INITCAP 字符首字母大寫(xiě),其它字符小寫(xiě)
LOWER 字符全部小寫(xiě)
UPPER 字符全部大寫(xiě)
LTRIM(c1,c2) 去掉字符c1左邊出現(xiàn)的字符c2
RTRIM(c1,c2)
TRIM(c1,c2) 去掉字符c1左右兩邊的字符c2
LPAD(c1,n,c2) 字符c1按制定的位數(shù)n顯示不足的位數(shù)用c2字符串替換左邊的空位
RPAD(c1,n,c2)
3. 日期函數(shù)
ADD_MONTHS(d,n) 日期值加n月
LAST_DAY 返回當(dāng)月的最后一天的日期
MONTHS_BETWEEN(d1,d2) 兩個(gè)日期值間的月份,d1<d2 返回負(fù)數(shù)
NEXT_DAY 返回日期值下一天的日期
SYSDATE 當(dāng)前的系統(tǒng)時(shí)間
DUAL是SYS用戶下一個(gè)空表,它只有一個(gè)字段dummy
4. 轉(zhuǎn)換函數(shù)(1)
TO_CHAR(date,’日期顯示格式’)
TO_CHAR(number) 用于顯示或報(bào)表的格式對(duì)齊
TO_DATE(char,’日期顯示格式’)
TO_LOB 把long字段轉(zhuǎn)換成lob字段
TO_NUMBER(char) 用于計(jì)算或者比較大小
4. 轉(zhuǎn)換函數(shù)(2)
to_date里日期顯示格式
YYYY 年 YEAR YYY YY Y
Q 季度
MM 月 MONTH MON
W 星期 (week of month) WW, IW (week of year)
(說(shuō)明:周計(jì)是按ISO標(biāo)準(zhǔn),從1月1日的星期數(shù)到后面七天為一周,不一定是從周一到周日)
DD 日 DAY DY
HH24 小時(shí) HH12 HH
關(guān)鍵詞標(biāo)簽:Oracle
相關(guān)閱讀
熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列oracle中使用SQL語(yǔ)句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫(kù)賬戶得到管理員權(quán)限Oracle對(duì)user的訪問(wèn)控制
人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法ORACLE和SQL語(yǔ)法區(qū)別歸納(1)oracle grant 授權(quán)語(yǔ)句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限