--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小时内删除。
发表评论