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

Стандарт языка SQL был принят в 1992 году и используется до сих пор. Именно он стал эталоном для многих систем управления базами данных. Конечно, некоторые производители используют собственную интерпретацию стандарта. Но в каждой системе по-прежнему есть основные компоненты: операторы SQL.

Введение

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

инструкции sql

Определены несколько категорий операторов SQL:

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

Операторы SQL для манипулирования данными

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

операторы запроса sql

ВСТАВИТЬ. Вставить строки в существующую таблицу. Его можно использовать для одного или нескольких значений, определенных определенным условием. Например:

ВСТАВИТЬ

имя таблицы (имя столбца 1, имя столбца 2)

ЗНАЧЕНИЯ (значение 1, значение 2).

Чтобы использовать инструкцию SQL многозначного запроса INSERT, используется следующий синтаксис:

ВСТАВИТЬ

имя таблицы 1 (имя столбца 1, имя столбца 2)

ВЫБРАТЬ имя столбца 1, имя столбца 2

Имя таблицы DA 2

ГДЕ имя таблицы 2 имя столбца 1> 2

Этот запрос выберет все данные из таблицы 2 больше 2 в столбце 1 и вставит их в первую.

ОБНОВИТЬ. Как следует из названия, этот оператор запроса SQL обновляет данные в существующей таблице на основе определенного атрибута.

Пример:

ОБНОВЛЕНИЕ имя таблицы 1

УСТАНОВИТЬ имя столбца 2 = «Василий»

ГДЕ имя таблицы 1 имя столбца 1 = 1

Эта конструкция заполнит значением Василия все строки, где оно встречается с цифрой 1 в первом столбце.

УДАЛЯТЬ. Удаляет данные из таблицы. Вы можете указать условие или удалить все строки.

УДАЛИТЬ ИЗ имени таблицы

ГДЕ имя таблицы Имя столбца 1 = 1

Вышеупомянутый запрос удалит все данные со значением 1 в первом столбце из базы данных. А вот как очистить всю таблицу:

УДАЛИТЬ ИЗ имени таблицы.

Далее стоит поговорить об операторе SELECT. Он один из самых важных, поэтому ему придется посвятить отдельную главу.

Оператор SELECT

Основная цель SELECT — выбрать данные на основе определенных условий. Результатом его работы всегда является новая таблица с выбранными данными. Оператор MS SQL SELECT может использоваться в самых разных запросах. Поэтому, наряду с этим, вы можете рассмотреть другие связанные ключевые слова.

Чтобы выбрать все данные из определенной таблицы, используйте знак «*».

ВЫБИРАТЬ *

Имя таблицы DA 1

Результатом этого запроса будет точная копия таблицы 1.

И здесь выбор осуществляется предложением WHERE, которое извлекает из таблицы 1 все значения, превышающие 2 в столбце 1.

ВЫБИРАТЬ *

Имя таблицы DA 1

ГДЕ имя таблицы 1 имя столбца 1> 2

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

ВЫБЕРИТЕ имя таблицы 1 имя столбца 1

Имя таблицы DA 1

Результатом этого запроса будут все строки со значениями из столбца 1. Используя операторы MS SQL, вы можете создать свою собственную таблицу, заменяя, вычисляя и заменяя определенные значения на лету.

инструкции ms sql

ВЫБИРАТЬ

имя таблицы 1 имя столбца 1

имя таблицы 1 имя столбца 2

имя таблицы 1 имя столбца 3

«=» КАК EQ

имя таблицы имя 1-го столбца 2 * имя таблицы имя 1-го столбца 3 AS SUMMA

Имя таблицы DA 1

Этот, казалось бы, сложный запрос извлекает все значения из таблицы 1, а затем создает новые столбцы EQ и SUMMA. В первом он вставляет знак «+», во втором — произведение данных столбцов 2 и 3. Полученный результат можно представить в виде таблицы, чтобы понять, как это работает:

Столбец 1

Колонка 2

Колонка 3

Эквалайзер

СУММА

Название позиции 1

10

50

+

500

Название позиции 2

15

100

+

1500

Используя оператор SELECT, вы можете мгновенно отсортировать данные по любым критериям. Для этого используется слово ORDER BY.

ВЫБИРАТЬ

имя таблицы 1 имя столбца 1

имя таблицы 1 имя столбца 2

имя таблицы 1 имя столбца 3

Имя таблицы DA 1

СОРТИРОВАТЬ ПО имени столбца 2

Итоговая таблица будет выглядеть так:

Столбец 1

Колонка 2

Колонка 3

1

1

54

3

2

12

7

3

100

2

5

1

То есть все строки были установлены таким образом, что значения в столбце 2 находятся в порядке возрастания.

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

Таблица «Сотрудники»

Число

Имя

Фамилия

1

Вася

Васин

2

Питер

Петин

Таблица заработной платы

Число

Предложение

Ценится

1

1

10000

2

0,5

3500

Теперь вам нужно как-то связать эти две таблицы, чтобы получить общие значения. Используя базовые операторы SQL, вы можете сделать это следующим образом:

ВЫБИРАТЬ

Сотрудники

ФИО сотрудника

Зарплата

Начисленная зарплата

Сотрудники DA, Заработная плата

ГДЕ Number.employees = Number.Retribution

Здесь выбор производится из двух разных таблиц значений, объединенных по номерам. Результатом будет следующий набор данных:

Число

Имя

Предложение

Ценится

1

Вася

1

10000

2

Питер

0,5

3500

Ещё немного о SELECT. Использование агрегатных функций

Один из основных операторов SQL SELECT может выполнять некоторые вычисления при извлечении. Для этого используйте определенные функции и формулы.

основные инструкции sql

Например, чтобы получить количество записей из таблицы «Сотрудники», вам нужно использовать запрос:

ВЫБРАТЬ СЧЕТЧИК (*) КАК НЕТ

ПО Сотрудникам

Результатом является таблица с одним значением и одним столбцом.

Нет

2

вы можете использовать функции в запросах, которые вычисляют сумму, максимальное и минимальное значения и среднее значение. Для этого используются ключевые слова SUM, MAX, MIN, AVG.

Например, вам нужно сделать выбор из уже известной таблицы «Зарплата»:

Число

Предложение

Ценится

1

1

10000

2

0,5

3500

Вы можете применить этот запрос и посмотреть, что произойдет:

ВЫБИРАТЬ

SUM (начисленная заработная плата) AS SUMMA

МАКС. (Начисленная заработная плата) КАК МАКС

МИН (Зарплата. Срок погашения) КАК МИН

AVG (начисленная заработная плата) AS SRED

ОТ Зарплаты

Итоговая таблица будет такой:

СУММА

МАКСИМУМ

MIN

СРЕД

13500

10000

3500

6750

Таким образом можно выбрать нужные значения из базы данных, выполняя вычисление различных функций на лету.

Союз, пересечение и различия

Объедините несколько запросов в SQL

ВЫБЕРИТЕ Employees.Name

ПО Сотрудникам

ГДЕ Employees.Number = 1

СОЮЗ

ВЫБЕРИТЕ Employees.Name

Сотрудники DA, Заработная плата

ГДЕ Зарплата. Число = 1

Следует учитывать, что при таком объединении таблицы должны быть совместимы. То есть у них одинаковое количество столбцов.

Синтаксис оператора SELECT и порядок его обработки

Прежде всего, SELECT определяет область, из которой он будет брать данные. Для этого используется ключевое слово FROM. Если не указано, что выбрать.

Таким образом, может присутствовать предложение SQL WHERE. С его помощью SELECT перебирает все строки таблицы и проверяет соответствие данных условию.

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

Если запрос содержит GROUP BY, значения группируются на основе указанных параметров.

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

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

  • «<». Меньше знака. Обратный к предыдущему оператору.

  • «<>». Не то же самое. Условие будет считаться ИСТИННЫМ, только если один операнд не совпадает с другим. Имеет другое толкование — «!=».

  • «>». Главный признак. Если значение левой части выражения больше, возвращается логическое ИСТИНА, и условие считается выполненным.

  • Знак равно Он указывает, как можно догадаться, на равенство двух выражений. Например, он уже использовался в предыдущих примерах: WHERE Salary Number = 1.

  • Знаки «<=» и «> =». Он отличается от простых операторов плюс и минус тем, что если операнды равны, условие также будет истинным.

LIKE

Вы можете перевести это ключевое слово как «похожий». Оператор LIKE в SQL используется примерно так же: он выполняет запрос с использованием шаблона. То есть позволяет расширить выбор данных из базы данных с помощью регулярных выражений.

как инструкция в sql

Например, была поставлена ​​следующая задача: из уже известной базы «Сотрудники» получить всех людей, чье имя заканчивается на «Я». Таким образом, запрос можно составить так:

ВЫБИРАТЬ *

ПО Сотрудникам

ГДЕ Имя LIKE `% i`

Знак процента в данном случае обозначает маску, то есть любой символ и их количество. А с буквой «I» SQL определит, что последний символ должен быть именно таким.

CASE

Этот оператор SQL Server — это реализация с множественным выбором. Он напоминает конструкцию switch во многих языках программирования. Оператор SQL CASE выполняет действие при нескольких условиях.

Например, вам нужно выбрать максимальное и минимальное значения из «Зарплата.

Число

Предложение

Ценится

1

1

10000

2

0,5

3500

Таким образом, запрос можно составить так:

ВЫБИРАТЬ *

ОТ Зарплаты

WHERE CASE WHEN SELECT MAX (оценивается) ТОГДА Максимум

КОГДА ВЫБРАТЬ МИН ТО МИНИМУМ

Итого КОНЕЦ

В этом контексте система ищет максимальное и минимальное значения в столбце Начисленные. Затем, используя END, создается поле «Итого», в которое будет вставлено либо «Максимум», либо «Минимум», в зависимости от результата выполнения условия.

Кстати, в SQL есть и более компактная форма CASE — COALESCE.

Операторы определения данных

Это представление позволяет выполнять различные изменения в таблицах: создавать, удалять, изменять и использовать индексы.

Первое, что нужно рассмотреть, — это СОЗДАТЬ ТАБЛИЦУ. Он ничего не делает, кроме создания таблицы. Если вы просто наберете запрос CREATE TABLE, ничего не произойдет, так как нужно указать еще несколько параметров.

Например, чтобы создать знакомую таблицу «Сотрудники», вам нужно использовать команды:

СОЗДАТЬ ТАБЛИЦУ сотрудников

(Число (10) НЕ ПУСТО

Варчар (50) НЕ ПУСТО

Фамилия varchar (50) NOT NULL)

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

DROP TABLE

Выполняет простую задачу: удаление указанной таблицы. У него есть дополнительный параметр IF EXISTS. Съешьте ошибку падения, если стол, который вы ищете, не существует. Пример использования:

УДАЛИТЬ ТАБЛИЦУ Сотрудники, ЕСЛИ ОНА СУЩЕСТВУЕТ.

CREATE INDEX

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

CREATE INDEX имя_индекса

ON имя_таблицы (имя_столбца)

Этот оператор используется в T-SQL, Oracle, PL SQL и многих других интерпретациях технологий.

ALTER TABLE

Функциональный оператор с множеством опций. В целом меняется структура, определение и расположение таблиц. Оператор, используемый в Oracle SQL, Postgres и многих других.

Ниже представлены различные варианты использования ALTER TABLE.

  • КАПАТЬ. Удаляет столбец. Также в нем есть ключ IF EXISTS, без которого будет сгенерирована ошибка, указывающая на отсутствие необходимого столбца;

  • ИЗМЕНИТЬ. Эта команда поможет вам изменить тип и дополнительные атрибуты определенного столбца. И он используется следующим образом: ALTER TABLE имя_таблицы MODIFY имя_столбца атрибуты типа_данных;

  • ИЗМЕНИТЬ. Используется для переименования имени поля в указанное. Пример использования: ALTER TABLE имя_таблицы CHANGE old_name new_name;

  • ВСТАВЛЯТЬ. Добавляет столбец в таблицу. Его синтаксис следующий: ALTER TABLE имя_таблицы ДОБАВИТЬ имя_столбца тип_ хранимых данных. У него может быть опция IF NOT EXISTS для устранения ошибки, если созданный столбец уже существует;

CREATE VIEW

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

t sql заявление

Процесс создания происходит с помощью простого запроса:

СОЗДАТЬ ВИД имя представления КАК ВЫБРАТЬ ИЗ * имени таблицы

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

Немного о функциях

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

  • СУММ. Все просто: функция вычисляет сумму значений столбца. Он используется исключительно для числовых данных. Добавление параметра DISTINCT в запрос добавит только уникальные значения;

  • LEN. Простая функция, которая вычисляет длину значений столбца. Результатом будет новая таблица, показывающая количество символов;

  • КРУГЛЫЙ. Функция округления десятичных дробей. Синтаксис использует имя столбца и количество десятичных знаков;

  • СЧИТАТЬ. Подсчитайте записи или строки в определенной таблице. В качестве параметра можно указать имя столбца, тогда данные будут взяты из него. ВЫБРАТЬ СЧЕТЧИК * ИЗ сотрудников;

  • ЮРИСТ Эта функция применяется только к столбцам с числовыми данными. Его результат — определение среднего арифметического всех значений;

  • МИН и МАКС. Эти функции уже использовались в этой статье. Они определяют максимальное и минимальное значения из указанного столбца;

  • ТЕПЕРЬ. Это ключевое слово используется для вычисления текущей даты и времени.

Дополнительные операторы

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

  • ОТРЕЗАТЬ. Удалите данные из указанной области базы данных. Он отличается от аналогичных операторов тем, что после его использования восстановить данные невозможно. Следует отметить, что реализация этого ключевого слова в разных интерпретациях SQL может отличаться. Поэтому, прежде чем пытаться использовать TRUNCATE, лучше прочитать справочную информацию.

  • ОСНОВНОЙ КЛЮЧ. Переводится как «первичный ключ». Собственно, именно эта терминология используется в справочных материалах. Это означает уникальный строковый идентификатор. Он используется, как правило, при создании таблицы для указания поля, которое будет ее содержать.

  • ПРЕДЕЛ. Устанавливает количество строк для вывода. Особенность оператора в том, что он всегда в конце. Требуются обязательный и необязательный параметры. Первый указывает, сколько строк с выбранными данными нужно показать. И если последний используется, оператор работает как для диапазона значений.

  • НРАВИТЬСЯ. Используется, когда необходимо визуально оформить результат, присвоив результирующей таблице указанное имя.

  • МЕЖДУ. Очень полезный инструмент для отбора проб. Указывает диапазон значений, между которыми вы хотите получить данные. Входные данные принимают параметр, от которого используется диапазон;.

  • НЕТ. Оператор дает противоположное выражению.

  • ДЕФОЛТ. Как и предыдущий оператор, он используется при выполнении запроса сборки. Определяет значение по умолчанию, которое будет использоваться для заполнения поля при его создании.

  • СОЮЗ. Очень удобный оператор для объединения нескольких запросов. Примеры этого он уже встречал в этой статье. Вы можете просмотреть необходимые строки из нескольких таблиц, объединив их с помощью UNION для более удобного использования. Его синтаксис следующий: ВЫБРАТЬ имя_столбца ИЗ имя_таблицы UNION ВЫБРАТЬ другое имя_столбца ИЗ другое имя_таблицы. Результатом будет сводная таблица с комбинированными запросами.

Несколько советов при разработке платформы для работы с SQL

  1. НИЧЕГО ТАКОГО. При написании запросов новички и программисты часто забывают о возможности получения значения NULL. В результате в код проскальзывает ошибка, которую сложно отследить во время отладки. Поэтому при создании таблиц, выборе или пересчете значений нужно остановиться и подумать, учитывается ли вхождение NULL в этой части запроса.

  2. Объем памяти. В этой статье показано несколько функций, которые могут выполнять некоторые задачи. При разработке оболочки для работы с базой данных можно «передать» оценку простых выражений системе управления базами данных. В некоторых случаях это дает значительный прирост производительности.

  3. Ограничения. Если вам нужно получить только два из базы данных с тысячами строк, вам следует использовать такие операторы, как LIMIT или TOP. Нет необходимости извлекать данные с помощью языка разработки оболочки.

  4. Сочинено. После получения данных из нескольких таблиц многие программисты начинают собирать их, используя память оболочки. Но почему? Ведь можно сделать запрос, в котором все это будет присутствовать. Нет необходимости писать дополнительный код и резервировать дополнительную память в системе.

  5. Сортировка. Если вы можете применить сортировку в запросе, то есть через СУБД, вам нужно ее использовать. Это значительно сэкономит ресурсы при запуске программы или службы.

  6. Многие просят. Если вам нужно вставить много записей последовательно, для оптимизации вы должны подумать о вставке данных пакетами с запросом. Это также повысит производительность всей системы в целом.

  7. Продуманное позиционирование данных. Перед обработкой структуры базы данных нужно подумать, нужно ли такое количество таблиц и полей. Может быть, есть способ объединить их или отбросить некоторые из них. Довольно часто программисты используют чрезмерный объем данных, который нигде не будет использоваться.

  8. Типы. Чтобы сэкономить место и ресурсы, вам нужно внимательно относиться к типам данных, которые вы используете. Если вы можете использовать менее «тяжелый» тип памяти, вам нужно его использовать. Например, если известно, что числовое значение в этом поле не будет превышать 255, тогда зачем использовать 4-байтовое INT, если есть 1-байтовый TINYINT.

Заключение

В заключение следует отметить, что язык структурированных запросов SQL сейчас используется практически везде: веб-сайты, веб-сервисы, программы для ПК, приложения для мобильных устройств. Следовательно, знание SQL поможет всем ветвям разработки.

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

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