Подробнее о SELECT

1. Алиасы или псевдонимы Позволяет заменить имя столбца или таблицы при в SELECT запросе. Структура:
1
SELECT <Имя столбца> AS <Новое имя>
1
SELECT <Имя столбца> FROM <Имя таблицы> AS <Новое имя>
В первом случае имя столбца заменяется именем, стоящее после оператора AS. Внутри других операторов (например, WHERE) вместо реального имени столбца можно использовать имя, заданное алиасом. Также, при выводе результата запроса данный столбец будет отобразиться под новым именем (только в запросе! в базе данных останется старое название). Во втором случае таблица получит новое название. Аналогично ситуации с переименованием столбца. Такое переименование используется для визуального упрощения запроса, когда реальное название слишком длинное или при выводе его в результате запроса (когда столбец образован из нескольких других или подзапроса), а также когда есть повторяющиеся столбцы. Пример:
1
2
3
SELECT ochen_krasiviy_krasny_background as background FROM backgrounds;
-- или
SELECT id, name, (SELECT count(mails.id) FROM mails WHERE mails.to=users.id) as mails FROM users;<br>
2. Формирование новых столбцов Позволяет формировать новый столбец на основе существующих. Структура:
1
SELECT <Выражение> +<Выражение>+…+<Выражение>
В качестве выражения может быть как поле таблицы, так и любой текст. При этом текст складывается путём обычного склеивания («1»+ «2»=«12»), а числа складываются обычным путём (1+1=2). Пример:
1
SELECT id, name, (likes-dislikes) as rating FROM users;
3. DISTINCT Позволяет устранить повторяющиеся записи при выборке. Структура:
1
SELECT DISTINCT <Список полей> FROM <Список таблиц>
Так же как и в обычном запросе, после SELECT необходимо указать список полей, а после FROM –список таблиц. Однако в случае с DISTINCT результат не будет иметь повторяющихся записей. Пример:
1
2
3
4
5
6
-- выведет только уникальные имена пользователей
SELECT DISTINCT name FROM users;
 
-- !!! ОСТОРОЖНО С:
-- Выведет все записи, т.к. id - уникален и делает уникальной всю строку
SELECT DISTINCT id, name FROM users;<br>
4. LIMIT Позволяет ограничить число записей при выводе запроса. Структура:
1
SELECT <Список полей> FROM <Список таблиц> LIMIT <Число>[,<Число2 >]
В результате работы запроса формируется таблица. Оператору LIMIT можно указать диапазон, если сразу после первого числа через запятую записать другое число. Пример:
1
2
3
4
-- Выбрать первые 10 записей
SELECT * FROM users LIMIT 10;
--  Выбрать первые 10 записей, начиная с 20-ой строки
SELECT * FROM users LIMIT 20, 10;
5. ORDER BY Позволяет отсортировать результат по одному или нескольким столбцам Структура:
1
SELECT <Списко полей> FROM <Список таблиц> ORDER BY <Список полей> [ASC|DESC] [WITH TIES]
После того, как SELECT сформирует результат запроса, оператор ORDER BY отсортирует их сл. образом: сначала результат будет отсортирован по первому полю, указанному в списке полей сразу после ORDER BY. Если в этом поле есть одинаковые записи, то они будут отсортированы по второму полю, по третьему и т.д. Если после списка полей указать ASC, то будет осуществлена по возрастанию, если DESC – по убыванию. Если ничего не указать, то как и при ASC - по возрастанию.
1
2
-- Сортировка по id по убыванию
SELECT id, name FROM users ORDER BY id DESC
Также можно отсортировать в случайном порядке:
1
SELECT <Списко полей> FROM <Список таблиц> ORDER BY RAND()
Спасибо за внимание.
Если статья Вам показалась незаконченной или Вы знаете как её улучшить, пожалуйста сообщите мне e@gohtml.ru