--ORACLESQL常⽤关键字(特殊的命令,写SQL的时候这些命令会变⾊ 或者 是⼀些特定的⽤法)
-- SQL执⾏顺序的⼏个关键字
约束是实施引⽤完整性的重要部分;
索引可改善数据检索的性能;
触发器可以执⾏运⾏前后的处理;
安全选项可以⽤来管理数据访问;
#(⼀)查询顺序
SELECT      查询列表      7
FROM        表1 别名      1
INNER JOIN  表2 别名      2
ON          连接条件      3
WHERE      筛选条件      4
GROUP BY    分组条件      5
HAVING      筛选条件      6
ORDER BY    排序          8
LIMIT      起始,索引    9
SQL Select语句完整的执⾏顺序:
1、from⼦句组装来⾃不同数据源的数据;
2、where⼦句基于指定的条件对记录⾏进⾏筛选;
3、group by⼦句将数据划分为多个分组;
4、使⽤聚集函数进⾏计算;
5、使⽤having⼦句筛选分组;
6、计算所有的表达式;
7、使⽤order by对结果集进⾏排序
--- 聚合函数
MAX()    求最⼤值
MIN()    求最⼩值
AVG()    求平均值
COUNT()  求统计个数
SUM()    求和
--- 转换函数的关键字
--⽂本,数字,⽇期的转换
TO_CHAR()
TO_DATE()
TO_NUMBER()
-- 其他函数的关键字
CASE      例⼦ ,案例
WHEN      当 .. 的时候
THEN      那么 ,则..
END      结束, 结尾
DECODE()  ORACLE特有的函数 ,主要做 等值判断 ,功能类似 CASE WHEN
NVL      给“NULL”赋值  NVL(A1,A2),A1 为NULL,返回A2,不为空返回A1;
NVL2(A1,A2,A3) A1为NULL时,返回A3,不为NULL返回A2;
LENGTH ()  表⽰字符串长度
LENGTHB()  表⽰字符串的字节长度
--- 分析函数
MAX()OVER(PARTITION BY A ORDER BY B)
OVER()  分析函数的标志性命令
PARTITION  BY    分组
ORDER BY        在分析函数中 可以排序 + /*累计计算 */
LAG()            前N个
LEAD()          后N个
ROW_NUMBER()    数字排序不考虑并列                --------------    1,2,3,4
RANK()          排序,排名考虑并列 ,并且相同排名的下⼀个 空出排名  1,2,2,4
DENSE_RANK()    排序,排名考虑并列 ,相同排名的下⼀个不会空出排名  1,2,2,3
-
- PLSQL 部分
CREATE      创建
OR          或
REPLACE      替换 ,更新
--PROCEDURE    存储过程
oracle四舍五入--FUNCTION    函数
IS /  AS    是... / 像...
BEGIN        开始
END          结尾
--CURSOR      游标
OPEN        打开
CLOSE        关闭
FETCH        赋值
EXIT        退出
--EXISTS    EXISTS(⼦查询语句):判断⼦查询是否有结果返回,如果有,
则返回外部SELECT语句中的相应结果,如果没有,则不返回
性能优于IN
SELECT *
FROM EMP
WHERE EXISTS (SELECT 1 FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO)--WHERE E.ENAME=D.DNAME); TRUE        布尔值,真 ;
FALSE        布尔值,假 ;
INTO        赋值... , ⽤变量引⽤...
LOOP        循环中的 LOOP 循环 ,这是⼀种死循环,必须在 循环内 写清楚终⽌循环的条件。
END  LOOP    结束循环
IF          条件控制的,如何 ...
ELSIF        条件控制的,或者 ...
ELSE        条件控制的,其他结果的默认值 ...
END IF      条件控制的,条件控制结束
FOR ..  LOOP 循环中的 FOR 循环  ,范围循环
WHILE .. LOOP 循环中的 WHILE 循环 ,条件循环
--EXECUTE      动态SQL的,执⾏
IMMEDIATE    动态SQL的,⽴即
/*EXECUTE IMMEDIATE'TRUNCATE TABLE 表名';
EXECUTE IMMEDIATE'DML语句';*/
--------- ORACLE中的常⽤数据类型
VARCHAR2      字符串
DATE          ⽇期
NUMBER        数字
DATA          数据
DATABASE      数据库
DATABASE LINK 数据库连接
-------常⽤的 DDL  ,DML  ,DQL  ,TCL 命令
DDL      数据库定义语⾔
CREATE    创建
DROP      删除
ALTER    修改
TRUNCATE  清空
TABLE    表
DML      数据库的管理语⾔
INSERT    插⼊
UPDATE    修改
SET      设置
DELETE    删除
DCL      数据库控制语⾔
GRANT    授予权限
REVOKE    收回权限
TCL      数据库的事务控制
COMMIT    提交事务
ROLLBACK  回滚事务
--- NULL 值 以及类似的判断
NULL            空值
IS NULL          判断为空
IS NOT NULL      判断不为空
IN              在.. 范围内
NOT IN          不在..范围内
= ANY            = 任意值
= ALL            = 全部值
BETWEEN .. AND      在 ... 到 ... 之间
NOT BETWEEN .. AND  不在 ... 到 ... 之间
LIKE            模糊查询、模糊匹配 ,像 .. ⼀样
NO LIKE          模糊查询、模糊匹配 ,不像 .. ⼀样
EXISTS          判断真或者假 ,判断函数计算结果为真 ,成⽴,有结果
NOT EXISTS      判断真或者假 ,判断函数计算结果为假 ,不成⽴,没有结果
------------定义变量
%TYPE          变量定义, 变量的数据类型
%ROWTYPE        变量定义, 变量 ⾏ 的数据类型
----------- 关联查询的关键字
INNER JOIN          内 关联
LEFT OUTER JOIN      左 外 关联
RIGHT OUTER JOIN    右 外 关联
FULL OUTER  JOIN    全 外 关联
WHERE                关联后的过滤条件 ,在 ORACLE中也是关联的关键字
ON                  关联条件的关键字 ,在SQL写法中存在,ORACLE 中没有这个关键字
-- 去重相关的关键字
GROUP BY              分组去重
ROWID                  伪列去重
DISTINCT              直接对结果集去重
UNION                  集合运算去重
ROW_NUMBER()OVER()    分析函数去重
ROWNUM                伪列 ⽤于算排名
----  数字函数
TRUNC(X,Y)  直接截取      TRUNC(888.992,2),‘2’默认从⼩数点后计数,⾸位为‘0’,‘-2’从⼩数点前计数,⾸位为‘1’ROUND()      四舍五⼊截取
POWER()      求幂
MOD()        算余数
ABS()        算绝对值
---  ⽇期函数
LAST_DAY()        取最后⼀天
ADD_MONTHS()      ⽉份 + N
MONTHS_BETWEEN()  从 .. 到 ... 之间差多少个⽉
--- 字符函数
SUBSTR(X,Y[,Z]) 字符串截取  ⾸位为1,默认从左到右顺序
substr(abcde,1)        -- abcde
substr(abcde,1,3)    -- abc
substr(abcde,2,3)    -- bcd
substr(abcde,-2,3)    -- de
substr(111.22,-3,3)    -- .22
--
INSTR(X,Y[,M,N])定位        ⾸位为1,默认从左到右顺序
--
TRUNC(X,Y)  直接截取      TRUNC(888.992,2),‘2’默认从⼩数点后计数,⾸位为‘0’,‘-2’从⼩数点前计数,⾸位为‘1’trunc(888.992, 2 )    --888.99
trunc(888.992, 1 )    --888.9
trunc(888.992, -2 )    --800
trunc(888.992, -1 )    --880
--
REPLACE()      字符串替换
LENGTH()        算字符串长度 ⼀个汉字⼀个字节
UPPER()        字符串转⼤写
LOWER()        字符串转⼩写
--- 集合运算
INTERSECT:交集
UNION    :并集,并去重
UNION ALL:并集,但不去重
MINUS    :补集

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。