oracle相关总结(转)
    文章来自:http://database.group.iteye.com/group/topic/10294
原作者不知道是谁本来想标原出处URL,抱歉了。
一.Oracle数据库中常用的数据类型 
varchar2(长度)可变长字符串 
char(长度) 定长 
number()表示整数或者浮点数number(8) number(8,2) 
clog 字符的大对象 
blog 二进制的大对象 
二.数据库查询 
1)SELECT语句 
从表中提取查询数据.语法为SELECT [DISTINCT] {column1,column2,…} FROM tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {expressions} [ASC/DESC]; 
说明:SELECT子句用于指定检索数据库的中哪些列,FROM子句用于指定从哪一个表或视图中检索数据。 
2)WHERE子句。 
WHERE子句用来选择符合条件的的记录. 
like '...' 通配查询 _,% 
between ... and ... ,表示结果在这之间,between and是一个闭区间。 
!=,<>,^=,这三个都可以表示不等于。 
in (va1,val2,...) 判断结果是否在这个集合中存在 。 
like '...' 字符串通配查询,'%'表示0或多个字符,'_'表示一个字符。 
... and ... 表示只有两个条件同时满足 
... or ... 表示条件只要满足其中之一就可以 
all ... 是要求都满足条件。 
not .....,则是可以与以上的条件产生反效果。 
... is null 使用来判断值是不是空。 
3) ORDER BY子句 
ORDER BY 子句使得SQL在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由ORDER BY 子句指定的表达式的值确定。 
ASC(默认,升序) DESC(降序) 
order by 目标列名(别名) 排序顺序(不写排序顺序,会默认为升序排序) 
例:select first_name from s_emp order by first_name; 
select first_name from s_emp order by first_name desc; 
三.SQL常用的命令分类及例子 
数据定义语言:create(创建)、alter(更改)和drop(删除)命令。 
数据操纵语言:insert(插入)、select(选择)、delete(删除)和update(更新)命令。 
事务控制语言:commit(提交)、savepoint(保存点)和rollback(回滚)命令。 
数据控制语言:grant(授予)和revoke(回收)。 
1.数据定义语言举例: 
SQL> create table myTab(no number(4),name varchar2(20));创建一个名为myTab的表,包含两列no和name; 
SQL> alter table myTab modify (name varchar2(25));修改myTab中的name列,使此列能容纳25个字符; 
SQL> alter table myTab add (tel_no varchar2(20));给表myTab增加一列tel_no; 
SQL> alter table myTab drop column tel_no;删除表myTab的tel_no列; 
SQL> drop table myTab;删除表myTab; 
SQL> truncate table myTab;删除表myTab中的所有行(截断表),注意:不可以回滚。 
2.数据操纵语言举例: 
SQL> insert into myTab values(‘001’,’John’); 
向表myTab中插入一行数据; 
SQL> select distinct salary “薪水” from s_emp where salary>1500 order by sal desc; 
选择表中salary大于1500的数据,以别名“薪水”显示并按照salary的降序进行排列输出; 
SQL> create table empa as select empno,ename,job,sal from emp; 
从emp表中选择“empno,ename,job,sal”四列的数据建立新表empa; 
SQL> create table empa as select * from emp where 1=2; 
使用一个假条件根据现有表emp创建一个只包含结构的空表empa; 
SQL> delete from empa where sal<1500; 
删除表empa中sal小于1500的行; 
SQL> update empa set sal=1500 where sal<1500;更新,将表empa中sal小于1500的行的sal值全部改为1500。
3.事务控制语言举例: 
SQL> commit;用于提交并结束事务处理; 
SQL> savepoint mark1;保存点类似于标记,用来标记事务中可以应用回滚的点; 
SQL> rollback to savepoint mark1;回滚到保存点mark1。 
四.Oracle数据库函数 
注意:dual表(虚表)是专门用于函数测试和运算的. 
1.字符函数 
   字符是大小写敏感的 
   转小写 lower(字段名) 
   转大写 upper(字段名) 
   首字母大写 initcap(字段名) 
   字符串拼接 concat(字段1, 字段2) 
   截取子串 substr(字段名, 起始位置,取字符个数) 
例: select first_name,substr(first_name,2,2) sub from s_emp;(从名字的第二个字符开始取两个字符) 
select first_name,substr(first_name,-2,2) sub from s_emp;(从名字的倒数第二个字符开始取两个字符) 
2.数值函数 
   四舍五入函数 round(数据,保留到小数点后几位) 
   1表示保留到小数点后一位,-1表示保留到小数点前一位。 
   例:select round(15.36,1) from dual; 
   截取数值函数 trunc(数据,保留到小数点后几位) 
   例:select trunc(123.456,1) from dual; 
截取到小数点后一位,注意:与round函数不同,不会四舍五入。 
3.日期函数 
   缺省日期格式,日-月-年 dd-mon-rr 
   修改当前会话的日期格式,会按照指定的格式输出日期 
   alter session set nls_date_format='yyyy mm dd hh24:mi:ss'; 
   返回当前日期 sysdate 
   例:select sysdate from dual; 
4.不同数据类型间转换函数 
   将日期转成字符 tochar(date,'日期格式') 
   日期格式要用有效格式,格式大小写敏感 'yyyy mm dd hh24:mi:ss'(标准日期格式),'year'(年的全拼),'month'(月的全拼),'day'(星期的全拼),'ddspth' (日期的全拼) 
   例:select to_char(sysdate,'yyyy mm dd hh24:mi:ss')from dual; 
select to_char(sysdate,'year mont