日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

SQL简单查询语句

發(fā)布時(shí)間:2025/5/22 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL简单查询语句 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.總體查詢

  select * from 表名

2.where查詢

  a.and or查詢

    select * from 表名 where? ?條件1 and 條件2? ? ?                   

    (條件1和條件2同時(shí)滿足)

    select * from 表名 where 條件1 or 條件2                     

    (條件1和條件2只要一個(gè)滿足)

    注意:and 的優(yōu)先級(jí)高于or 即:

      select * from 表名 where 條件1 or 條件2 and 條件3?               

    (優(yōu)先執(zhí)行條件2和條件3,若是要先執(zhí)行條件1和條件2的關(guān)系,則加一個(gè)括號(hào)就好)?

  b. like in 查詢

    like也稱為模糊查詢

    select * from 表名 where 列表 like "%x%"                    

    (查詢出表中含有字段x的列表)

    select * from 表名 where 列表 like "%x"                     

    (查詢訊出表 以x結(jié)尾的列表)

    select * from 表名 where 列表 like "x%"                      

    (查詢訊出表中以x開(kāi)頭的列表)

    select * from 表名 wher e 列表 like "_x"                     

    (查詢訊出表中以x為第二個(gè)字符開(kāi)頭的列表)

    select * from 表名 where 列表 like "x_"                      

    (查詢訊出表中以x為最后兩個(gè)字符結(jié)尾的列表)

    in查詢

    select * from 表名 where 列表 in (條件1,條件2)                  

  (in是可以替代or,和or的關(guān)系是一樣的)

   注意:like 和 in 均可以反向操作,即在他們的前面加一個(gè)NOT

  c.正則表達(dá)式(regexp)

    select * from 表名 where 列表 regexp "^[A-Z]"                    

    (查詢出以大寫(xiě)字母開(kāi)頭的列表) 

    select * from 表名 where 列表 regexp "^[a-z]"                     

   (查詢出以小寫(xiě)字母開(kāi)頭的列表)

    select * from 表名 where 列表 regexp "[漢字]"              ? ?     

   (查詢出含有漢字的列表)

    select * from 表名 where 列表 regexp "^[0-9]"                   

   (查詢出以數(shù)字開(kāi)頭的列表)

    select * from 表名 where 列表 regexp "[A-Z]s"                   

   (查詢出以大寫(xiě)字母結(jié)尾的列表)

  d.去重(distinct)

    select distinct??* from 表名 where 條件                      

   (去除篩選出來(lái)出現(xiàn)重復(fù)的)

    select distinct? 字段1,字段2? from 表名 where 條件               

   (去除字段1和字段2出現(xiàn)重復(fù)的)

  e.改名(as)

    select 字段1 as 新字段1 , 字段2 as 新字段2 from 表名?               

    select 字段1 新字段1 , 字段2 新字段2?                       

   (在修改列名的時(shí)候可以將as省去)

  f.限制數(shù)據(jù)顯示的數(shù)量(limit)

    select * from 表名 where 條件 limit n,m                      

    (n代表開(kāi)始的行的數(shù),m代表能夠顯示的數(shù)量)

  g.排序 (order by)

    select * from 表名 where 條件 order by 字段? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    ? (表中字段按照從低到高排列)

    注意:order by 默認(rèn)的排列方式為從低到高,若是要從高到低則在字段后面加desc

3.函數(shù)

  a.統(tǒng)計(jì)(count)?

    select count(*) from 表名                             

   (統(tǒng)計(jì)表中所有的行數(shù))  

    select count(1)? from? 表名                             

    (統(tǒng)計(jì)表中所有的行數(shù))

  注意:以上兩者的能達(dá)成一樣的效果,但是count(1)效果更好,速度更快

    select count(字段名) from 表名                           

   (統(tǒng)計(jì)表中不為空的行數(shù))

  b.最大值(max)和最小值(min)

    select max(字段),min(字段) from? 表名

  c.平均值(avg)和求和(sum)??

    select avg(字段),sum(字段) from 表名

4.分組(group by)

    select * from 表名 group by 字段                              

   (按照字段分組)

    select * from 表名 group by 字段 having 條件                          

   (篩選出滿足條件的組)

   注意:分組后的信息只能顯示某個(gè)具體的信息,但不能顯示組內(nèi)所有信息

   大體語(yǔ)句:select * from 表名 where 條件 group by having 條件

5.多表查詢(join)

  a.內(nèi)連接

    select * from 表名1? inner join 表名2 on 表名1.字段=表名2.字段

  b.外鏈接? ? ?

    左連接

      select * from 表名1 as 表名1? left join 表名2 as 表名2?on 表名1.字段=表名2.字段?  ?      

      ( 以表1為準(zhǔn),左右兩張表通過(guò)字段相同的鏈接在一起,但若是表1中有表2存在的字段,則還是會(huì)出現(xiàn),不過(guò)某些字段卻為NULL,若是表2存在表1的字段則會(huì)自動(dòng)pass掉 。同時(shí)里面的as+表名也是可以省略不寫(xiě))

    右連接

      select * from 表名1 as 表名1? right join 表名2 as 表名2?on 表名1.字段=表名2.字段? ?

    全連接

      select * from 表名1 as 表名1? full join 表名2 as 表名2?on 表名1.字段=表名2.字段? 

6.子查詢或者叫嵌套查詢(in)

   select * from 表名1 where 字段1 in (select 字段1 from 表名2 where 字段2 in? (select 字段2 from 表名3 where 條件))? ?

   其等效的效果為:

   select * from 表名1 inner join 表名2 on 表名1.字段1=表名2.字段1 inner join 表名3 on 表名2.字段2=表名3.字段2 where 條件

  注意:在使用的時(shí)候,盡可能的使用英文,因?yàn)橹形目赡軙?huì)出現(xiàn)亂碼情況。且in會(huì)出現(xiàn)長(zhǎng)度限制,但inner join卻不會(huì),而且inner join查詢的結(jié)果可能會(huì)更多更全面,這個(gè)要根據(jù)自己需要

7.連接查詢(union all)

  select 字段1 ,字段2,"xx"? from 表名1

  union all

  select 字段1 ,字段2,"xx" from 表名2                                  (將兩張表連接起來(lái),且表頭為第一張的字段)

  注意:在使用union all的時(shí)候一定要保證兩張表所查詢出來(lái)的字段數(shù)量相等,且select all默認(rèn)不去重 ,若是需要去重則講all去掉,若是要將查詢出來(lái)的字段標(biāo)記則是需要在字段x的后面加逗號(hào)和雙引號(hào),引號(hào)里面則是你想要備注的值

8.時(shí)間查詢(date)

  select? now();                          

  (查詢當(dāng)前時(shí)間)

  select current_timetamp                     

  (查詢當(dāng)前時(shí)間)

  注意:兩者是一樣的,只不過(guò)是不同版本

  select? date_sub(now(),interval 1month)              

  (按照當(dāng)前時(shí)間提前一個(gè)月)

  select date_sub('2017-9-15',interval 1minth)            

  (查詢2017-8-15 即按照2017-9-15提前一個(gè)月)

  select date_format(now(),"%Y")                 

  (格式化當(dāng)前時(shí)間至年這個(gè)點(diǎn))

  select date_format(now(),"%y")                 

  (格式化當(dāng)前時(shí)間至年這個(gè)點(diǎn))

  注意:這兩個(gè)的差別是前面y一個(gè)輸出4位(2017)后面則輸出兩位(17)

  select date_format(now(),'%m')                  

  (格式化當(dāng)前時(shí)間的月,輸出為9)

  select date_format(now(),'%d')                

   (格式化當(dāng)前時(shí)間的日,輸出為15)?

  select date_format(now(),'%T')                

  (格式化當(dāng)前時(shí)間的時(shí)間,輸出為13:52:12)

  select date_format(now(),'%Y-%m-%d-%T')          

   (格式化當(dāng)前時(shí)間的月,輸出為2017-9-15-13:52:12)

  

  

?

?

?

  

  

? ?  ?

??

      ??

?

轉(zhuǎn)載于:https://www.cnblogs.com/dxc159753/p/SQL.html

總結(jié)

以上是生活随笔為你收集整理的SQL简单查询语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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