時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(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為以前年的工資的和;
解答過程如下:
select b.year,sum(a.salary)
from test a,test b
where a.year<=b.year
group by b.year
order by year
1. 簡單的SELECT 語句
SELECT 字段名1 [AS] ‘字段名1 解釋’ FROM table;
2. 處理NULL
NVL函數(shù)可把NULL轉(zhuǎn)換成其它類型的符號
編程技巧: NVL函數(shù)在多條件模糊查詢的時候比較有用
NVL函數(shù)可返回多種數(shù)據(jù)類型:
返回日期 NVL(start_date,’2002-02-01′)
返回字符串 NVL(title,’no title’)
返回數(shù)字 NVL(salary,1000)
3. 使用SQL*PLUS
SQL> desc table; 顯示表結(jié)構(gòu)
SQL> select * from tab; 查看用戶下所有的表
SQL> set pause on; 可以使大量結(jié)果集在用戶按"Enter"(回車)后翻頁
SQL> set pagesize 100; 設(shè)定SQL語句返回結(jié)果集一頁的行數(shù)100, 默認(rèn)值是14
SQL> set linesize 100; 設(shè)定SQL語句返回結(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; 查詢時不顯示字段名稱
規(guī)定字段的對齊方向
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’;
說明:如果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命令能訪問數(shù)據(jù)庫.
二、限制選擇行
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)
比較順序(可以用括號改變它們的順序)
(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%’
三、單行函數(shù)
1. 數(shù)字函數(shù)
ABS 取絕對值 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(日期), 確省的是去掉時間
2. 字符函數(shù)
CHR 按數(shù)據(jù)庫的字符集由數(shù)字返回字符
CONCAT(c1,c2) 把兩個字符c1,c2組合成一個字符, 和 || 相同
REPLACE(c,s,r) 把字符c里出現(xiàn)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的規(guī)則轉(zhuǎn)換成新的字符串
INITCAP 字符首字母大寫,其它字符小寫
LOWER 字符全部小寫
UPPER 字符全部大寫
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) 兩個日期值間的月份,d1 NEXT_DAY? 返回日期值下一天的日期 SYSDATE 當(dāng)前的系統(tǒng)時間 DUAL是SYS用戶下一個空表,它只有一個字段dummy 4. 轉(zhuǎn)換函數(shù)(1) TO_CHAR(date,’日期顯示格式’) TO_CHAR(number) 用于顯示或報表的格式對齊 TO_DATE(char,’日期顯示格式’) TO_LOB 把long字段轉(zhuǎn)換成lob字段 TO_NUMBER(char) 用于計算或者比較大小 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) (說明:周計是按ISO標(biāo)準(zhǔn),從1月1日的星期數(shù)到后面七天為一周,不一定是從周一到周日) DD 日 DAY DY HH24 小時 HH12 HH 關(guān)鍵詞標(biāo)簽:Oracle
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法