溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

基本的查詢sql語句整理

發(fā)布時間:2021-09-17 17:06:53 來源:億速云 閱讀:203 作者:chen 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹“基本的查詢sql語句整理”,在日常操作中,相信很多人在基本的查詢sql語句整理問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”基本的查詢sql語句整理”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

基本的查詢sql語句

一、概述:

    學習MySQL數(shù)據(jù)庫中一定要學會sql的查詢功能,說白了,使用數(shù)據(jù)庫就是存儲數(shù)據(jù),查詢數(shù)據(jù),使用這些數(shù)據(jù)的一個過程。只有查看了才知道我們是否存儲成功,是否可以直接使用這些數(shù)據(jù)。

二、具體的sql

    1、查詢數(shù)據(jù)庫的基本語法:

        select 需要查詢的字段名和內(nèi)容
        from  指定相關(guān)的表名
        where  查詢時所需要的條件
        group by  如何對結(jié)果分組
        order by  如何對結(jié)果瓶排序
        having   查詢時滿足的第二個條件
        limit 限定查詢輸出的結(jié)果

    (一):單表查詢

        1、查詢所有字段

        select * from 表名;

        2、查詢指定字段

        select 字段名  from 表名;

        3、查詢指定數(shù)據(jù)

        select  *  from  表名  where 條件;

        4、帶“in”關(guān)鍵字的查詢

         select  *  from  表名  where 條件  [not] IN(元素1,...元素n);
         譯:not:是一個可選參數(shù),加上not表示不在集合內(nèi)滿足條件
             元素:表示集合中的元素,各元素之間用逗號分開

        5、帶“Between  And”的范圍查詢

          select * from 表名 where 條件 [not] between 取值1  and 取值2;   
          譯:not:是一個可選參數(shù),表示不在指定范圍內(nèi)滿足條件
              取值1:表示范圍的起始值
              取值2:表示范圍的終止值

        6、帶“l(fā)ike”的字符匹配查詢【實現(xiàn)模糊查詢】

            like字符來實現(xiàn)模糊查詢,一般在我們網(wǎng)頁的搜索、檢索等部分就要使用到模糊查詢
            而使用的兩種通配符:“%”和“_”兩個。
            “%”:可以匹配一個或多個字符,可以代表任意長的字符串
            “_”:只匹配一個字符,如m_n;以m開頭,n結(jié)尾的3個字符
          select * from 表名 where 條件  like ‘%a’;
          譯:查詢這個表中包含a字符的所有數(shù)據(jù)。

        7、帶“And”的多條件查詢

          select * from 表名  where 條件1 and 條件2;
          譯:使用and關(guān)鍵字連接多個條件

        8、帶“Or”的多條件查詢

          select * from 表名 where 條件1 or 條件2;
           譯:只要滿足條件的其中之一都會被查詢到

        9、使用“distinct”關(guān)鍵字取消重復的數(shù)據(jù)

          select distinct 字段名 from 表名;
            譯:取消查詢結(jié)果中重復的記錄行

        10、使用“order by”關(guān)鍵字排序

          select * from 表名 order by [asc][desc];
            譯:order by:是指使用什么方式來排序
                asc:是指“升序”排序
                desc:是指“降序”排序

        11、使用“group by”關(guān)鍵字分組

           select 字段1,字段2,... from  表名  group by 某個字段1或字段2分組查;
            同時還可以多個字段進行分組

        12、使用“l(fā)imit”限制查詢結(jié)果的數(shù)量

           select * from order by asc  limit 3;
            譯:查詢的結(jié)果顯示前3條記錄

    (二)聚合函數(shù)查詢

        1、使用“count()”函數(shù)

          select count(*) from 表名;
          譯,統(tǒng)計表中所有的記錄

        2、使用“sum()”函數(shù)

          select sum(row) from 表名;
          譯:求出表中行的總數(shù)。

        3、使用“avg()”函數(shù)

          select avg(row) from 表名;
          譯:求出表中行的一個平均值

        4、使用“max()”函數(shù)

          select max(row) from 表名;
          譯:查詢表中row字段的最大值

        5、使用“min()”函數(shù)

          select min(row) from 表名;
          譯:查詢表中row字段的最小值

    (三)連接查詢

        1、內(nèi)連接查詢

          select 字段1,字段2,字段3 from 表名1,表名2 where 表名1.字段1=表名2.字段2;
        實現(xiàn)表與表之間的連接查詢就是要確定兩張表中都有相同的字段名。

        2、外連接查詢

             外連接與內(nèi)連接不同,外連接時指使用“outer join”關(guān)鍵字將兩張表連接起來。

          分為左外連接“l(fā)eft join”、右外連接“right join”、全連接3種類型

        語法:

        select 字段名稱 from 表名1 left/right join 表名2 on 表名1.字段1=表名2.字段2;

         2.1、左外連接“l(fā)eft join”

            左外連接:是指將左表的所有數(shù)據(jù)分別于右表的每一條數(shù)據(jù)進行連接組合,返回的結(jié)果除內(nèi)連接的數(shù)據(jù)外,還包括左表中不符合的數(shù)據(jù),并在右表的相應(yīng)列中添加null值。

        select 字段名稱 from 表名1 left join 表名2 on 表名1.字段1=表名2.字段2;

         2.2、右外連接“right join”

            右外連接是指將右表中的所有數(shù)據(jù)分別于左表中的每一條數(shù)據(jù)進行連接組合,返回的結(jié)果除內(nèi)連接的數(shù)據(jù)外,還包括右表中不符合的條件的數(shù)據(jù),并在左表的相應(yīng)列中添加null值。

        select 字段名稱 from 表名1 right join 表名2 on 表名1.字段1=表名2.字段2;

        2.3、交叉連接“cross join”:笛卡爾積

        select * from 表1 cross join 表2

    (四)子查詢

        子查詢:就是select查詢是另一個查詢的附屬。什么是附屬關(guān)系,就是一個查詢語句查詢出來的結(jié)果是為第二個查詢的一個條件或一個基礎(chǔ)、前提等、只有當它查詢出來以后才能夠查詢出第二個的結(jié)果。

        1、帶“in”關(guān)鍵字的子查詢

        使用in運算符是可以檢測結(jié)果集中是否存在某個特定的值,如果檢測成功就執(zhí)行外部查詢語句。

        select * from 表名1 where 字段1 in(select 字段1 from 表名2);
        譯:查詢表1的所有記錄,但是字段1必須要在表2中出現(xiàn)過。

        2、帶比較運算符的子查詢

        子查詢使用運算符是比較平凡的,包括“=、!=、> 、< 、>=、<=”

        

        3、帶“exists”關(guān)鍵字的子查詢

        使用exists關(guān)鍵字時,內(nèi)層查詢語句不返回查詢的記錄,而是返回的是一個真假值。

        select * from 表名1 where exists (select * from 表名2 where 字段名);
        譯:使用子查詢查詢表2中對否存在某個限定條件的數(shù)據(jù),如果有,執(zhí)行外層的查詢數(shù)據(jù),
            如果沒有,就只執(zhí)行內(nèi)層的查詢數(shù)據(jù)

         4、帶“any”關(guān)鍵字的字查詢

            使用any關(guān)鍵字是指只要滿足其中任意一個條件,就可以通過改條件來執(zhí)行外層的查詢語句。

         5、帶“all”關(guān)鍵字的子查詢

            使用all關(guān)鍵字是指內(nèi)層的查詢語句都必須要滿足所有的條件,使用all關(guān)鍵字時,只有滿足內(nèi)層查詢的所有條件才能夠執(zhí)行外層查詢。

    (五)合并查詢結(jié)果

        合并查詢結(jié)果是將多個select語句查詢的結(jié)果合并在一個。         

        1、使用“union”關(guān)鍵字

            select * from 表1
            union
            select * from 表2;

        使用union關(guān)鍵字是將查詢出來的結(jié)果合并在一個,然后去除相同的、重復的記錄。

        2、使用“union all”關(guān)鍵字

            select * from 表1
            union all
            select * from 表2;

        使用union all關(guān)鍵字只是將結(jié)果合并在一個,不取消重復的記錄。

   (六)定義表和字段的別名

        1、定義表的別名

        select * from 表名1 a  where a . 字段1;
        譯、定義的這個 a 就是表的別名,可以減少寫表名的時間。

        2、定義字段的別名

            基本形式:字段名 [AS] 別名

        select 字段1  as  A ,字段2  as  B  from  表名;

    (七)使用正則表達式查詢

           基本形式:字段名 regexp ‘匹配方式’

        1、模式字符

       模式字符                    含 義
           ^匹配以特定字符或字符串開頭的記錄
           $匹配以特定字符或字符串結(jié)尾的記錄
           .匹配字符串的任意一個字符,包括回車和換行
          []匹配字符集合中的任意一個字符
          [^ ]匹配除字符集合以外的任意一個字符
          s1|s2|s3匹配其中任意一個字符
          *匹配多個該符號之前的字符,包括1和0個
         字符串{N}匹配字符串出現(xiàn)N次
          +匹配多個該字符之前的字符,包括1個
         字符串{M,N}匹配字符串出現(xiàn)至少M次,最多N次

到此,關(guān)于“基本的查詢sql語句整理”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

sql
AI