中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

mysql中怎么實現查詢操作

發布時間:2021-07-26 16:39:06 來源:億速云 閱讀:180 作者:Leah 欄目:數據庫

這篇文章將為大家詳細講解有關mysql中怎么實現查詢操作,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1、選擇所有的記錄

   select * from table_name;

   其中*表示表中的所有字段。

 

2、查詢不重復的記錄

   用關鍵字distinct

   select distinct  字段名  from  表名;

  

3、條件查詢

   用關鍵字where

   select * from 表名 where 條件;

   where后面的條件是一個字段的比較,可以使用=、>、<、>=、<=、!=等比較運算符;多個條件還可以使用or、and等邏輯運算。

 

4、排序和限制

   用關鍵字order by  desc(降序), asc(升序),limit(排序結果顯示一部分)

   order by后面可以跟多個不同的排序字段,并且每個排序字段可以有不同的排序順序。

   例如:把emp表中的記錄按照工資sal的高低順序排序。

   select * from emp order by sal;  

   select * from emp order by sal,deptno desc;(sal升序,septno降序)

   先按第一個字段排序,當第一個字段相同時,按照第二個字段排序。

  

   select······limit offset_start, row_count;

   offset_start表示起始偏移量,默認值為0。 row_count表示顯示的行數。

   例如:select * from emp order by sal limit 1,3;

   顯示前3條記錄,起始偏移量為1,從第二條記錄開始顯示。

   order  by 和limit 通常一起使用來控制記錄的分頁顯示。

  

5、聚合

   很多情況下,用戶需要一些匯總操作,例如統計整個公司的人數或者每個部門的人數。

   語法:

   select 字段1,字段2.。。函數名 from 表名  where where_condition1  group
by  字段11,字段12 with rollup  having  where_condition2; 

   函數名表示要做的聚合操作,就是聚合函數,常用的有sum(求和)、count(*)(記錄數)、max(最大值)、min(最小值)。

   group by 關鍵字表示要進行分類聚合的字段、

   having 關鍵字表示對分類后的結果在進行條件的過濾。

   having和where的區別是having是對聚合后的結果進行條件的過濾,而where是在聚合前就對記錄進行過濾,如果邏輯允許,我們可以用where先進行過濾,這樣結果集變小了,將對聚合的效率大大的提高,最后在根據邏輯看是否用having進行再過濾。

select sum(sal), max(sal), min(sal) from emp;

 

6、表連接

   當需要同時顯示多個表中的字段時,就可以用表連接來實現這樣的功能。

   從大類上分,表連接分為內連接和外連接,它們之間的最主要的區別是內連接僅選出兩張表中互相匹配的記錄,而外連接會會選出其他不匹配的記錄。我們最常用的是內連接。

   例如:查詢出所有雇員的名字和所在的部門名稱,因為雇員名稱和部門分別放在表emp和表dept中,因此,需要使用表連接來進行查詢。

   select ename, deptname from emp, dept where emp.deptno=dept.deptno;

 (ename是表emp中的字段,deptname是dept表中的字段)

 

  外連接又分為左鏈接和右連接(關鍵字left join和 right join)

   左連接:包含所有的左邊表中的記錄甚至是右邊表中沒有和他匹配的記錄。

   右連接:包含所有的右邊表中的記錄甚至是左邊表中沒有和他匹配的記錄。

   例如:select ename, deptname from emp left
join dept on emp.deptno=dept.deptno;

         select ename, deptname from dept right join emp on emp.deptno=dept.deptno;

         ename是表emp中的字段,deptname是dept表中的字段。 就是包含表emp中的所有記錄。     以上兩條語句等價。

 

7、字查詢

   在某些情況下,當進行查詢的時候,需要的條件是另外一個select語句的結果,這個時候,就要用到子查詢。用于子查詢的關鍵字主要包括in、not in、=、!=、exists、not exists等。

    

   select * from emp where deptno in (select deptno from dept);

   (表示的意思就是就表emp中的所有記錄,除去dept表對應的部門不存在的刪掉。)

 

 在某些情況下,子查詢可以轉化成表連接。例如,上面的語句可以寫成:

   select emp.* from emp, dept where emp.deptno=dept.deptno;

 

8、記錄聯合

   我們經常會碰到這樣的應用,將兩個表的數據按照一定的查詢條件查詢出來后,將結果合并到一起顯示出來。這個時候,就需要用到union和 union all關鍵字來實現這樣的功能。union和union all的區別:union all 是把結果集合并在一起,而union是將union all后的結果進行一次distict,去除重復記錄。

   select * from table1  union| union all select * from table2;

   例如:

   ① select deptno from emp  union
all select deptno from dept;

   ② select deptno from emp  union
select deptno from dept;

   ①中的記錄將會有重復記錄,②中沒有重復記錄。

關于mysql中怎么實現查詢操作就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

沂源县| 岫岩| 大田县| 安阳市| 美姑县| 城口县| 拉孜县| 板桥市| 东乡族自治县| 克拉玛依市| 尚义县| 房产| 泸定县| 青浦区| 榆中县| 贺兰县| 靖宇县| 托克逊县| 西平县| 会宁县| 乐陵市| 台中市| 玉田县| 江永县| 大英县| 罗城| 曲周县| 建平县| 砀山县| 宝兴县| 咸阳市| 吉隆县| 揭阳市| 五华县| 台州市| 武乡县| 祥云县| 徐汇区| 游戏| 福泉市| 茂名市|