"
Основы языка запросов SQL
SELECT – оператор языка SQL, относится к группе операторов манипуляции данными (Data Manipulation Language, DML) и служит для выборки данных из базы данных.
Вот самый простой пример использования оператора SELECT.
где,
- * — показать все данные;
- FROM — из источника;
- Table — название источника (в нашем случае таблица).
Но, на практике, зачастую нам нужны не все данные из таблицы, а иногда только некоторые колонки, для этого просто указываем вместо * название нужной колонки (или колонок), например:
где, Price и есть название колонки.
Примечание! В качестве примера мы используем простую таблицу с перечислением моделей компьютеров, их ценой и названием.
Если Вам нужно указать несколько колонок, то просто перечисляйте их через запятую после оператора SELECT, например
где, price, name, model это колонки из таблицы Table.
Условие выборки – оператор WHERE
В процессе выборке достаточно часто нам требуется отфильтровать данные по определенному условию, т.е. не все данные, а только те, которые соответствуют условию, в конструкции SELECT для этого можно использовать оператор WHERE.
где, WHERE и есть условие, т.е. мы отображаем только те строки, которые соответствуют нашему условию (цена больше 100).
Операторы сравнения в SQL
- «>» – больше чего-либо;
- «<» – меньше чего-нибудь;
- «=» – равно;
- «<>» – не равно;
- «>=» – больше или равно;
- «<=» – меньше или равно.
Также можно указывать в условии ключевое слово BETWEEN, т.е. попадает или не попадает значение в определенный промежуток, например
где, мы указываем, что цена должна быть в промежутке от 400 до 600.
Для проверки, входит ли значение проверяемого выражения в какой-то определенный набор значений, можно использовать предикат IN.
В данном случае мы хотим получить только цену со стоимостью 400 и 600.
Если нам нужно получить только уникальные строки источника, можно указать ключевое слово DISTINCT, например
Примечание! Язык SQL не чувствителен к регистру, запросы можно писать как в одну строку, так и разбивать их на несколько. Например, следующие два запроса абсолютно одинаковые:
Сортировка ORDER BY
Очень часто необходимо отсортировать результат запроса по определенному полю (колонке). Для этого после запроса указываем конструкцию ORDER BY и те поля (можно несколько через запятую), по которым необходимо выполнить сортировку.
Этот пример сортировки по убыванию, но можно сортировать и по возрастанию, вместо DESC пишем ASC, но обычно так не пишут, так как сортировка по возрастанию является по умолчанию.
Агрегирующие функции в SQL
В SQL очень полезные так называемые агрегирующие функции, а именно:
- COUNT — количество значений в указанном столбце;
- SUM — сумма значений в указанном столбце;
- AVG — среднее значение в указанном столбце;
- MIN — минимальное значение в указанном столбце;
- MAX — максимальное значение в указанном столбце.
Например, нам нужно получить среднюю цену компьютера, максимальную и минимальную, для этого мы можем написать следующий запрос
Группировка GROUP BY
Можно проводить группировку значений по колонкам, например, нам нужно узнать среднюю цену для каждой модели компьютера, в данном случае запрос будет вот таким
Если вы заметили, я здесь применил присвоение «псевдонима» для более удобного восприятия результатов этого запроса, т.е. после колонки пишите AS и название, которое Вы хотите, чтобы отображалась в результатах.
Также как и при использовании условий в отдельных колонках можно указывать и условие на целую группу, с помощью функции HAVING. Например, нам нужно определить максимальную цену компьютера, сгруппированную по моделям этих компов, но максимальная цена которых, меньше 500.
В этом случае наш запрос выдаст нам сгруппированные по моделям компьютеры, максимальная цена которых, меньше 500.
NULL значение в SQL
В SQL есть такое значение как NULL. На самом деле NULL это отсутствие значения (т.е. пусто). Для того чтобы вывести все строки, в которых есть такое значение (например, у нас для какого-нибудь компьютера еще не назначена цена) можно использовать следующее условие:
Что и будет означать поиск всех строк, в которых отсутствует значение для поля price.
Комментариев нет:
Отправить комментарий