-- ORACLE SQL常用 关键字_oracle所有关键字的作用-程序员宅基地

技术标签: oracle  笔记  数据仓库  数据库  sql  

(特殊的命令,写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    存储过程
--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    :补集
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_58871547/article/details/123319605

智能推荐

AVFrame&AVPacket_天天av-程序员宅基地

文章浏览阅读1.5w次。AVFrame:( This structure describes decoded (raw) audio or video data. AVFrame must be allocated using av_frame_alloc(). Note that this only allocates the AVFrame itself, the buffers for the data mus_天天av

Java经典例题07:用100元人民币兑换10元、5元、1元的纸币_编程把100元换成1元5元10元-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏12次。解题思路分析:1.100元兑换10元纸币,可以兑换10张,但每种纸币都要有,所以最多只能兑换9张,最少兑换1张。则初始值为1;循环条件小于10或者小于等于9。2.100元兑换5元纸币,可以兑换20,但每种纸币都要有,所以最多只能兑换19张,最少兑换1张。初始值为1;循环条件小于20或者小于等于19。3.100元兑换1元纸币,可以兑换100张,但每种纸币都要有,所以最多只能兑换99张,最少兑换1张。则初始值为1;循环条件小于100或者小于等于99。_编程把100元换成1元5元10元

猜三次年龄_找人猜三次年龄-程序员宅基地

文章浏览阅读450次。1、允许用户最多尝试三次2、每尝试三次后,如果还没猜对,就问用户是否继续玩,如果回答Y,y,就继续猜三次,以此往复,如果回答N,n,就直接退出times=0count=3while times<=3:age=int(input(‘请输入年龄:’))if age == 18:print(‘猜对了’)breakelif age > 18:print(‘猜大了’)else:print(‘猜小了’)times+=1if times3:choose = input(‘继续猜Y_找人猜三次年龄

SDOI2017 Round2 详细题解-程序员宅基地

文章浏览阅读152次。这套题实在是太神仙了。。做了我好久。。。好多题都是去搜题解才会的 TAT。剩的那道题先咕着,如果省选没有退役就来填吧。「SDOI2017」龙与地下城题意丢 \(Y\) 次骰子,骰子有 \(X\) 面,每一面的概率均等,取值为 \([0, X)\) ,问最后取值在 \([a, b]\) 之间的概率。一个浮点数,绝对误差不超过 \(0.013579\) 为正确。数据范围每组数据有 \...

嵌入式数据库-Sqlite3-程序员宅基地

文章浏览阅读1.1k次,点赞36次,收藏25次。阅读引言: 本文将会从环境sqlite3的安装、数据库的基础知识、sqlite3命令、以及sqlite的sql语句最后还有一个完整的代码实例, 相信仔细学习完这篇内容之后大家一定能有所收获。

C++ Builder编写WinForm从Web服务器下载文件-程序员宅基地

文章浏览阅读51次。UnicodeString templateSavePath = ChangeFileExt(ExtractFilePath(Application->ExeName),"tmp.doc");IdAntiFreeze1->OnlyWhenIdle = false;//设置使程序有反应.TMemoryStream *templateStream ;templateStre..._c++webserver下载文件

随便推点

JAVA小项目潜艇大战_java潜艇大战-程序员宅基地

文章浏览阅读8.3k次,点赞10次,收藏41次。一、第一天1、创建战舰、侦察潜艇、鱼雷潜艇、水雷潜艇、水雷、深水炸弹类完整代码:package day01;//战舰public class Battleship { int width; int height; int x; int y; int speed; int life; void move(){ System.out.println("战舰移动"); }}package day01;//侦察潜艇_java潜艇大战

02表单校验的基本步骤-程序员宅基地

文章浏览阅读940次。表单校验的基本步骤_表单校验

libOpenBlas.dll缺失依赖解决办法-程序员宅基地

文章浏览阅读4.5k次。libOpenBlas.dll缺失依赖解决办法 intellij idea 1.dll文件缺失依赖,报错:“找不到指定模块”2.下载depends查看dll缺失文件3.下载缺失依赖libopenblas.dll出错起因由于java web项目需要调用openBlas库来进行运算,就下载了预编译的libopenblas文件进行调用,首先遇到路径出错问题、之后又是dll文件缺失依赖问题,以下是解决..._libopenblas.dll

Swoole 实践篇之结合 WebSocket 实现心跳检测机制-程序员宅基地

文章浏览阅读251次,点赞3次,收藏10次。这里实现的心跳检测机制是一个基础版的,心跳包的主要作用是用于检测用户端是否存活,有助于我们及时判断用户端是否存在断线的问题。在我之前开发过的项目中,有一个基于物联网在线直播抓娃娃的项目,其中就有需要实时监控设备在线状态的需求,该需求就是使用心跳包来实现的。实际上心跳检测技术,应用更广泛的是实时通信、或设备管理的场景偏多。

Maven dependency scope_maven dependent scope-程序员宅基地

文章浏览阅读714次。Dependency scope is used to limit the transitivity of a dependency, and also to affect the classpath used for various build tasks.There are 6 scopes available:compileThis is the default scop_maven dependent scope

TCP头部结构信息_tcp头部包含哪些信息-程序员宅基地

文章浏览阅读3.6k次。TCP 头部结构信息_tcp头部包含哪些信息