Skip to content

林豬豬

個人文章或筆記

Menu
  • 首頁
  • PHP
  • MariaDB
  • Mac
  • Windows
  • Java Servlet
  • 軟體設計
  • 其他
Menu

搜尋SELECT

Posted on 2024 年 1 月 22 日
SELECT [欄位串列]
FROM [資料表名稱]
WHERE [條件式]
GROUP BY [群組欄位](組合起來群組化)
HAVING [群組條件](群組化後取出符合條件)
ORDER BY [欄位](ASC小至大/DESC大至小)
LIMIT [第幾筆],[顯示幾筆](從第幾筆資料開始顯示,並顯示N筆資料。)

特定欄位:顯示表格特定欄位。
    SELECT 欄位名稱 FROM 表名;
所有資料:顯示表格內所有資料(沒有值將顯示NULL)。
    SELECT * FROM 表格名稱;
多個欄位:表格中取得多個欄位。
    SELECT 欄位1,欄位2,欄位3 FROM 表格名稱;
排除重複:表格中取得排除重複之後的資料。(多欄位排除會變成:欄位or欄位皆為相同則排除)
    SELECT DISTINCT 欄位名稱 FROM 表格名稱;
欄位綽號:(顯示別的名稱)
    SELECT DISTINCT 欄位名稱 AS 欄位綽號 FROM 表格名稱;
陳述句順序(詳細功能看下方):
    1.FROM 尋找表格
    2.WHERE 尋找欄位
    3.GROUP BY 欄位群組化
    4.HAVING 欄位篩選(指定值或範圍
    5.ORDER BY 欄位排列
    6.SELECT 欄位顯示
SELECT使用(類似Switch):
    CASE END分歧(根據條件取的不一樣的值):例如年齡範圍,薪資範圍
        SELECT 欄位1, 欄位2,
        CASE WHEN 條件1 THEN '顯示的值'
             WHEN 條件2 THEN '顯示的值'
             WHEN 條件3 THEN '顯示的值'
             ELSE '其他範圍顯示的值'
        END AS '欄位3'
        FROM 表單名;
FROM使用:
WHERE使用(寫在WHERE後方的方法):
    搜尋符合條件的資料:
        SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 條件式 值;
        條件式:(多筆相同則更動多筆)
            SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 條件式 值 = 值;
            = 等於
            < 小於 > 大於
            <=小於等於 >=大於等於
            <>不等於
            IS NULL;是空值
            IS NOT NULL;不是空值
        多重條件式:
            SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 條件式 值 = 值 AND 條件式 值 = 值;
            AND 查詢多欄位的資料 A和B(欄位 AND 欄位)
            OR  查詢多欄位的資料 A或B
            NOT 查詢多欄位的資料 非A的資料
            IN  可查多筆資料(與這些值有一致)
                WHERE 欄位名稱 IN (值1,值2,值3)
            NOT IN 與這些值有任何一個不一致時顯示出來
            (優先順序為 NOT > AND > OR)
        運算子:
            SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 條件式 值 + 值 = 值;
            + 加
            - 減
            * 乘
            / 除
        模糊條件搜尋LIKE:
            SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 LIKE '%值%';
            %   代表0個字元以上任何字串 '___子'可搜尋出四個字結尾為子'__子_'
            _   可代表任何一個字元 '%字串'結尾一致'字串%'開頭一致'%字串%'字串內一致
            LIKE 一致的資料
            NOT LIKE 不一致的資料
        平均函數:先查詢表格欄位平均值再查詢符合的值。
            SELECT 欄位1, 欄位2 FROM 表格名稱 WHERE 欄位名稱 > (SELECT AVG(欄位名稱) FROM 表格名稱);
        查詢指定範圍 BETWEEN :
            SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 WHERE 欄位名稱 BETWEEN 直1 AND 直2;)
            字串比較大小(字母排序越後面越大,中文字元編碼順序)
ORDER使用:
    SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 ORDER BY 欄位2 DESC;
    資料表的排列,升幂和降幂。
    ORDER BY 排序鍵 DESC 降幂(大到小)
    ORDER BY 排序鍵 ASC  升幂(小到大)
    如果排序鍵相同則依照排序鍵二排序:(第一排序鍵相同時就排第二排續鍵)
        ORDER 排序鍵1 DESC 排序鍵2 ASC
    起始位置LIMIT:
        SELECT 欄位1,欄位2,欄位3 FROM 表格名稱 ORDER BY 欄位2 DESC LIMIT 0,3;
         起始位置,顯示列數 (LIMIT 0,3  0開始顯示3筆資料)
GROUP BY使用:計算欄位一同名平均。
    SELECT 欄位1,AVG(欄位2) FROM 表單名 GROUP BY 欄位1;
    HAVING匯總函數:符合條件
        SELECT 欄位1,AVG(欄位2) FROM 表單名 GROUP BY 欄位1 HAVING AVG(欄位2) >= 300000;
欄位操作:
    計算平均值或最大值:可用在SELECT後方欄位
        SELECT AVG(欄位名稱) FROM 表名;
        SUM(欄位名稱):總和
        AVG(欄位名稱):平均值
            SELECT SUM(欄位), AVG(欄位), FROM 表格名稱;
        MAX(欄位名稱):最大值
        MIN(欄位名稱):最小值
    計算欄位資料數:顯示單一值
        COUNT(欄位名稱):排除NULL欄位列數
            SELECT COUNT(欄位) FROM Emploree;
            找出符合的資料後排除NULL的人數:
                SELECT COUNT(欄位) FROM 表格名稱 WHERE 欄位 ='值';
        COUNT(*):包含NULL欄位列數
            SELECT COUNT(*) FROM Emploree;
    四捨五入:
        ROUND(欄位名,第幾位)四捨五入到小數點第幾位
            SELECT ROUND(AVG(欄位), 1) FROM 表格名稱;
    無條件捨去:
        TRUNCATE(欄位值,第幾位)無條件捨去到小數點第幾位
            SELECT TRUNCATE(AVG(欄位), 1) FROM 表格名稱;
    前補零:
        SELECT LPAD(id,7,0) AS `id` FROM `Account`;
    後補零:
        SELECT RPAD(id,6,0) AS `id` FROM `Account`;

進階:
    兩個表格合併查詢:
        過時用法(使用WHERE):合併兩表格再查詢欄位
        SELECT 表格1.欄位2, 表格2.欄位2 FROM 表格1, 表格2 WHERE 表格1.欄位1 = 表格2.欄位1;

        內部合併INNER JOIN:只顯示擁有的值。
            尋找 表格1.欄位 表格2.欄位 表格2.欄位 FROM 表格1 INNER JOIN 表格1.欄位 ON 表格2.欄位
            SELECT subjectName.id, Account.articleTitle,Account.nec_name FROM ACCOUNT INNER JOIN ACCOUNT ON subjectName.id = Account.accountId;
        外部合併OUTER JOIN:顯示內容以單側為基準,另一側則顯示空值。
            尋找 表格1.欄位 表格2.欄位 表格2.欄位 FROM 表格1 LEFT OUTER JOIN 表格1.欄位 ON 表格2.欄位
            SELECT subjectName.id, Account.articleTitle,Account.nec_name FROM ACCOUNT LEFT OUTER JOIN ACCOUNT.accountId ON subjectName.id = Account.accountId;
    子查詢:主查詢內使用的查詢就是子查詢。
        主查詢                                            (--------------子查詢--------------)
        SELECT 欄位1, 欄位2 FROM 表格名稱 WHERE 欄位名稱 > (SELECT AVG(欄位名稱) FROM 表格名稱);
            WHERE 欄位名 IN (子查詢)
                IN (子查詢) 與子查詢資料部分一致。(多筆資料)
                NOT IN(子查詢) 與子查詢資料都不一致。(多筆資料)

視圖View:視圖中的資料會隨著原表的變化自動更新,並且是唯獨狀態,無法寫入。
    建立視圖:
        CREATE VIEW 視圖名稱 AS SELECT 命令的SQL陳述式;
        範例:CREATE VIEW ViewName AS SELECT * FROM 表格名稱 WHERE 欄位1 = '值';
            SHOW TABLE;顯示是否建立完成。
    刪除試圖:
        DROP VIEW 試圖名稱;
查找相同名稱並加總欄位:
    select 名稱,sum(加總欄位) as 自訂加總名稱 from 表格名稱 group by 名稱;

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

彙整

  • 2024 年 1 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 6 月

近期文章

  • 資料控制語言DLC
  • 資料定義語言DDL
  • Laravel身份認證與Passport身分驗證套件
  • RollBack回到交易機制啟動前的狀態
  • 刪除DELETE

近期留言

  1. 「WordPress 示範留言者」於〈網站第一篇文章〉發佈留言

豬豬説:那些你所逃避的,會在你需要的時候回來賞你一巴掌。

  • GitHub
  • Instagram
  • Mail
©2025 林豬豬 | Design: Newspaperly WordPress Theme