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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

数据库——DQL(语句查询)

發(fā)布時間:2024/6/21 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 数据库——DQL(语句查询) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

查詢的基本結(jié)構(gòu):

  概念:

    查詢(DQL)是數(shù)據(jù)庫中最為常用和復(fù)雜的一種SQL結(jié)構(gòu),學(xué)會編寫查詢SQL是程序員必須具備的能力。

    要從數(shù)據(jù)庫中查詢數(shù)據(jù),我們要使用SQL的SELECT語句。標(biāo)準(zhǔn)SELECT查詢由SELECT子句、FROM子句、WHERE子句、ORDER BY子句組成。

    標(biāo)準(zhǔn)結(jié)構(gòu):SELECT [DISTINCT] {*|列名[別名], .....}

         FROM 表名

         [WHERE 過濾條件]

         [ORDER BY 列1,列2....]

  投影操作:

    概念:投影才做是查詢語句里必須有的子句,關(guān)鍵字則為SELECT。將選擇對表中哪些列進行操作,將這些列出現(xiàn)在結(jié)果中。

    標(biāo)準(zhǔn)結(jié)構(gòu):SELECT 列1,列2 FROM 表名

    書寫方法:

      1.如果選擇某個表中的多個列,那么列名之間用逗號分隔;

      2.如果是單個列,只需要列出該列的列名即可;

      3.如果選擇所有的列,可以簡單的用“*”號代替列名列表。

        

    例: Select f_name,f_club from t_player

       Select * from t_team; // *表示代表所有的列(不建議使用,要全寫)

    表前綴:SELECT t_student.姓名 FROM t_sudent

      例:Select t_team.f_teamName from t_ team;

    列別名:使用別名,可以使SQL語句和返回的數(shù)據(jù)更用以讀懂、更容易理解。在多個表中有同樣的別名的時候,使用別名更容易區(qū)分;

        在列名或表名用AS關(guān)鍵字類提供別名;

      語法:SELECT 列A AS A,列B AS B,列C AS C FROM 表名 AS T

        當(dāng)使用表名的別名時,可以在同一SQL語句中的列名使用別名;

       例:SELECT T.列A AS A, T.列B AS B,T.列C AS C FROM 表名 AS T

         Select f_name as id,f_club from t_player; //as id表示別名

    計算列:在數(shù)據(jù)庫管理中,我們也可以執(zhí)行返回計算列的SELECT查詢。返回計算列意味著數(shù)據(jù)不存在與數(shù)據(jù)庫中,但是可以沖數(shù)據(jù)庫中的數(shù)據(jù)構(gòu)造或者計算的來;

      例:將每個學(xué)生年齡加上10歲顯示:

        SELECT 年齡+10 FROM t_student

    CONCAT函數(shù):做字符串拼接

      投影列也可以用字符串連接,MySQL中字符串連接用CONCAT函數(shù),

      例:SELECT CONCAT(姓名,‘-’,年齡) FROM t_student

        Select concat (f_teamCoach,’是’,f_teamName,’的主教練’) as 描述,f_teamNum as 球員數(shù) from t_team;

    排除重復(fù)數(shù)據(jù):數(shù)據(jù)庫表的同列中,經(jīng)常有相同值,多次出現(xiàn)。有時需喲啊確保返回唯一的數(shù)據(jù)行,這時需要使用DISTINCT關(guān)鍵字來排除重復(fù)的行數(shù)據(jù)。

           標(biāo)準(zhǔn)結(jié)構(gòu):SELECT DISTINCT 列1 FROM 表名

                SELECT DISTINCT 性別 FROM t_student

    返回限定行數(shù)的查詢:在MySQL中可以限制查詢的行數(shù),并制定從第幾行開始到第幾行結(jié)束。

              標(biāo)準(zhǔn)結(jié)構(gòu):SELECT 列1,列2 FROM t_student LIMIT 開始序號,返回的行數(shù)

                 例:Select * from t_player limit 0,50; //查看從0行開始

                   如果用1個參數(shù),則表示從第一行開始返回制定行數(shù)的結(jié)果。

                   如果用2個參數(shù),則表示從指定行開始返回知道那個行數(shù)的結(jié)果。

                   注:LIMIT序號是從0開始。LIMIT只能用于MySQL中。

  簡單查詢中的選擇操作:

    WHERE關(guān)鍵字:

    運算符:

          

    單條件選擇操作:WHERE子句應(yīng)用搜索條件SELECT查詢獲得的數(shù)據(jù),搜索條件可以采用不同的形式,但是條件的值都是布爾值。在此情況下,只對“列C = 值”為真的行干星期。如果條件為真,行就被返回;如果為假或UNKNOWN(因為null值的存在),則被忽略。

            標(biāo)準(zhǔn)結(jié)構(gòu):SELECT 列1,列2 FROM 表 WHERE 列3 = 值

               例:Select * from t_player where f_club = ‘曼聯(lián)’;

    多條件選擇操作:組合WHERE條件

            AND:并且

          標(biāo)準(zhǔn)結(jié)構(gòu):SELECT 列A,列B FROM 表 WHERE 條件1 and 條件2

             例:SELECT * FROM t_player WHERE f_dateOfBirth>='1980-1-1' AND f_dateOfBirth<='2000-1-1';

            OR:或者

          標(biāo)準(zhǔn)結(jié)構(gòu):SELECT 列A,列B FROM 表 WHERE 條件1 or 條件2

             例:SELECT * FROM t_player WHERE f_club='曼聯(lián)' OR f_club='拜仁慕尼黑';

    執(zhí)行返回測試:BETWEEN;一個范圍搜索,大于等于下限,并且小于等于上限。

      標(biāo)準(zhǔn)結(jié)構(gòu):SELECT 列A,列B FROM 表 WHERE 列C BETWEEN 下限 AND 上限

         例:Select * from t_player where f_number BETWEEN 5 and 8;

    定義集合關(guān)系:在制定的某幾個值中進行搜索

      標(biāo)準(zhǔn)結(jié)構(gòu) IN: SELECT 列A,列B FROM 表 WHERE 列C IN(值集合);

           例:Select * from t_player where f_club in ('曼聯(lián)','拜仁募集黑','ac米蘭');

      標(biāo)準(zhǔn)結(jié)構(gòu) NOTIN: SELECT 列A,列B FROM 表 WHERE 列C NOTIN(值集合);

            例:Select * from t_player where f_club not in ('曼聯(lián)','拜仁募集黑','ac米蘭'); //not 表示除了

    模糊查詢:模糊查詢是一種比較使用的過濾方式,利用通配符來實現(xiàn)模糊查詢。

      通配符:“_”通配符:_ 表示任何單個字符;

          “%”通配符:% 表示包含零個或多個任意字符

      標(biāo)準(zhǔn)結(jié)構(gòu) LIKE: SELECT 列A,列B FROM 表 WHERE 列C LIKE 模式

           例:Select * from t_player where f_club like ‘曼%’;

             Select * from t_player where f_club like ‘%米’; //% 不限定字符

             Select * from t_player where f_club like ‘_ _’; // _ 一個表示一個字符

             Select * from t_player where f_club not like ‘曼%’; //not 表示除了

    空查詢:在數(shù)據(jù)庫中判斷某列師傅為空不能用 = null,而應(yīng)該用IS null 或 IN not null。使用其它任何比較運算符來匹配null得到的都是FALSE的結(jié)果,比較null = null也是返回FALSE。注:不能用=號或!=等號表示

      例:SELECT * FROM t_student WHERE 性別 IS null

        Select * from t_player where F_club is null; //是空

        Select * from t_player where F_club is not null; //not 不是空

  簡單查詢中的排序操作:

    概念:排序操作是指當(dāng)查詢的結(jié)果投影出來后以哪一列或及列的順序進行排列。如果不指定則以數(shù)據(jù)庫默認順序排列。

     標(biāo)準(zhǔn)結(jié)構(gòu):

     單列排序:SELECT 列A,列B,列C FROM 表 ORDER BY 列A

        例:Select * from t_player ORDER BY f_date OfBirth; //ASC 升序 可不寫默認

          Select * from t_player ORDER BY f_date OfBirth DESC; // DESC 降序

      其中ORDER BY子句指定列A用于數(shù)據(jù)排序,列A的值可以是字母、數(shù)字、時間等。

     多列排序:SELECT 列A,列B,列C FROM 表 ORDER BY 列A,列B,列C....

        例:Select * from t_player ORDER BY f_dateOfBirth DESC, f_numberDESC;

          Select * from t_player wher f_dateOfBirth BETWEEN’1992-1-1’ and ‘1992-12-9’ORDER BY f_dateOfBirth DESC, f_numberDESC;

      其中ORDER BY子句后指定多個列名時,是根據(jù)后面列名的順序確定優(yōu)先級。

  小結(jié):

   基本查詢SQL的執(zhí)行順序

    1.執(zhí)行FROM

    2.WHERE條件過濾

    3.執(zhí)行SELECT投影列

    4.執(zhí)行ORDER BY排序

總結(jié)

以上是生活随笔為你收集整理的数据库——DQL(语句查询)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。