navicat操作數據庫 數據查詢功能


1.select語句    

 SELECT * FROM <表名>;

1.1.通配符的使用:

    通配符 *   :查詢所有的列等等

    通配符 _   :匹配一個字符

    通配符 %:匹配任意長度的字符,包括空字符串

1.2.查詢關鍵字

  1.2.1 關鍵字  distinct的用法  除去數據重復的值  

SELECT DISTINCT [字段名] FROM <表名>

 

  1.2.2關鍵字  like的用法    like與通配符配合使用

 SELECT [字段名1,字段名2,…]
          FROM <表名>
          WHERE [字段名] [ NOT ] LIKE ‘匹配字符串’

 

2.子查詢

常用的子查詢語句有五種:

  • 條件查詢(where子句):按照“條件表達式”指定的條件進行查詢。
  • 分組查詢(group by子句):按照“屬性名”指定的字段進行分組。group by子句通常和count()、sum()等聚合函數一起使用。
  • 篩選查詢(having子句):有group by才能having子句,只有滿足“條件表達式”中指定的條件的才能夠輸出。
  • 排序查詢(order by子句):按照“屬性名”指定的字段進行排序。排序方式由“asc”和“desc”兩個參數指出,默認是按照“asc”來排序,即升序。
  • 限制查詢(limit):限制結果集。

2.1條件查詢(where子句)

  where子句常與運算符配合使用

2.2分組查詢(group by子句)

  分組將一個區域划分成多個小區域,對多個小區域進行數據處理

select 類別, sum(數量) as 數量之和
from A group by 類別

 

2.3篩選查詢(having子句)  針對“組”里面條件進行篩選

  having一般跟在group by之后,執行記錄組選擇的一部分來工作的。where則是執行所有數據來工作的。
  再者having可以用聚合函數,如having sum(qty)>1000。

2.4排序查詢(order by子句)

  • order by <列名>             #  默認升序排列 
  • order by <列名> desc    # 降序排列
  • order by <列名> asc      # 升序排列
  • order by rand()              # 隨機排列

2.5限制查詢(limit子句)

  在查詢語句中,我們想要只返回前面幾行數據

  limit [offset] N

 

2.6  子查詢關鍵字

2.6.1  關鍵字  as的用法

   1. as的用法一般是用於重命名“列名”、“表名”,為了查詢方便。

   2.as作為連接語句的操作符

create table charm1 as select * from charm2

    解釋:上面的語句是先獲取charm1表格中所有數據,之后再創建一張charm1表,結構和charm2表相同,記錄為后面語句的查詢結果

 

2.6.2  關鍵字  in的用法

  列如:現在我們查詢成績大於60的學生的結果集,然后將原成績表中的成績與結果集進行比較,如果存在,就輸出這條學生的記錄。

select * from stu_sc
where score in
(select score from stu_sc where score>60)

 

2.6.3  關鍵字  exists的用法

    exists子查詢就是用來判斷某些條件是否滿足,exists是接在where之后的,

exists返回的結果只有0,1.

    

select * from stu_sc 
where exists
(select * from stu_sc where score>60)

 

2.6.4  關鍵字  any 的用法

    any關鍵字表示滿足其中的任意一個條件,只要滿足內層查詢語句結果的任意一個,就可以通過該條件來執行外層查詢語句

    

select * from stu_sc
where id < ANY
(select id from stu_sc )

 

2.6.5  關鍵字  all 的用法   

    all和any 剛好是相反的,all 關鍵字需要滿足所有結果。

    

select * from stu_sc
where id > ALL
(select id from stu_sc )

 

2.6.6  關鍵字  between ..and 的用法

    比如:查詢stu_sc表中,分數在40——60之間的數據。

    

select * from stu_sc where score between 40 and 60

 

2.7  子查詢組合

2.7.1  組合:where + group by + having + 函數

 

 

3.  連接查詢

    為什么用到連接查詢,在用戶查看數據的時候,需要現實的數據來自多張表,這時候就需要連接查詢。

    

3.1  內連接查詢

    select * from 表名 join 被連接表 on 連接條件

    

select Sname,Cno,Grade 
FROM Student JOIN SC 
ON Student.Sno = SC.Sno
WHERE Sdept  = '計算機系'

 

3.2  自連接查詢

 

3.3  外連接查詢

    FROM 表一 left/right JOIN 表二 ON 連接條件

    

4.  集合查詢

    集合操作的分類  

    並操作  union

    交操作  intersect

    差操作  except

   注意:參加集合 操作的各查詢結果的列數必須相同,對應項的數據類型必須相同。

4.1  union  將多個查詢結果合並起來,自動去掉重復元組

    

4.2  intersect  該運算符返回兩個查詢或多個查詢的不同行

    

(select col 
from table1)
intersect
(select col
from table2);

 

4.3  except  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM