Oracle学习笔记
    一、	SQL
?	基本的SQL SELECT语句
1.	查询:SELECT  数据操作语句:INSERT, DELETE, UPDATE, MERGE
2.	合并:把一个表的数据合并到另一个表中去,如若数据在原表在存在则UPDATE,否则INSERT
3.	事务控制语句:COMMIT提交,ROLLBACK回滚,SAVEPOINT存储点(与ROLLBACK搭配使用,可回滚到某个存储点,否则到最初点)
4.	数据定义语句:对对象操作。TRUNCATE清除表中所有数据, CREATE 创建,DROP删除,ALTER修改
5.	权限控制语句(DCL):GRANT授予权限,REVOKE移除权限
?	单行函数
1.	LOWER()强制小写
2.	UPPER()强制大写
3.	INITCAP()每个单词首字母大写
4.	CONCAT(‘’,’’)连接函数
5.	SUBSTR(str, a[,b])返回str从位置a开始的b个字符
6.	LENGTH(str)返回str的长度
7.	INSTR(str1, str2[,a][,b])返回str2在str1中的位置,a表示扫描的起始位置,b表示第几次出的位置
8.	LPAD(col, n, ‘c’)在col列的左边补n个c字符
9.	RPAD(col, n, ‘c’)在col列的右边补n个c字符
10.	LTRIM()左截取
11.	RTRIM()右截取
12.	ascii(x)返回字符x的十进制,即ASCII码值
13.	chr(x),返回ASCII码为x的字符
14.	replace(x,y[,z]),将x串中的y串替换为z串并返回
15.	translate(x,y,z)将x串中所出现的字符在y串中的位置替换为z串中所对应的字符并返回
16.	NLS(X)返回字符X对应的类型值
17.	CONVERT(STR, DEST_CHARSET[,SOURCE_CHARSET])将STR串的字符集转换为DEST_CHARSET
18.	NCHR(X)返回值为X的对应国家字符,等价于CHR(X USING NCHAR_CS)返回字符X对应的NCHAR_CS字符
19.	UNSTR(X)返回X串对应的UNICODE字符集
?	NUMBER 数字类型函数
1.	ABS(X) 返回数字X的绝对值
2.	CEIL(X) 返回>=X的最小整数
3.	FLOOR(X) 返回<=X的最大整数
4.	MOD(X,Y) 返回X/Y 的余数,如果Y为0,则返回X
5.	ROUND(X[,Y]) 返回X小数点右边Y位的X值,默认返回最接近的整数,如:ROUND(5.2123322, 2)= 5.21
?	时间类型函数
1.	SYSDATE 系统时间
2.	ADD_MONTHS(DATE,X) 返回日期DATE加上X个月后的值
3.	CURRENT_DATE 返回当前会话时区日期, 与SYSDATE 相似。
4.	DBTIMEZONE 返回数据库时区
5.	LAST_DAY(DATE) 返回日期DATE在月份的最后一天日期,这个函数可以用来确定本月共有多少天
6.	MONTHS_BETWEEN(DATE1, DATE2) 返回两日期相差的月数
7.	NEW_TIME(DATE, ZONE1, ZONE2) 返回ZONE1时区DATE1对应在ZONE2时区的日期 
8.	NEXT_DAY(DATE, N) 指定日期后7天星期N的日期
?	显示转换
1.	TO_NUMBER(STR [,’FORMAT_MODEL’]) 字符串转换到数字类型
2.	TO_DATE(STR [,’FORMAT_MODEL’] 字符串转换到日期类型
3.	TO_CHAR(DATE [,’FORMAT_MODEL’ [, nlsparams]] , 使用FM符号可以去掉年月日首位的空格或零, 如 select to_char(sysdate, ‘Fmyyyy-mm-dd’) from dual 输出为: 2012-3-2而非2012-03-02; 也可以通过双引号来格式化输出格式,如select to_char(sysdate, ‘Fmyyyy”年”mm”月”dd”日”’ from dual 输出为 2012年3月2日, 此函数不仅可以转换并输出日期串,也可以格式化输出数字格式串。
4.	GREATEST(X,Y,…) 返回参数列表中最大值
5.	LEAST(X,Y,…) 返回参数列表中最小值
6.	user, uid 返回当前数据库用户和标识, select user, uid from dual
?	条件表达式
1.	Case 表达式 when 条件 1  then  返回值1
			When 条件2	 then  返回值2
			When 条件n  then 返回值n
Else 返回值
			End 		
2.	Decode(条件, 比较值1, 返回值1, 比较值2, 返回值2,…, 返回值)
?	统计函数
1.	AVG(COL)
2.	CORR(X1, X2) 返回表达式X1和X2组成的集合的相关系数
3.	COUNT(COL) 统计所有非空字段的总行数
4.	MAX(COL), MIN(COL) 返回所有行中最大或最小值
5.	SUM(COL) 统计该列所有数字总和
?	操作语句
1.	MERGE INTO dest_table table_alias USING(table/view/sub_query) ON 条件
WHEN MATCHED THEN UPDATE SET AL.col1 = AL2.col1
WHEN NOT MATCHED THEN INSERT dest_table(col1, col2) VALUES(src_table.col1, src_table.col2)
2.	ALTER TABLE table_name SET UNUSED(col list);
ALTER TABLE table_name DROP UNUSED COLUMNS;
DROP TABLE table_name CASCADE;
ALTER TABLE table_name ADD [CONSTRAINT]约束名 约束条件;
ALTER TABLE table_name DROP constraint约束名;
ALTER TABLE table_name PRIMARY KEY CASCADE;
ALTER TABLE table_name DISABLE constraint约束名;
ALTER TABLE table_name ENABLE constraint约束名;
ALTER TABLE table_name MODIFY (colName, colType NOT NULL);
SELECT * FROM ALL_CONSTRAINTS WHERE TABLE_NAME LIKE ‘%TEST%’;
?	VIEW视图
1.	创建VIEW
CREATE [OR REPLACE] [FORCE/NOFORCE] VIEW view_name(colName colType, …)
As
子查询语句
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]]
2.	删除VIEW
DROP VIEW view_name;
?	序列
CREATE SEQUENCE sequence_name
[increment by n]//步长
[start with n]//起始点
[maxvalue n/nomaxvalue]//递增
[minvalue n/nominvalue]//递减
[cycle/nocycle]//循环
[cache n/nocache];//n 为预先生成序列号的个数,默认为20。
SELECT CURRVAL, NEXTVAL FROM sequence_name;
ALTER SEQUENCE sequence_name
increment by
maxvalue
cycle
cache;
start with 不能修