在 MySQL 中,DISTINCT 关键字用于查询结果中去除重复的记录。
一、在查询进阶中,除了 DISTINCT 之外,还有以下关键字:
- GROUP BY:
根据指定的字段对结果进行分组,通常与聚合函数一起使用,例如 SUM、AVG、COUNT 等。
- HAVING:
在分组后过滤结果,只返回满足条件的分组。
- JOIN:
将多个表连接在一起,以获取更丰富的数据。包括 INNER JOIN、LEFT JOIN、RIGHT JOIN 等。
二、DISTINCT 关键字的特点是:
- 它只返回不同的值,去除了重复的记录。
- 它可以应用于查询的任何字段或表达式。
- 它通常用于需要获取唯一结果的查询。
三、使用 DISTINCT 关键字的方法如下:
SELECT DISTINCT column1, column2,...FROM table_name;
其中,column1、column2 等是要去除重复的字段列表,table_name 是要查询的表名。
四、与其他关键字的比较:
- GROUP BY 和 DISTINCT 都可以用于去除重复记录,但 GROUP BY 会按照指定的字段进行分组,而 DISTINCT 则直接去除所有重复记录。
- HAVING 与 WHERE 都可以用于过滤结果,但 HAVING 是在分组后进行过滤,而 WHERE 是在查询之前进行过滤。
- JOIN 用于连接多个表,可以实现更复杂的查询,但需要注意正确使用连接条件。
五、高级应用包括:
- 结合其他聚合函数使用,例如:
SELECT DISTINCT category, SUM(sales)FROM sales_tableGROUP BY category;
- 在多表查询中使用,例如:
SELECT DISTINCT table1.column1, table2.column2FROM table1JOIN table2 ON table1.id = table2.id;
以下是一个示例,演示了如何使用 DISTINCT 关键字:
-- 创建一个名为 students 的表,包含 id 和 name 两个字段CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50));-- 插入一些示例数据INSERT INTO students (id, name)VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie'), (4, 'Alice');-- 使用 DISTINCT 关键字查询去重后的学生名字SELECT DISTINCT nameFROM students;
在上述示例中,使用 DISTINCT 关键字查询了去重后的学生名字,结果只会返回不同的名字。
(文章为作者在学习MySQL过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)