oralce 知识

 原文链接


附录:
1、SQL 简介
2、SQL 操作符
3、Oracle 常用数据类型
4、Oracle 函数
5、[转] Oracle 常用SQL语法



字符串函数
LENGTH()    字符长度
LENTTHB()    字节长度;一个汉字内存中占用 2字节

LTRIM、RTRIM、TRIM

截串
SUBSTR(表达式,位置,长度)
Oracle 无左右取串函数,但可以使用变通方式完成。
左取串:    SUBSTR('abcdefg', 1, 3)
右取串:    SUBSTR('abcedfg', LENGTH('abcdefg')-3+1, 3)


时间函数
sysdate、current_day
设置时间格式:    ALERT SESSION SET NLS_DATE_FORMAT = 'dd-mon-yyyy HH:mi:ss'
求时间:        NEXT_DAY(sysdate, '星期三')


转换函数
TO_CHAR(sysdate, 'yyyy-mm-dd hh24:mi:ss')
TO_DATE('12-3月-04')
TO_NUMBER('333')        必须是能转换
TO_TIMESTAMP('2007-10-10 00:00:00.0', 'yyyy-mm-dd hh24:mi:ssxff')    转换为时间戳格式

聚合函数
count(*)    :查询表行数
count(column)    :查询列行数,会忽略空值,注意
ps.聚合函数不能做为 where 里查询条件出现(因为聚合是对所有查询结果的运算?)


其他函数
USER:当前用户
SUM(DECODE(SEX, '男', 1, 0))    筛选出行被为男的记录 并加1
SUM(DECODE(SEX, '女', 1, 0))    筛选出行被为女的记录 并加1
NVL(a2, '非输入')        布尔值判断,利用系统对空值进行处理
SELECT DISTINCT a1 FROM aa    


表连接
内连接:查询时,把能够公共匹配的数据完全查询出来。
    FROM e, d WHERE e.id = d.id
    标准: FROM e JOIN d ON e.id = d.id

外连接:不完全匹配
  左连接:  FROM e JOIN d ON e.id = d.id(+)
    左边数据全部显示,右边匹配不上的部分用空值代替
  右连接:  FROM e JOIN d ON e.id(+) = d.id
    (同理左连接)


子查询
    无关子查询
    相关子查询

EXISTS():    根据子查询返回是否存在数据来决定父查询。

UNION:        将多个查询出来的信息行整合成一个结果集。
  SELECT eid, ename FROM e
  UNION
  SELECT id, name FROM d
  ps.UNION 查询出来的重复记录不会显示,UNION ALL 则显示全部(包括重复的)。

INTERSECT:    返回查询出来信息行的交集,Oracle 独有。

利用查询结果批量更新:
  INSERT INTO e(eid, ename) SELECT id, name FROM d
或者利用查询结果创建新表:
  CREATE TABLE ttt AS ttt (SELECT * FROM e)


附加:

1、SQL 简介



2、SQL 操作符



3、Oracle 常用数据类型



4、Oracle 函数


5、[转] Oracle 常用SQL语法和数据对象

数据控制(DML)

 

数据定义(DDL)

 

查询语句(SELECT)

 

ORACLE里常用的数据对象

 

权限管理(DCL)

--------------------------------------------------------------------------------

简单查询

 

分组查询语句

 

连接查询

 

子查询

 

DDL,DML 中的子查询

-----------------------------------------------------------------------------------

SQL 语句分析

 

SQL 优化法则

 

posted @ 2017-02-15 16:17  一怒成仙  阅读(226)  评论(0编辑  收藏  举报