1. 程式人生 > 其它 >SQL之常見命令整理

SQL之常見命令整理

技術標籤:資料庫面試必備mysql資料庫

UPDATE 語句用於更新表中已存在的記錄。

SQL UPDATE 語法

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
請注意 SQL UPDATE 語句中的 WHERE 子句!

WHERE 子句規定哪條記錄或者哪些記錄需要更新。如果您省略了 WHERE 子句,所有的記錄都將被更新!

DELETE 語句用於刪除表中的行。

SQL DELETE 語法

DELETE FROM table_name
WHERE some_column=
some_value;

LIMIT用於規定要返回的記錄的數目

SELECT column_name(s)
FROM table_name
LIMIT number;

萬用字元可用於替代字串中的任何其他字元。

SQL 萬用字元
在 SQL 中,萬用字元與 SQL LIKE 操作符一起使用。

SELECT * FROM Websites
WHERE url LIKE 'https%';
#選取 name 以 "G"、"F" 或 "s" 開始的所有網站
SELECT * FROM Websites
WHERE name REGEXP
'^[GFs]'; #選以A-H開頭的 SELECT * FROM Websites WHERE name REGEXP '^[A-H]';
#不以A-H開頭的
SELECT * FROM Websites
WHERE name REGEXP '^[^A-H]';

IN 操作符:在 WHERE 子句中規定多個值。

SQL IN 語法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

BETWEEN 操作符選取介於兩個值之間的資料範圍內的值。這些值可以是數值、文字或者日期。

SELECT
column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;

在使用 join 時,on 和 where 條件的區別如下:

1、 on 條件是在生成臨時表時使用的條件,它不管 on 中的條件是否為真,都會返回左邊表中的記錄。
2、where 條件是在臨時表生成好後,再對臨時表進行過濾的條件。這時已經沒有 left join 的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。

INNER JOIN(即join):如果表中有至少一個匹配,則返回行
LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN:只要其中一個表中存在匹配,則返回行



UNION 操作符用於合併兩個或多個 SELECT 語句的結果集

請注意,UNION 內部的每個 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每個 SELECT 語句中的列的順序必須相同。

#預設地,UNION 操作符選取不同的值。如果允許重複的值,請使用 UNION ALL。
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

GROUP BY 語句用於結合聚合函式,根據一個或多個列對結果集進行分組。

SQL GROUP BY 語法

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
#實力
SELECT site_id, SUM(access_log.count)
ROM access_log GROUP BY site_id;

HAVING 子句可以讓我們篩選分組後的各組資料
在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與聚合函式一起使用。

SELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log
INNER JOIN Websites
ON access_log.site_id=Websites.id)
GROUP BY Websites.name
HAVING SUM(access_log.count) > 200;