Конструкции оператора SELECT онлайн урок.


В этом уроке рассмотрим типичные запросы с использованием SELECT.

Псевдонимы полей. Для удобства, часто бывает необходимо задать псевдонимы полей в результирующей таблице с выборкой. Для этого используется оператор AS, после которого указывается псевдоним для конкретного поля. Рассмотрим пример

SELECT id, name AS student, age, phone AS p_number FROM student;
+----+---------+------+-----------+
| id | student | age | p_number |
+----+---------+------+-----------+
| 1 | Mike | 25 | 345-65-78 |
| 2 | John | 27 | 123-65-12 |
| 3 | Bob | 23 | 456-12-55 |
| 4 | Andy | 20 | 244-34-12 |
| 5 | Rita | 21 | 432-65-11 |
+----+---------+------+-----------+
5 rows in set (0.00 sec)

В данном случае были заданы псевдонимы для полей имени и телефона студента. Этот псевдоним используется лишь в результирующей таблице, не изменяя поля в оригинальной таблице.

Выборки без одинаковых строк. Если в поле (или полях) присутствуют повторяющиеся значения, то для получения выборки без повторений используется оператор DISTINCT, который необходимо записать после SELECT.

Для примера, вставим в нашу таблицу студента с именем Andy, которое уже сохранено в таблице:

INSERT INTO student VALUES (null, 'Andy', 24, '323-43-98');

Тогда, запрос для получения всех имен студентов без повторений будет выглядеть следующим образом:

SELECT DISTINCT name FROM student;

Как результат, мы видим что в результирующей таблице отсутствует повторение имени Andy

+------+
| name |
+------+
| Mike |
| John |
| Bob |
| Andy |
| Rita |
+------+
5 rows in set (0.00 sec)

Отметим, что оператор DISTINCT исключает повторения относительно всех выбранных полей. В данном случае мы выбрали только имя. Если мы, к примеру, добавим в выборку поле id, то разных записей не будет, поскольку не будет полностью одинаковых строк, из полей id, name.

SELECT DISTINCT id, name FROM student;
+----+------+
| id | name |
+----+------+
| 1 | Mike |
| 2 | John |
| 3 | Bob |
| 4 | Andy |
| 5 | Rita |
| 6 | Andy |
+----+------+
6 rows in set (0.00 sec)

Выборка без таблицы. Мы можем получит данные не привязываясь к таблице. Например,

SELECT 3.14 AS pi;
+------+
| pi |
+------+
| 3.14 |
+------+
1 row in set (0.00 sec)

Фактически результирующая таблица была создана на лету со значением 3.14 в поле с псевдонимом pi. Таким образом можно использовать MySQL как калькулятор (при помощи встроенных функций)

SELECT COS(3.14) AS cos_pi;
+---------------------+
| cos_pi |
+---------------------+
| -0.9999987317275395 |
+---------------------+
1 row in set (0.01 sec)


Проверьте свои знания
Таблица country: получить выборку всех записей таблицы, назначив псевдонимы в виде сокращенных названий столбцов. Получить список континентов без повторений.