В ходе разработки мы можем столкнуться с ситуацией, когда у нас в таблице есть записи с одинаковыми значениями. И нам может понадобиться получиться только уникальные значения.
Для этих целей в языке SQL используется ключевое слово DISTINCT. Данная запрос используется вместе с командой SELECT для получения уникальных значений из таблицы и имеет следующий вид:
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 | C++ | 3 | 2500 |
| 4 | Konstantin Geiko | C# | 2 | 2000 |
| 5 | Asya Suleimanova | UI/UX | 2 | 1800 |
| 6 | Ludmila Geiko | UI/UX | 2 | 1800 |
| 7 | Ivan Ivanov | C# | 1 | 900 |
+----+-------------------+-----------+------------+--------+
Допустим, что нам необходимо узнать записи разработчиков каких специальностей (Java, C++ и т.д.) хранятся у нас в таблице.
Мы можем попробовать выполнить следующий запрос:
mysql> SELECT SPECIALTY FROM developers;
В результате обработки данного запроса мы получим следующий результат:
+-----------+
| SPECIALTY |
+-----------+
| Java |
| Java |
| C++ |
| C# |
| UI/UX |
| UI/UX |
| C# |
+-----------+
Как видно, специальности повторяются и, если в нашей таблице будут храниться сотни тысяч записей, нам будет крайне затруднительно понять, какие именно специальности у нас есть.
Теперь попробуем выполнить следующий запрос:
mysql> SELECT DISTINCT SPECIALTY FROM developers;
В результате выполнения данного запрос мы получим следующий результат:
+-----------+
| SPECIALTY |
+-----------+
| Java |
| C++ |
| C# |
| UI/UX |
+-----------+
Как видно, записи не повторяются, т.е. мы получили только уникальные результаты.
На этом мы заканчиваем изучение способа обработки дубликатов в языке SQL.
В следующей статье мы рассмотрим инъекции (injections).