[TOC]
排序 ORDER BAY 合并 GROUP BY
oracle分頁(yè)
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
插入
INSERT INTO table_name
(column1,column2,column3,...) -- 列名
VALUES
(value1,value2,value3,...) -- 列內(nèi)容
更新
UPDATE table_name
SET column1=value1,column2=value2
WHERE some_column=some_value --若無(wú)約束條件,屬于該列的所有內(nèi)容都將被修改
刪除
DELETE FROM table_name
WHERE some_column=some_value --若無(wú)約束條件,表將被清空
查詢(xún)
- 通配符
通配符 | 描述 |
---|---|
% | 替代0個(gè)或多個(gè)字符 |
_ | 替代一個(gè)字符 |
[charlist] | 字符列中的任何單一字符 |
[ ^charlist] or [ !charlist] | 不在字符列中的任何單一字符 |
?
-
去重 DISTINCT
SELECT DISTINCT * -- DISTINCT 去重 FROM table_name
?
-
排序 ORDER BY
SELECT * FROM table_name -- ASC|DESC : 升序|降序(默認(rèn)升序) ORDER BY column_name ASC|DESC,column_name ASC|DESC;
排序能以先后順序設(shè)定排序的優(yōu)先級(jí),并能獨(dú)立進(jìn)行升/降序排列。
?
-
連接 JOIN
SQL JOIN 子句用于把來(lái)自?xún)蓚€(gè)或多個(gè)表的行結(jié)合起來(lái)蓬坡,基于這些表之間的共同字段溪王。
-
INNER JOIN:如果表中有至少一個(gè)匹配,則返回行
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;
SQL INNER JOIN
-
-
LEFT JOIN:即使右表中沒(méi)有匹配睦疫,也從左表返回所有的行
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;
SQL LEFT JOIN
-
RIGHT JOIN:即使左表中沒(méi)有匹配,也從右表返回所有的行
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name;
SQL RIGHT JOIN
-
FULL JOIN:只要其中一個(gè)表中存在匹配鞭呕,則返回行
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name
SQL FULL OUTER JOIN?
-
GROUP BY : 合并
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
GROUP BY 語(yǔ)句用于結(jié)合聚合函數(shù)蛤育,根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組。
****aggregate_function() :**** 函數(shù)集
?
- ###HAVING : 篩選分組后的各組數(shù)據(jù)
```mysql
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;
在 SQL 中增加 HAVING 子句原因是葫松,WHERE 關(guān)鍵字無(wú)法與聚合函數(shù)一起使用。
函數(shù)
-
AVG() 返回?cái)?shù)值列的平均值腋么。
-- 下面的 SQL 語(yǔ)句從 "Products" 表的 "Price" 列獲取平均值: SELECT AVG(Price) FROM Products
-- 下面的 SQL 語(yǔ)句選擇價(jià)格高于平均價(jià)格的 "ProductName" 和 "Price" 記錄: SELECT ProductName, Price FROM Products WHERE Price>(SELECT AVG(Price) FROM Products)
?
-
COUNT() 返回匹配指定條件的數(shù)量
--COUNT(column_name) 函數(shù)返回指定列的值的數(shù)目(NULL 不計(jì)入): SELECT COUNT(column_name) FROM table_name;
--COUNT(*) 函數(shù)返回表中的記錄數(shù): SELECT COUNT(*) FROM table_name;
-- COUNT(DISTINCT column_name) 函數(shù)返回指定列的不同值的數(shù)目: SELECT COUNT(DISTINCT column_name) FROM table_name;
?
-
MAX() | MIN() 返回指定列的最大|最小值咕娄。
SELECT MAX|MIN(column_name) FROM table_name;
?
-
SUM() 返回?cái)?shù)值列的總數(shù)。
SELECT SUM(column_name) FROM table_name;
操作符
-
LIKE : 模糊搜索
SELECT * FROM table_name WHERE column_name LIKE pattern; -- 例: LIKE '%李%'
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式党晋。
?
-
IN
SELECT * FROM table_name WHERE column_name IN (value1,value2) -- IN 后可接table
IN 操作符允許您在 WHERE 子句中規(guī)定多個(gè)值谭胚。
?
-
BETWEEN : 兩值之間
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
BETWEEN 操作符選取介于兩個(gè)值之間的數(shù)據(jù)范圍內(nèi)的值。這些值可以是數(shù)值未玻、文本或者日期灾而。
?
-
UNION : 合并
SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
UNION 操作符用于合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果集。