久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql中怎么實現查詢操作

177次閱讀
沒有評論

共計 2485 個字符,預計需要花費 7 分鐘才能閱讀完成。

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

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

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計2485字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 德庆县| 卓尼县| 曲水县| 和平区| 米易县| 泽普县| 呼和浩特市| 襄垣县| 镇坪县| 五原县| 广安市| 策勒县| 南召县| 安陆市| 静乐县| 安多县| 卢龙县| 遂平县| 白玉县| 金山区| 焉耆| 罗山县| 大港区| 姜堰市| 宣汉县| 若尔盖县| 乳源| 溧水县| 昌图县| 铜山县| 尚志市| 井冈山市| 新蔡县| 长葛市| 洛宁县| 封丘县| 唐海县| 韩城市| 胶州市| 大同市| 德庆县|