Для получения только уникальных записей в языке SQL предусмотрено ключевое слово DISTINCT.
В работе мы можем столкнуться с ситуацией, когда у нас есть повторяющиеся записи в таблице и вместо того, чтобы получать их все, нам целесообразно получить только уникальные элементы.
Запрос с использованием ключевого слова DISTINCT имеет следующий вид:
SELECT DISTINCT колонка1, колонка2 ... колонкаN
FROM имя_таблицы
WHERE [условие];
Пример:
Предположим, что у нас есть таблица developers, которая имеет следующий вид:
+----+-------------------+------------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
| 1 | Eugene Suleimanov | Java | 2 | 2500 |
| 2 | Peter Romanenko | Java | 3 | 3500 |
| 3 | Andrei Komarov | JavaScript | 3 | 2500 |
| 4 | Konstantin Geiko | C# | 2 | 2000 |
| 5 | Asya Suleimanova | UI/UX | 2 | 1800 |
| 6 | Kolya Nikolaev | Javascript | 5 | 3400 |
| 7 | Ivan Ivanov | C# | 1 | 900 |
| 8 | Ludmila Geiko | UI/UX | 2 | 1800 |
+----+-------------------+------------+------------+--------+
Допустим, мы хотим узнать какие специальности есть у нас в таблице.
Попробуем использовать средства, которые мы уже изучили:
mysql> SELECT SPECIALTY FROM developers
ORDER BY SPECIALTY;
После выполнения данного запроса мы получим следующий результат:
+------------+
| SPECIALTY |
+------------+
| C# |
| C# |
| Java |
| Java |
| JavaScript |
| Javascript |
| UI/UX |
| UI/UX |
+------------+
Как мы видим, все специальности повторяются дважды. Если же в нашей таблице будет миллион записей, понять, какие же специальности у нас есть станет крайне затруднительным.
Теперь попробуем использовать ключевое слово DISTINCT.
mysql> SELECT DISTINCT SPECIALTY FROM developers
ORDER BY SPECIALTY;
В результате обработки данного запроса мы получим следующий результат:
+------------+
| SPECIALTY |
+------------+
| C# |
| Java |
| JavaScript |
| UI/UX |
+------------+
На этом мы заканчиваем изучение ключевого слова DISTINCT языка SQL.
В следующей статье мы рассмотрим механизм получения данных сразу из нескольких таблиц с помощью ключевого слова JOIN.