ORACLE中SQL语句总结

常用的一些数据库SQL操作

参考链接:https://www.w3school.com.cn/sql/index.asp
说明:
1:虽然SQL不区分大小写,个人偏向全部大写。部分表名,列名和值用原本的写法。
2:不缩写,比如AS关键字。
3:结尾写’;’

具体关键字有
INSERT
DELETE
CASE
UNION
ORDER BY
GROUP BY
HAVING
FULL JOIN
EXISTS
不用JOIN的两表关联
WHERE+IN
DELETE+WHERE+IN

INSERT

模板1:INSERT INTO TABLE_NAME (column1,column2) VALUES(value1, value2);

模板2:INSERT INTO TABLE_NAME1 (column1,column2) (SELECT column1, column2 FROM TABLE_NAME2);

例子1:INSERT INTO Persons VALUES (‘Gates’, ‘Bill’, ‘Xuanwumen 10’, ‘Beijing’);

例子2:INSERT INTO Persons (LastName, Address) VALUES (‘Wilson’, ‘Champs-Elysees’);

数据库参考:https://www.w3school.com.cn/sql/sql_insert.asp

DELETE

例子:DELETE FROM Person WHERE LastName = ‘Wilson’;

数据库参考:https://www.w3school.com.cn/sql/sql_delete.asp

CASE

模板:SELECT
(CASE WHEN column1 = ’ ’ THEN
WHEN column1 = ’ ’ THEN ELSE ‘’ END)
AS ’ ’ FROM TABLE_NAME1;

例子:SELECT CITY,
(CASE WHEN CITY=”上海” THEN ‘SH’
WHEN CITY=”武汉” THEN ‘WH’ ELSE ‘NULL’ END)
AS ABBR FROM USER;

注1:’ ’ 表示里面需要填参数。但是不够理解。所以应该写的不标准。
注2:没有缩写默认为NULL
注3:缩写英文名为Abbreviation,这里缩写成ABBR。

UNION

一句话说明:用来合并两个或多个 SELECT 语句的结果集。

例子:SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA;

注:和UNION ALL区别是,UNION ALL会显示所有信息,包括重复。UNION会覆盖重复信息,只保留一条。

数据库参考:https://www.w3school.com.cn/sql/sql_union.asp

ORDER BY

例子:SELECT Company, OrderNumber FROM Orders ORDER BY Company;

注:ORDER BY默认升序排列,就是从A到Z排序。可以加’DESC’关键字,来实现Z到A排序。
比如SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC;

数据库参考:https://www.w3school.com.cn/sql/sql_orderby.asp

GROUP BY

一句话说明:结果集进行分组。

例子:SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer;

数据库参考:https://www.w3school.com.cn/sql/sql_groupby.asp

HAVING

一句话说明:WHERE 关键字无法在SUM函数中使用。HAVING起到了WHERE的筛选作用。

例子:SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000;

数据库参考:https://www.w3school.com.cn/sql/sql_having.asp

FULL JOIN

一句话说明:两个表JOIN理解为两个圈相交。取两个圈的全部内容。

模板:SELECT FORM FULL JOIN ON ’ ‘=’ ’ ORDER BY;

例子:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName;

注1:其他的JOIN和FULL JOIN查不到。这里不提了。
注2:ORDER BY默认升序排列,就是从A到Z排序。可以加’DESC’关键字,来实现Z到A排序。

数据库参考:https://www.w3school.com.cn/sql/sql_join_full.asp

EXISTS

一句话说明:显示子查询结果。

例子:SELECT * FROM a WHERE EXISTS(SELECT id FROME a WHERE name=‘a’);

注:对于单个EXISTS,子查询返回null,则结果为null。子查询非null,则查询显示输出结果。

数据库参考:https://www.cnblogs.com/lvcha001/p/10312870.html

不用JOIN的两表关联

一句话说明:JOIN被WHERE中的’='替代。

例子:SELECT a.* FROM ttrd_accounting_secu_obj AS a, ttrd_accounting_secu_obj_his AS b
WHERE a.tsk_id = b.tsk_id;

注:自己理解是这里的’='只能起到INNER JOIN的作用。

数据库参考:无

WHERE+IN

一句话说明:条件多值查询。

例子:SELECT * FROM Persons WHERE LastName IN (‘Adams’,‘Carter’);

数据库参考:https://www.w3school.com.cn/sql/sql_in.asp

DELETE+WHERE+IN

说明:目前没有人教过可以这样写。是我自己学完WHERE+IN可以实现多值操作。那么理论上WHERE+IN还可以和别的关键字组合形成批量操作。比如和DELETE组合。实现多行删除。

例子:DELETE FROM Person WHERE LastName in (‘Wilson’ ,‘Gates’);

数据库参考:https://www.w3school.com.cn/sql/sql_in.asp

后记

写的仓促,一天内整理完知识后,马上写完了博客。有错误请指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值