понедельник, 25 апреля 2022 г.

Основы языка запросов SQL


"

Основы языка запросов SQL

SELECT – оператор языка SQL, относится к группе операторов манипуляции данными (Data Manipulation Language, DML) и служит для выборки данных из базы данных.

Вот самый простой пример использования оператора SELECT.

  SELECT * FROM Table

где,
  • * — показать все данные;
  • FROM — из источника;
  • Table — название источника (в нашем случае таблица).
Но, на практике, зачастую нам нужны не все данные из таблицы, а иногда только некоторые колонки, для этого просто указываем вместо * название нужной колонки (или колонок), например:

   SELECT Price FROM Table
где, Price и есть название колонки.

Примечание! В качестве примера мы используем простую таблицу с перечислением моделей компьютеров, их ценой и названием.

Если Вам нужно указать несколько колонок, то просто перечисляйте их через запятую после оператора SELECT, например


  SELECT price, name, model
  FROM Table
где,  price, name, model это колонки из таблицы Table.

Условие выборки – оператор WHERE

В процессе выборке достаточно часто нам требуется отфильтровать данные по определенному условию, т.е. не все данные, а только те, которые соответствуют условию, в конструкции SELECT для этого можно использовать оператор WHERE.
  
  SELECT price FROM Table
  WHERE price > 100
где, WHERE и есть условие, т.е. мы отображаем только те строки, которые соответствуют нашему условию (цена больше 100).

Операторы сравнения в SQL

  • «>» – больше чего-либо;
  • «<» – меньше чего-нибудь;
  • «=» – равно;
  • «<>» – не равно;
  • «>=» – больше или равно;
  • «<=» – меньше или равно.
Также можно указывать в условии ключевое слово BETWEEN, т.е. попадает или не попадает значение в определенный промежуток, например

  SELECT price
  FROM table
  WHERE price BETWEEN 400 AND 600
где, мы указываем, что цена должна быть в промежутке от 400 до 600.

Для проверки, входит ли значение проверяемого выражения в какой-то определенный набор значений, можно использовать предикат IN.
  
  SELECT price
  FROM table
  WHERE price IN (400, 600)

В данном случае мы хотим получить только цену со стоимостью 400 и 600.

Если нам нужно получить только уникальные строки источника, можно указать ключевое слово DISTINCT, например
  SELECT DISTINCT price 
  FROM Table
  WHERE price > 100


Примечание! Язык SQL не чувствителен к регистру, запросы можно писать как в одну строку, так и разбивать их на несколько. Например, следующие два запроса абсолютно одинаковые:
  SELECT price FROM Table

  Select price 
  From Table

Сортировка ORDER BY

Очень часто необходимо отсортировать результат запроса по определенному полю (колонке). Для этого после запроса указываем конструкцию ORDER BY и те поля (можно несколько через запятую), по которым необходимо выполнить сортировку.
  SELECT price 
  FROM Table
  ORDER BY price DESC

Этот пример сортировки по убыванию, но можно сортировать и по возрастанию, вместо DESC пишем ASC, но обычно так не пишут, так как сортировка по возрастанию является по умолчанию.

Агрегирующие функции в SQL

В SQL очень полезные так называемые агрегирующие функции, а именно:
  • COUNT — количество значений в указанном столбце;
  • SUM — сумма значений в указанном столбце;
  • AVG — среднее значение в указанном столбце;
  • MIN — минимальное значение в указанном столбце;
  • MAX — максимальное значение в указанном столбце.
Например, нам нужно получить среднюю цену компьютера, максимальную и минимальную, для этого мы можем написать следующий запрос
  SELECT AVG(price), MAX(price), MIN(price)
  FROM table

Группировка GROUP BY

Можно проводить группировку значений по колонкам, например, нам нужно узнать среднюю цену для каждой модели компьютера, в данном случае запрос будет вот таким
  SELECT model, AVG (price) AS AVGPrice
  FROM table
  GROUP BY model

Если вы заметили, я здесь применил присвоение «псевдонима» для более удобного восприятия результатов этого запроса, т.е. после колонки пишите AS и название, которое Вы хотите, чтобы отображалась в результатах.

Также как и при использовании условий в отдельных колонках можно указывать и условие на целую группу, с помощью функции HAVING. Например, нам нужно определить максимальную цену компьютера, сгруппированную по моделям этих компов, но максимальная цена которых, меньше 500.
  SELECT model, MAX(price) 
  FROM table
  GROUP BY model
  HAVING MAX(price) < 500

В этом случае наш запрос выдаст нам сгруппированные по моделям компьютеры, максимальная цена которых, меньше 500.

NULL значение в SQL

В SQL есть такое значение как NULL. На самом деле NULL это отсутствие значения (т.е. пусто). Для того чтобы вывести все строки, в которых есть такое значение (например, у нас для какого-нибудь компьютера еще не назначена цена) можно использовать следующее условие:
  SELECT * 
  FROM table
  WHERE price IS NULL


Что и будет означать поиск всех строк, в которых отсутствует значение для поля price.

Упрощенный синтаксис оператора SELECT

  SELECT [DISTINCT] <Список полей> или *
  [FROM <Список таблиц>]
  [WHERE <Условие отбора>]
  [GROUP BY <Список полей для группирования>, ...]
  [HAVING <Условие группирования>]
  [ORDER BY <Список полей для сортировки> [ASC | DESC], ...]


Комментариев нет:

Отправить комментарий