Операторы SQL запросов





SQL (язык структурированных запросов) — ведущий язык запросов, для быстрого и простого извлечения информации из значительного банка данных. Работает по следующей схеме: читатель делает запрос, отправляет его в БД, материал обрабатывается, а на его базе формируется ответ.


СУБД SQL (Система управления базами данных) имеет большие возможности и ресурсы. С её помощью вы сможете управлять данными:


  • удалять;

  • обновлять;

  • фильтровать и искать элементы;

  • изменять конструкцию данных элементов;

  • организовывать запасные копии.


СУБД — программное обеспечение, которое взаимодействует с читателем и сервером. Оно отвлекает читателя от видения системы БД и предоставляет ей возможность взаимодействовать с данными.


Для чего необходим SQL


SQL не относится к языку программирования. С ним вы не сможете создавать виртуальные площадки или мобильные приложения.


Зато SQL можно использовать для:


  • Создания таблиц — собирайте все данные о пользователях в удобных таблицах с бесконечным количеством колонок.

  • Поиска данных — находите сведения о клиенте или группе клиентов по нужным параметрам за две-пять минут.

  • Объединения материала и расчетов — объединяйте данные из множества разных таблиц за считанные минуты.

  • Защиты и хранения данных — надежно храните информацию о людях: номер телефона, почту, данные карты и т. д.

  • Распределения данных по категориям — разделите информацию по удобным вам параметрам: год, магазин, пол, возраст.

  • Анализа эффективности — проанализируйте продажи в 350 магазинах, оцените динамику продаж за последние пять, 10, 15 лет и отсортируйте по прибыльности.


Google, Amazon, Airbnb, Facebook, Netflix, Uber и множество других компаний применяют SQL. Особенно — функцию отображения рекомендаций каждому конкретному пользователю на основе того, что он смотрит или читает.



Вспомните, как выбирали телефон или любой другой товар на сайте магазина. И после неделю, а то и месяц натыкались на рекламу этого же товара. Это все — возможности SQL.



SQL необходим аналитикам данных, тестировщикам, разработчикам, маркетологам, администраторам — всем, кто работает с большими объемами данных.


Операторы SQL: группы


Язык SQL состоит из операторов, разделенных по отдельным группам. У каждой — свои задачи. Для краткости они называются: DML, TCL, DCL и DDL.


DDL (язык определения данных) — совокупность компьютерных языков, которые задействованы для обозначения структуры информационной системы. Они применяются для создания, изменения и удаления целых сводок. В эту группу вступают такие операторы обмена информации с процессами БД, как:


  • CREATE — формирование;

  • ALTER — преобразование;

  • DROP — устранение.


DML (язык манипулирования данными) — это совокупность компьютерных языков, используемых в ПО или читателями БД. Чаще всего их применяют для присоединения, правки, извлечения и выгрузки сведений в БД. Команды содержат распространенные слова и символы для работы с данными:


  • SELECT — отбор;

  • INSERT — прибавление;

  • UPDATE — правка;

  • DELETE — извлечение.


DCL (язык управления данными) используется большинством операционных систем. Он требуется для выдачи и отмены доступа к БД для конкретного пользователя. К данному языку принадлежат:


  • GRANT — помогает читателю или группе осуществить действия с объектом;

  • DENY — назначает запрет, имеет преимущество перед разрешением;

  • REVOKE — отзывает предоставленные возможности.


TCL (язык управления транзакциями) — группа, которая разрешает руководить последовательностью операций (транзакций). Если одна из команд в транзакции не работает, все действия, которые уже были совершены, отменяются. К данному языку принадлежат:


  • BEGIN TRANSACTION — обнаруживает начало последовательности операций;

  • ROLLBACK TRANSACTION — отклоняет все преобразования, которые сделаны в рамках нынешней транзакции;

  • COMMIT TRANSACTION — задействует набор последовательных команд, называемых транзакциями;

  • SAVE TRANSACTION — определяет предварительный этап сохранения в транзакции.


Основные операторы


Арифметические


Такие операторы SQL считаются легкими и используются часто. Они относятся к числовым типам данных. Мы знакомимся и используем их со школы.


  • «+» — бинарный оператор сложения;

  • «–» — бинарный оператор вычитания;

  • «*» — бинарный оператор деления;

  • «/» — бинарный оператор деления.

  • «%» — оператор деления по модулю. Результатом будет целочисленный остаток.


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


Операторы сравнения SQL распознают, являются ли указанные сведения истиной или ложью. Используйте их во всех выражениях, кроме типов text, image и ntext.


Оператор

Описание

Пример
= Не арифметическое «равно», а сравнение на равенство. Если равенство верное, то получится результат ИСТИНА, если нет — ЛОЖЬ (6 = 3 + 3) результат ИСТИНА
!= «Не равно» или сравнение на неравенство, ИСТИНА система выдаст, если значения будут не равны (7 != 13) результат ИСТИНА
<> Аналогично предыдущему. ИСТИНА получится, если значения будут не равны (5 != 11) результат ИСТИНА
> «Больше». Если левая часть (левый операнд) больше правой, то результат ИСТИНА (7 > 2) результат ИСТИНА
< «Меньше». Принимает значение ИСТИНА, когда правый операнд больше левого (10 < 2) результат ЛОЖЬ
>= «Больше либо равно». Выдает значение ИСТИНА, если правая часть больше либо равна левой (16 >= 16) результат ИСТИНА
<= «Меньше либо равно». Значение ИСТИНА появляется, когда правая часть больше либо равна левой (18<=90) результат ИСТИНА
!< «Не меньше». Приобретает значение ИСТИНА, когда правая часть не меньше левой (11!<5) результат ЛОЖЬ
!> «Не больше». Принимает значение ЛОЖЬ, когда правая часть не больше левой (12 !> 10) результат ЛОЖЬ

Логические


Ниже представлен перечень логических SQL-операторов. Они подвергают проверке подлинность данных. А именно:


  • ALL — показывает все значения в таблице.

  • AND — необходим для добывания результата при соблюдении двух заданных условий.

  • ANY — сравнивает текущую работу с дополнительными запросами.

  • BETWEEN — этот оператор может задавать условия в определенном диапазоне. Для правильной работы требуется установить min и max значения.

  • EXISTS — используется, чтобы указать, заинтересован ли пользователь в результате подзапроса.

  • IN — указывает значения для выведения сторки.

  • LIKE — поиск подстрок в тексте. Если подстрока найдена, она будет удаляться.

  • NOT — оператор возражения отменяет любые ситуации.

  • OR — отображает результаты, если значение «ИСТИНА» есть в одном из компонентов операции.

  • IS NULL — разрешает исследовать значение поля на неизвестность информации.

  • UNIQUE — исследует неповторимость каждой строки.


Основной список выражений SQL


Выражение — это объединение функций, обозначений и операторов, которые вычисляют значения. Их можно применять для получения конкретного подбора материала из БД.


Основные словосочетания выражений выглядят так:


SELECT col1, col2, ...colN


FROM tableName


Есть множество групп выражений: логические, для работы с датами или числами.


Логические выражения — когда результат может быть только истинным или ложным. Его не указывают при разработке таблиц.

SELECT col1, col2, ...colN


FROM tableName


WHERE — выражение для поиска идентичности с единичным значением.


К примеру, в сводке «пользователи» существуют такие записи:


ID

Имя

Возраст Город Статус
1 Александр 38 Москва активный
2 Анастасия 34 Иркутск неактивный
3 Юлия 32 Иркутск активный
4 Сергей 36 Москва неактивный

Совершаем поиск активных пользователей:


SELECT * FROM пользователи WHERE статус = активный.


Итог: формирует случайное число с плавающей точкой в диапазоне от 0 до 1.


Какие выражения можно использовать для работы с датами? Например, вам нужно найти сумму всех товаров, которые приобрели женщины, сгруппировать по дням, отсортировать по возрастанию:


SELECT SUM(total) as sum_to, DAY(date) as d_da FROM new_sale5


Where gender = 'Female'


group by DAY(date)


Order by sum_to;


sum_to

d_da

1057.9275207519531 31
2325.5400161743164 29
2378.8275241851807 13
2649.0134868621826 6
3193.732488632202 18
3522.708013534546 22

Вернем буквенное название:


SELECT DATENAME(month, getdate());


  ↓
March

SELECT DATENAME(weekday, getdate());


  ↓
Friday

SELECT SUM(total) as sum_to, DATENAME(month, date) AS mon_da FROM new_sale5


group by DATENAME(month, date);


sum_to

mon_da

95875.9199256897 February
119374.40557003021 January
107716.42370986938 March

Выведем максимальное значение выручки в день недели, отсортируем по убыванию:


SELECT MAX(total) as m_to, datename(weekday, date) as w_da from new_sale5


GROUP BY datename(weekday, date)


ORDER by m_to DESC;


sum_to

w_da

1042.65 Friday
1034.46 Wednesday
1023.75 Saturday
1022.385 Tuesday
939.54 Sunday
936.6 Monday
921.186 Thursday

Аналоги функций day, month, year:


SELECT datepart(month, getdate());


SELECT datepart(year, getdate());


SELECT datepart(day, getdate());


Добавим к дате временной период:


SELECT dateadd(month, 2, getdate());


SELECT dateadd(day, -5, getdate());


  ↓
2023-03-26 19:31:18

Выведем всю информацию за январь 2019 года и отсортируем по возрастанию:


SELECT * from new_sale5


Where date BETWEEN '2019-01-01' and dateadd(day, -1, dateadd(month, 1, '2019-01-01'))


ORDER by date;


date invoice_id total
2019-01-01 765-26-6951 457.443
2019-01-01 530-90-9855 399-756
2019-01-01 891-01-7034 470.673
2019-01-01 493-65-6248 388.29
2019-01-01 556-97-7101 132.762
2019-01-01 133-14-7229 132.027
2019-01-01 651-88-7328 621.243

SELECT * from new_sale5


Where date BETWEEN '2019-01-01' and dateadd(day, 30, '2019-01-01')


ORDER by date;


date invoice_id total
2019-01-01 765-26-6951 457.443
2019-01-01 530-90-9855 399-756
2019-01-01 891-01-7034 470.673
2019-01-01 493-65-6248 388.29
2019-01-01 556-97-7101 132.762
2019-01-01 133-14-7229 132.027
2019-01-01 651-88-7328 621.243

Посчитаем разницу между днями:


SELECT datediff(day, date, getdate()) from new_sale5;


  ↓
1546
1484
1489
1524
1512
1467
1495
45014
45014

SELECT datediff(month, date, getdate()) from new_sale5;


  ↓
50
48
48
50
49
48

SELECT datediff(year, date, getdate()) from new_sale5;


  ↓
4
4
4
4

SELECT datediff(day, dateadd(day, -5, getdate()) , getdate());


  ↓
5

SELECT datediff(day, '2022-12-21' , getdate());


  ↓
100

Выведем всю информацию за январь 2019 года и отсортируем по возрастанию, не используя BETWEEN:


SELECT * from new_sale5


Where datediff(day, '2019-01-01', date)< 31 and datediff(day, '2019-01-01', date) >= 0 order by date;


date invoice_id total
2019-01-01 765-26-6951 457.443
2019-01-01 530-90-9855 399-756
2019-01-01 891-01-7034 470.673
2019-01-01 493-65-6248 388.29
2019-01-01 556-97-7101 132.762

SELECT * from new_sale5


Where datediff(day, '2019-01-01', date)< 32 and datediff(day, '2019-01-01', date) >= 0 order by date


date invoice_id total
2019-01-01 765-26-6951 457.443
2019-01-01 530-90-9855 399-756
2019-01-01 891-01-7034 470.673
2019-01-01 493-65-6248 388.29
2019-01-01 556-97-7101 132.762

SQL — с чего начать


Набор правил операторов SQL-запроса очень прост. Чтобы работать, необходимы базовые знания Excel и начальный уровень английского языка.

Для старта используйте несложные команды:

  • SELECT — отобрать показатели;

  • FROM — исходник информации, откуда получены данные;

  • JOIN — для дополнения таблиц;

  • WHERE — при каком условии;

  • GROUP BY — образование групп данных по заданному критерию;

  • ORDER BY — классификация данных по выбранному критерию;

  • LIMIT — количество результатов;

  • ; — конец предложения.

Вы можете изучать SQL самостоятельно по бесплатным видеоурокам, профильным статьям или учебникам в открытом доступе. В интернете есть все — это плюс. Если вы уже искали материалы в сети, то наверняка столкнулись с тем, что среди большого объема информации непросто найти действительно ценный достоверный материал — это минус. Найти — это полбеды, но информацию ещё необходимо адаптировать под себя. А это уже задача со звездочкой.

Как мы решили эту проблему в HOCK? Наш курс SQL проходит онлайн в режиме реального времени с преподавателем. Вы не работаете с абстрактным тренажером. Преподаватель объясняет тему на реальных примерах из вашей ежедневной практики, а вы применяете все инструменты сразу в своей работе.

Например, вам необходимо проанализировать прибыль компании за последние пять лет. Преподаватель дает вам инструменты, простым языком объясняет, как их применять, показывает, как выполнить вашу задачу. Вы получаете точный ответ за две минуты.

Если возникнут трудности, вы можете задать вопросы на занятии или в любое другое время. Живой формат обучения поможет вам быстрее и проще освоить SQL, освободив до 85% рабочего времени за счет автоматизации рутинных задач.


Зачем изучать SQL в 2023 году


SQL — один из главных навыков для всех, кто работает с данными:

  • Аналитики ускорят процесс получения необходимых данных, автоматизируют 85% рутинных и смогут сконцентрироваться на важных и интересных задачах.

  • Тестировщики смогут оперативно находить неисправности, которые вызваны неточными взаимодействиями с базой данных.

  • Финансисты быстро начнут получать наиболее точную информацию и делать достоверные прогнозы за счет быстрого автоматического анализа больших выборок.

  • Маркетологи смогут получать оперативную статистику и корректировать рекламные инструменты благодаря анализу больших объемов данных.

Вы можете пройти курс «SQL для работы c данными и аналитики» в HOCK Training и освоить навык с нуля или углубить свои знания.


Что дает курс?


  • Навыки для работы. Вы научитесь «общаться» с базами данных, формировать необходимые запросы и получать нужную информацию за пару минут.

  • Наставничество и консультация. Во время всего обучения преподаватель лично поможет вам дойти до результата и закрепить полученные знания.

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

  • Электронный комплект материалов. Вся нужная информация всегда будет у вас под рукой.

  • Рост в доходе и карьере. Специалисты со знанием SQL зарабатывают на 25-42% больше своих коллег за счет уникальных навыков, ведь работодателю не нужно привлекать сторонних специалистов.

  • Свободное время. Навыки SQL помогут вам автоматизировать 85% рутинных задач, а освободившееся время потратить по своему усмотрению: на новые интересные проекты, отдых или семью.

  • По окончанию курса вы защитите проект и получите диплом государственного образца.

Представьте, насколько простой и интересной станет ваша работа с SQL! Раньше на поиск и загрузку нужных данных мог уйти целый месяц однообразной ручной работы с электронными таблицами. С помощью SQL вы сможете выполнить один запрос за пять минут, при этом вся необходимая информация будет выведена на экран, а результаты сохранены в файл.


Автор статьи:

НАТАЛЬЯ КИСЕЛЕВА

МГТУ им. Баумана (Прикладная информатика, красный диплом)

ВШЭ (Компьютерная лингвистика)

Старший аналитик

Опыт работы в ИБМП — разработан инструмент для анализа психологического состояния космонавтов.

Опыт работы в ПАО Банк "ФК Открытие"; по 115 ФЗ разработан инструмент для мониторинга, вышли в ОПЭ.

На текущий момент Наталья занимается контролем качества данных и переводом систем мониторинга на искусственный интеллект.


Все блоги