[Oracle]分享:我的oracle9i学习笔记(8)
文章作者 100test 发表时间 2007:03:14 13:54:41
来源 100Test.Com百考试题网
########### Basic SQL SELECT ################
0select col_name as col_alias from table_name .
0select col_name from table_name where col1 like _o% . ---- _ 匹配单个字符
/*使用字符函数(右边截取,字段中包含某个字符,左边填充某字符到固定位数,右边填充某字符到固定位数)*/
0select substr(col1,-3,5),instr(col2, g ),LPAD(col3,10, $ ),RPAD(col4,10, % ) from table_name.
/*使用数字函数(往右/左几位四舍五入,取整,取余)*/
0select round(col1,-2),trunc(col2),mod(col3) from table_name .
/*使用日期函数(计算两个日期间相差几个星期,两个日期间相隔几个月,在某个月份上加几个月,某个日期的下一个日期,
某日期所在月的最后的日期,对某个日期的月分四舍五入,对某个日期的月份进行取整)*/
0select (sysdate-col1)/7 week,months_between(sysdate,col1),add_months(col1,2),next_day(sysdate, FRIDAY ),last_day(sysdate),
round(sysdate, MONTH ),trunc(sysdate, MONTH ) from table_name.
/*使用NULL函数(当expr1为空取expr2/当expr1为空取expr2,否则取expr3/当expr1=expr2返回空)*/
0select nvl(expr1,expr2),nvl2(expr1,expr2,expr3),nullif(expr1,expr2) from table_name.
0select column1,column2,column3, case column2 when 50 then column2*1.1
when 30 then column2*2.1
when 10 then column3/20
else column3
end as ttt
from table_name . ------使用case函数
0select table1.col1,table2.col2 from table1
[CROSS JOIN table2] | -----笛卡儿连接
[NATURAL JOIN table2] | -----用两个表中的同名列连接
[JOIN table2 USING (column_name)] | -----用两个表中的同名列中的某一列或几列连接
[JOIN table2
ON (table1.col1=table2.col2)] |
[LEFT|RIGHT|FULL OUTER JOIN table2 ------相当于( )=,=( )连接,全外连接
ON (table1.col1=table2.col2)]. ------SQL 1999中的JOIN语法.
example:
0select col1,col2 from table1 t1
join table2 t2
on t1.col1=t2.col2 and t1.col3=t2.col1
join table3 t3
on t2.col1=t3.col3.
0select * from table_name where col1 < any (0select col2 from table_name2 where continue group by col3).
0select * from table_name where col1 < all (0select col2 from table_name2 where continue group by col3).
insert into (0select col1,col2,col3 form table_name where col1>. 50 with check option) values (value1,value2,value3).
MERGE INTO table_name table1