Appearance
SQL SELECT DISTINCT
SQL SELECT DISTINCT 语句用于返回唯一不同的值,去除查询结果中的重复行。
SELECT DISTINCT 语法
sql
SELECT DISTINCT column1, column2, ...
FROM table_name;DISTINCT:关键字,用于指定返回唯一不同的值column1, column2, ...:指定要查询的列名,多个列之间用逗号分隔table_name:指定要查询的表名
示例
假设我们有一个名为 students 的表,包含以下数据:
| id | name | age | grade |
|---|---|---|---|
| 1 | 张三 | 18 | 高三 |
| 2 | 李四 | 17 | 高二 |
| 3 | 王五 | 19 | 高三 |
| 4 | 赵六 | 16 | 高一 |
| 5 | 钱七 | 18 | 高三 |
示例 1:查询所有年级(包含重复值)
sql
SELECT grade FROM students;结果:
| grade |
|---|
| 高三 |
| 高二 |
| 高三 |
| 高一 |
| 高三 |
示例 2:查询唯一的年级(去除重复值)
sql
SELECT DISTINCT grade FROM students;结果:
| grade |
|---|
| 高三 |
| 高二 |
| 高一 |
示例 3:查询唯一的年级和年龄组合
sql
SELECT DISTINCT grade, age FROM students;结果:
| grade | age |
|---|---|
| 高三 | 18 |
| 高二 | 17 |
| 高三 | 19 |
| 高一 | 16 |
注意事项
DISTINCT 应用于所有列:当使用 DISTINCT 时,它会应用于所有指定的列,而不仅仅是第一个列。只有当所有指定列的值都相同时,才会被视为重复行。
性能考虑:使用 DISTINCT 会增加查询的开销,因为数据库需要比较和去除重复值。在大数据量的情况下,应该谨慎使用。
与 NULL 值的关系:DISTINCT 会将所有 NULL 值视为相同的值,只返回一个 NULL。
小结
SQL SELECT DISTINCT 语句是一种用于去除查询结果中重复行的有效方法,它可以帮助我们获取唯一的数据值。在需要确保查询结果中没有重复数据时,非常有用。