SELECT (получение записей)
Синтаксис
Для получения записей из таблицы используется команда SELECT, далее указываются поля и таблица, а также (опционально) условия, порядок сортировки и группировки.
Пример:
SELECT name, age FROM students;
Если нужно выбрать все поля, то ставится звездочка. Пример:
SELECT * FROM students;
Вычисляемые поля и псевдонимы
Если из таблицы нужно вернуть не само значение поля, а результат каких-нибудь действий над ним, то в команде можно так и написать:
SELECT age + 10 FROM students;
Для чисел поддерживаются все основные операции: +
, -
, *
, /
, %
, ^
.
Однако обработка результата может быть не всегда удобно, особенно, если формула громоздкая. Поэтому для упрощения любому полю (не только вычисляемому, но даже обычному) можно присвоить псевдоним с помощью конструкции AS. Примеры:
SELECT age + 10 as new_age FROM students;
SELECT name, age + 10 as new_age FROM students;
SELECT name as my_name, age + 10 as new_age FROM students;
Функции
Здесь будет информация о функциях COUNT, SUM, AVG, MIN, IF и т. д. ...
Условия
Если нужно выбрать не все записи, а только удовлетворяющие определенным условиям, то поддерживается полный набор возможностей конструкции WHERE (подробнее о WHERE). Примеры:
SELECT * FROM students WHERE id = 2;
SELECT name FROM students WHERE age + 10 > 20;
SELECT name, age FROM students WHERE name LIKE 'A%' AND age = 18;
Сортировка
Поскольку записи из таблицы возвращаются в неопределенном порядке, то для удобства использования и выполнения задач выходные данные можно упорядочить с помощью конструкции ORDER BY с указанием далее поля и (опционально) порядка сортировки:
- ASC (по умолчанию) - сортировка по возрастанию
- DESC - сортировка по убыванию
Примеры:
SELECT * FROM students ORDER BY name; SELECT name FROM students ORDER BY age DESC; SELECT * FROM students WHERE age > 18 ORDER BY name ASC; SELECT * FROM students ORDER BY name, age DESC;
Можно указать несколько полей для упорядочивания (как в последнем примере). Тогда, если порядок по первому полю не определен (значения совпадают), то будет проверяться следующее поле, и т. д.
Группировка
Здесь будет информация о конструкции GROUP BY...
Ограничение числа записей и сдвиг
Для получения конкретного числа записей из таблицы используется конструкция LIMIT. Она имеет три формы:
- LIMIT N - получить не более чем N записей
- LIMIT M, N - пропустить первые M записей и далее получить не более чем N записей
- LIMIT N OFFSET M - аналогична предыдущей
Примеры:
SELECT * FROM students LIMIT 10;
SELECT * FROM students WHERE age >= 15 LIMIT 5, 10;
SELECT id, name FROM students WHERE name LIKE 'A%' ORDER BY name LIMIT 5 OFFSET 10;