日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 查询 distinct_MYSQL查询数据(二)SELECT | DISTINCT

發布時間:2025/4/5 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 查询 distinct_MYSQL查询数据(二)SELECT | DISTINCT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL SELECT語句簡介

SELECT語句允許您從表或視圖獲取數據。像電子表格一樣,表由行和列組成。通常,您需要查看表中的數據。這時候你可以使用mysql數據庫中的select語句進行查詢數據。

讓我們來看看SELECT語句的語法:SELECT

column_1, column_2, ...

FROM

table_1

[INNER | LEFT |RIGHT] JOIN table_2 ON conditions

WHERE

conditions

GROUP BY column_1

HAVING group_conditions

ORDER BY column_1

LIMIT offset, length;

該SELECT語句由幾個子句組成,如下面的列表所述:SELECT后面以逗號分隔的字段名稱或星號(*),表示要返回的列。

FROM指定要查詢數據的表或視圖。

JOIN基于某些連接條件從其他表獲取數據。

WHERE過濾結果集中的行。

GROUP BY將數據分組并對每個組應用聚合函數。

HAVING基于GROUP BY子句定義的組篩選組。

ORDER BY指定用于排序字段。

LIMIT約束返回的行數。

SELECT和FROM查詢語句中必須的。其他部分是可選的。

MySQL SELECT語句示例

SELECT語句允許您通過在SELECT子句中指定逗號分隔的列的列表來查詢表的部分數據。例如,如果您只想查看員工的名字,姓氏和職位,您可以使用以下查詢:

SELECT

lastname, firstname, jobtitle

FROM

employees;

如果要獲取表中所有列的employees數據,你可以列出該SELECT子句中的所有列名稱,也可以只需使用星號(*),星號(*)表示查詢表中的所以列。SELECT * FROM employees;

上面SQL查詢語句返回表employees中的所有列和行。

在測試中我們可以使用星號(*)代替表中的所以列,但實際上,您應該列出要明確獲取數據的列,原因如下:星號(*)會返回沒用的字段數據。它在MySQL數據庫服務器和應用程序之間產生不必要的I/O磁盤和網絡流量。

如果您明確指定列,則結果集更可預測,更易于管理。想象一下,如果有人為表添加了很多列,當你使用星號(*)時,你會得到一個不同于你期望的結果集。

使用星號(*)可能會向未經授權的用戶公開敏感信息。

MySQL DISTINCT子句

當從表中查詢數據時,您可能會得到重復的行。為了刪除這些重復行,可以在SELECT語句中使用DISTINCT?子句。

使用DISTINCT?子句的語法如下:SELECT DISTINCT

columns

FROM

table_name

WHERE

where_conditions;

有些員工擁有相同的姓氏 ??Bondur,Firrelli等等。

要刪除重復的姓氏,請將DISTINCT?語句添加到SELECT語句中?,如下所示:

當我們使用DISTINCT子句時,重復的姓氏在結果集中被去除。

MySQL DISTINCT與NULL

如果一個列(字段)具有NULL值,并且您在該列(字段)中使用了DISTINCT?子句,那么MySQL將保留一個NULL值并消除另一個值,因為DISTINCT?子句將所有NULL值視為相同的值。

例如,在customers表中,我們有許多數據行的?state列為NULL。當我們使用DISTINCT?子句查詢客戶的state時,我們將看到state的唯一NULL值,mysql語句如下:SELECT DISTINCT

state

FROM

customers;

在MySQL DISTINCT中使用多列

您可以對多個列使用DISTINCT子句。在這種情況下,MySQL使用所有列的組合來確定結果集中行的唯一性。

DISTINCT子句與GROUP BY子句

如果在SELECT語句中使用了GROUP BY子句而沒有不使用聚合函數,則GROUP BY子句的作用類似于DISTINCT?子句。

以下語句使用GROUP BY子句來查詢customers表中客戶的唯一state。SELECT

state

FROM

customers

GROUP BY state;

您也可以通過使用以下DISTINCT子句來實現類似的結果。

一般來說,DISTINCT?子句是特殊情況下的GROUP BY子句。DISTINCT?子句和GROUP BY子句之間的區別是GROUP BY子句對結果集進行排序,而DISTINCT?子句不排序。

如果將ORDER BY添加到?DISTINCT子句的語句中,則結果集將進行排序,并且與使用GROUP BY子句的語句返回結果相同。SELECT DISTINCT

state

FROM

customers

ORDER BY state;

SELECT DISTINCT

state

FROM

customers

ORDER BY state;

MySQL DISTINCT與聚合函數

您可以使用帶有聚合函數的DISTINCT(如SUM,AVG和COUNT)子句,在刪除重復數據之后,MySQL將聚合函數應用于結果集中。

例如,要計算美國客戶的唯一state,請使用以下查詢:SELECT

COUNT(DISTINCT state)

FROM

customers

WHERE

country = 'USA';

SELECT DISTINCT

state

FROM

customers

ORDER BY state;

帶有LIMIT的MySQL DISTINCT

在使用帶有LIMIT的DISTINCT子句的情況下,MySQL只返回LIMIT范圍內的唯一不重復的結果集。

以下mysql語句查詢customers表中的前5個非空的唯一state。

SELECT DISTINCT

state

FROM

customers

WHERE

state IS NOT NULL

LIMIT 5;

總結

以上是生活随笔為你收集整理的mysql 查询 distinct_MYSQL查询数据(二)SELECT | DISTINCT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。