日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL高级语法学习总结(一)

發布時間:2023/12/8 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL高级语法学习总结(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基礎語法呢,就是簡單的對行列進行增刪改查,看上一篇。SQL基礎語法學習總結,高級用法無非是條件更多,能實現的需求更多,其中涉及到非常多的關鍵字,本篇博客就進行一下總結。本文所有用法均在mysql環境下測試通過。其他數據庫可能某些關鍵字會有不同。

SQL SELECT LIMIT 子句

?

SELECT LIMIT 子句用于規定要返回的記錄的數目。

SELECT LIMIT 子句對于擁有數千上萬條記錄的大型表來說,是非常有用的。

SELECT column_name(s) FROM table_name LIMIT number;

SQL LIKE 語法

SELECT?column_name(s) FROM?table_name WHERE?column_name?LIKE?pattern;

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SQL 通配符

在 SQL 中,通配符與 SQL LIKE 操作符一起使用。

SQL 通配符用于搜索表中的數據。

在 SQL 中,可使用以下通配符:

通配符描述
%替代 0 個或多個字符
_替代一個字符

通配符可用于替代字符串中的任何其他字符。

SELECT * FROM table_name WHERE column_name?LIKE 'pattern%';

查詢出以pattern開頭的數據。

SELECT * FROM table_name WHERE column_name?LIKE 'pattern_';

查詢出以pattern開頭,任意一個字符結尾的數據。

SQL IN 語法

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

IN 操作符允許您在 WHERE 子句中規定多個值。

SQL BETWEEN 語法

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

BETWEEN 操作符選取介于兩個值之間的數據范圍內的值。這些值可以是數值、文本或者日期。

SQL 別名

列的 SQL 別名語法

SELECT?column_name?AS?alias_name FROM?table_name;

表的 SQL 別名語法

SELECT?column_name(s) FROM?table_name?AS?alias_name;

通過使用 SQL,可以為表名稱或列名稱指定別名。

基本上,創建別名是為了讓列名稱的可讀性更強。

SQL JOIN

SQL JOIN 子句用于把來自兩個或多個表的行結合起來,基于這些表之間的共同字段。

最常見的 JOIN 類型:SQL INNER JOIN(簡單的 JOIN)。 SQL INNER JOIN 從多個表中返回滿足 JOIN 條件的所有行。

不同的 SQL JOIN

四種不同的 SQL JOIN 類型:

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

SQL INNER JOIN 語法

SELECT?column_name(s) FROM?table1 INNER JOIN?table2 ON?table1.column_name=table2.column_name;

或:

SELECT?column_name(s) FROM?table1 JOIN?table2 ON?table1.column_name=table2.column_name;

INNER JOIN 關鍵字在表中存在至少一個匹配時返回行。注意:INNER JOIN 與 JOIN 是相同的哦。便于理解,邏輯關系如下圖,簡單的來說就是返回相交的部分。

SQL LEFT JOIN 語法

SELECT?column_name(s) FROM?table1 LEFT JOIN?table2 ON?table1.column_name=table2.column_name;

或:

SELECT?column_name(s) FROM?table1 LEFT OUTER JOIN?table2 ON?table1.column_name=table2.column_name;

LEFT JOIN 關鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結果為 NULL。便于理解,邏輯關系如下圖,簡單來說就是返回整個左表,右表沒有的話會返回NULL。

SQL RIGHT JOIN 語法

SELECT?column_name(s) FROM?table1 RIGHT JOIN?table2 ON?table1.column_name=table2.column_name;

或:

SELECT?column_name(s) FROM?table1 RIGHT OUTER JOIN?table2 ON?table1.column_name=table2.column_name;

RIGHT JOIN 關鍵字從右表(table2)返回所有的行,即使左表(table1)中沒有匹配。如果左表中沒有匹配,則結果為 NULL。便于理解,邏輯關系如下圖,剛好和LEFT JOIN 是相反的。

SQL FULL OUTER JOIN 語法

SELECT?column_name(s) FROM?table1 FULL OUTER JOIN?table2 ON?table1.column_name=table2.column_name;

FULL OUTER JOIN 關鍵字只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行.FULL OUTER JOIN 關鍵字結合了 LEFT JOIN 和 RIGHT JOIN 的結果。便于理解,邏輯關系如下,簡單來說就是返回兩個表的所有數據。

SQL UNION 操作符

SQL UNION 語法

SELECT?column_name(s)?FROM?table1 UNION SELECT?column_name(s)?FROM?table2;

注釋:默認地,UNION 操作符選取不同的值。如果允許重復的值,請使用 UNION ALL。

SQL UNION ALL 語法

SELECT?column_name(s)?FROM?table1 UNION ALL SELECT?column_name(s)?FROM?table2;

注釋:UNION 結果集中的列名總是等于 UNION 中第一個 SELECT 語句中的列名。

UNION 操作符用于合并兩個或多個 SELECT 語句的結果集。

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

SQL INSERT INTO SELECT 語法

我們可以從一個表中復制所有的列插入到另一個已存在的表中:

INSERT INTO?table2 SELECT * FROM?table1;

或者我們可以只復制希望的列插入到另一個已存在的表中:

INSERT INTO?table2 (column_name(s)) SELECT?column_name(s) FROM?table1;

通過 SQL,可以從一個表復制信息到另一個表。

INSERT INTO SELECT 語句從一個表復制數據,然后把數據插入到一個已存在的表中。

貌似寫起來東西有點多,我就分成兩篇文章來寫,看到這想接著看的點下面的標題。

總結

以上是生活随笔為你收集整理的SQL高级语法学习总结(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。