Основы языка запросов SQL – оператор SELECT

В языке запросов SQL значительное место занимает оператор SELECT, так как с помощью него мы осуществляем выборку в базе данных. В данной статье мы рассмотрим основы этого, очень важного оператора языка SQL.

Основы языка запросов SQL – оператор SELECT

В Интернете множество всевозможных статей, книг, самоучителей по SQL, но все они сложны для человека, который никогда не слышал об SQL, а может и вообще о программировании и поэтому для него все эти источники тяжелы для изучения. Здесь я пытаюсь объяснить основу одного оператора, не вдаваясь в глубь (именно это затрудняет изучение, что сразу от основы переходят к сложным запросам), поэтому сначала необходимо узнать основу, а потом переходить к более сложному, что и облегчает изучение языка SQL. Данная статья отлично подойдет для начинающих, которые хотят научиться писать простые запросы SQL на выборку данных.

Что такое язык SQL и оператор SELECT

SQL – это язык запросов, который служит для манипуляции (управления) данными в реляционных базах данных. Имеет широкую популярность и поэтому любой уважающий себя IT-к должен знать основы этого языка, так как базы данных есть практически в каждой компании.

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

Примечание! Для того чтобы изучать язык SQL и базы данных существуют специальные бесплатные редакции крупных СУБД, например в SQL Server от компании Microsoft есть редакция Express. Как установить данную СУБД можете почитать в материале — Описание установки Microsoft SQL Server 2016 Express.

Вот самый простой пример использования оператора 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.

Примечание! Подробней о группировке в SQL можете почитать вот в этом материале.

NULL значение в SQL

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

  
  SELECT * 
  FROM table
  WHERE price IS NULL

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

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

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

Заметка! Если Вас интересует язык T-SQL, то рекомендую почитать мою книгу «Путь программиста T-SQL», в ней я подробно, с большим количеством примеров, рассказываю про основы языка Transact-SQL специально для начинающих.

На сегодня пока все, мы рассмотрели с Вами небольшую часть языка SQL, а именно оператор SELECT. Удачи!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Комментарии: 4
  1. Аватар
    Oksana

    спасибо! Все очень просто и понятно объяснено!

  2. Аватар
    Элла

    Спасибо большое!! всё очень понятно и с любовью к людям ))))

  3. Аватар
    Ольга

    Автор Администратор, ВЫ — профи! От меня — респект!!!
    Восхищаюсь Вашим умом, любовью к своему делу, умением объяснить доступно, …

  4. Аватар
    Армина

    Благодарю за столь доступное объяснение! Вы спасли меня!

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.