MySql(查詢----select)

  一,查詢數據

    1,基本語法    
數據庫

        select */字段名  from 表名[where條件] ;服務器

    2,完整語法函數

        Select[select 選項] */字段名[字段別名]  from  數據源 [where條件語句] [group by語句] [having語句]  [order by語句]  [limit語句]            
spa

    1)select 選項:
排序

        ①All:默認的,保留全部結果
內存

        ②Dstinct:去重,將查處來的結果,將重複去掉(全部字段都相同)。
資源

        ③select * from user ;==  select all * from  user ;
it

        ④去重:select distinct * from user ;
效率

    2)字段別名:    
date

        字段別名:當數據查詢出來的時候,有時候名字不必定知足需求(當進行多表查詢的時候,會出現字段重名狀況),須要對字段進行重命名,即字段別名。

        字段別名語法:字段名  [as]  別名

        ①select id,number,name,gender from user ; ==select id as ID,number as 學號,name as 姓名,gender as 性別   from user ;

    3)數據源:

        數據源:數據的來源。關係型數據庫的來源都是數據表,只要保證數據相似二維表,則均可以做爲數據源。

        數據源分類:單表數據源、多表數據源、查詢語句

        ①單表數據源:select * from user ;

        ②多表數據源:select * from 表名1,表名2....; 從一張表取出一個記錄,去另一張表去匹配全部記錄。並將全部表全部記錄都保留(記錄數和字段數)。進行交叉鏈接。

        ③子查詢:數據的來源是一個查詢語句(查詢語句的結果是一個二維表)。

            select * from(select 語句) as  表的別名;==select * from (select * from user) as s ;

    4)where條件語句

        where語句:用來判斷數據,篩選數據。where語句返回結果:0或1,表明false和true。

        ①判斷條件:

                比較運算符:>,<,=,!=,>=,<=,like(模糊查詢),between...and,in/not in

                  邏輯運算符:&&(and),||(or),!(not)     

                update my_user set age = floor(rand()*20+20),height=floor(rand()*20+170);(floor向下取整數),rand()是隨機取0或1一個數。

        ②條件查詢1

        A,找出學生id爲1或3或5的學生。

             落在集合中:select * from my_user where id in(1,3,5);        

            條件查詢2

        B,找出學生170~180之間

            select * from my_user where height between 170 and 180; 

            between 自己是一個閉區間,between...and 左邊的值必須小於或等於右邊的值。

        C,select * from my_user where 1 ;全部條件都查詢出來

    5)Group by字句

        group by:分組的意思,根據某個字段進行分組(相同的分一組,不一樣的分一組)

        分組的做用:是爲了統計數據(按組統計,按分組字段進行數據統計)

            SQL提供了一系列的數據統計函數:

                Count() :統計分組後的記錄數:每一組有多少記錄。

                Max():統計每組中的最大值。

                Min():統計每組中的最小值。

                Avg():統計平均值

                Sum():統計和

        A分組統計:根據gender分組,數量,身高最高,身高最低,平均年齡,年齡總和

        select gender,count(*),max(height),min(height),avg(age),sum(age) from  my_user group by gender

        B,Count函數:裏邊能夠有兩種參數:*表明統計記錄。字段名,表明統計對應的字段(NULL不統計)。

    6)Having字句

        Having字句:與where字句同樣,進行條件判斷的。

        where是針對磁盤數據進行操做,進入內存後,進行分組操做,分組結果須要Having來處理。

        ①Having幾乎能作where能作的全部事情,可是where卻不能作Having的事情。

        ②Having能使用字段別名,而where不能,where針對磁盤數據操做,名字只能夠是字段名,而字段別名在字段加載到內存中才會產生

    7)Order by字句

       order by:排序,根據某個字段進行升序或降序排列,依賴校對集。                 

        order by使用語法:order by 字段名 [asc|desc] ;asc[默認的]升序,desc降序

    8)limit字句

        limit是限制結果的語句,限制數量。

         limit有兩種使用方式:

        ①用來限制長度(數據量/記錄數)limit 數據量。

        ②限制起始位置,長度  limit起始位置,長度 。記錄數從0開始編號即第一個

        ③Limit字句用來實現數據的分頁。爲用戶節省時間,提升服務器的執行效率,減小資源浪費。

        對於用戶來說,能夠點擊分頁按鈕 一、二、三、4

        對於服務器來說,根據用戶選擇的頁碼來返回詳細的數據。limited offset  length;

        length:分頁後每頁顯示的數量,基本不變

        offset:offset = (頁碼-1) * length ;  起始位置,與頁碼有關係

相關文章
相關標籤/搜索