Шпаргалка по командам SQL

Шпаргалка по командам SQL

SQL - это язык структурированных запросов. Он был создан специально для управления и доступа к данным, хранящимся в реляционных базах данных. Первым коммерческим предприятием, использующим SQL, была Oracle, в которой до сих пор используется язык запросов SQL * Plus в качестве основы всей системы управления реляционными базами данных (RDMS)..

Сегодня MySQL, SQL Server, SAP и Sybase используют SQL для доступа к базе данных. В этом руководстве мы дадим вам стандартную версию команд SQL, уделив особое внимание реализации Oracle в SQL * Plus..

ВЫБОР РЕДАКТОРА. Мы рекомендуем инструменты управления инфраструктурой SolarWinds для мониторинга всех ваших инструментов Microsoft, включая SQL Server. Вам нужен набор утилит мониторинга, которые могут взаимодействовать, чтобы охватить все средства, которые поддерживают вашу реляционную базу данных..

Реляционные базы данных

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

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

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

Еще один объект базы данных - это триггер. Это кусок SQL, который запускается всякий раз, когда значение добавляется в столбец или изменяется. Триггер обновит значения в столбце другой таблицы или в других столбцах той же таблицы. Это происходит, если значение добавляется или изменяется в столбце, в котором находится триггер. Он также может ограничивать значения, которые могут быть введены в столбец.

DQL, DDL, DCL и DML

SQL включает в себя четыре подмножества команд. Эти Язык запросов данных (DQL), Язык описания данных (DDL), Язык управления данными (DCL), и Язык манипулирования данными (DML).

На большинстве проектов Администратор базы данных (DBA) - единственный член команды, который имеет право использовать DDL. Эта группа команд создает, изменяет и удаляет таблицы, индексы, триггеры и представления.

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

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

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

Есть одна полезная команда SQL, которая не попадает в классификацию DQL, DDL, DCL или DML. Это "описывать», Который обычно реализуется как DESC. Это показывает структуру объекта в базе данных. В случае таблицы будет показан список столбцов, а также тип данных и размер каждого из них. Он покажет SQL, который создал представление или триггер, и покажет столбцы, которые включены в данный индекс.

Реляционные операторы

Теория реляционных баз данных была определена Э. Ф. Кодд в 1970 году. В определении Кодда лежит требование инструмента запросов, который должен реализовывать восемь основных реляционных операций. Эти:

  1. ВЫБРАТЬ
  2. ПРОЕКТ
  3. ПРИСОЕДИНИТЬСЯ
  4. ПРОДУКТ
  5. UNION
  6. ПЕРЕСЕЧЕНИЕ
  7. РАЗНИЦА
  8. ДЕЛИТЬ

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

ВЫБРАТЬ

SELECT изначально назывался RESTRICT. Это возможность извлечь одну запись или группу соответствующих записей из таблицы в базе данных. Так же как теоретическая операция, ВЫБРАТЬ имя основной команды в любой реализации SQL. Фактически, весь поиск данных выполняется с помощью SELECT. Команда настолько мощна, что может быть изменена многими, многими способами. Большая часть SQL, которую вам нужно выучить, это «предложения» в операторе SELECT..

ПРОЕКТ

ПРОЕКТ - это возможность изолировать столбец (или «атрибут») в таблице. Это всегда реализуется с помощью инструкции SELECT.

ПРИСОЕДИНИТЬСЯ

JOIN связывает вместе таблицы по общему атрибуту. Вы используете внешний ключ в одной таблице для сопоставления со значениями первичного ключа в другой таблице. Акт эффективно объединяет две таблицы временно. Это реализовано в виде предложения в инструкции SELECT. Соединение между двумя таблицами автоматически исключает любые записи, которые не отображаются в обеих вспомогательных таблицах. «внешнее соединение»Будет отображать записи, которые не совпадают в другой таблице, оставляя поля, которые должны были быть предоставлены другой таблицей, оставлены пустыми.

ПРОДУКТ

ПРОДУКТ также известен как «раз.Это реализовано как оператор SELECT, который рисует данные из двух таблиц, но не определяет соединение между ними. В реальной жизни очень мало практических причин, по которым кто-либо когда-либо выступал бы за двумя столами. Обычно это предупреждающий знак, что вы плохо написали предложение JOIN. Результатом ПРОДУКТА является то, что каждая соответствующая запись в одной таблице совпадает с каждой соответствующей записью в другой таблице. Итак, если вы создадите инструкцию SELECT из двух таблиц, каждая из которых имеет десять записей, в результате будет получено 100 записей..

UNION

UNION является распространенным оператором в теории множеств. Если у вас есть два набора, объединение объединяет всех членов обоих наборов. Дублирование удаляется из результатов. В SQL это реализуется ИЛИ Логический оператор.

ПЕРЕСЕЧЕНИЕ

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

РАЗНИЦА

РАЗНИЦА также известна как «минус»И в обозначениях обозначается знаком минус (« - «). Существует несколько способов реализации ОТЛИЧИЯ. Это может быть создано путем включения логического НЕ в критериях выбора, и это также может быть реализовано МИНУС оператор сопровождается подзапросом.

ДЕЛИТЬ

DIVIDE - это необычная операция, которая, как и PRODUCT, имеет очень мало практических применений. Кодд рассматривал DIVIDE как кислотный тест любой реляционной системы и инструмента запросов, поэтому каждая реализация SQL включает эту возможность просто для того, чтобы претендовать на звание «реляционный». В действительности вы никогда не будете его использовать. Реализация DIVIDE требует ряда подзапросов, подающих в МИНУС в Oracle SQL * Plus и КРОМЕ оператор в некоторых других реализациях SQL, таких как SQL Server и PostgreSQL.

Булевы операторы

Джордж Буль был британским математиком, который умер в 1864 году. Он изобрел булеву алгебру, которая не имела практического применения до тех пор, пока в конце 20-го века не появились области информатики и реляционных баз данных. Булева алгебра занимает центральное место в операциях SQL - вы можете написать только самый простой запрос SQL без использования булевой логики. Булева логика также лежит в основе всех поисковых систем. Ключевые логические операторы в SQL:

  • И
  • ИЛИ
  • НЕ

Другой причудливый викторианский британец, о котором тебе нужно знать, - Августус де Морган. Он пришел к выводу о преобразовании в булевой теории множеств, о котором должен знать каждый программист SQL. Это то, что НЕ может изменить работу И и ИЛИ. Короче говоря, вы должны быть осторожны, используя скобки в своих высказываниях, чтобы избежать непредвиденных последствий. Поэтому «и» и «или» также должны рассматриваться как важные логические операторы в SQL.

И

И реализует ПЕРЕСЕЧЕНИЕ в теории множеств. Если вы хотите извлечь записи из базы данных, которые соответствуют только двум требованиям, а не только одному из этих составных критериев, вам нужно использовать AND. Например, вы можете запустить начальный бизнес, и ваша база данных содержит таблицу, в которой хранятся все ваши начальные числа с их атрибутами. Клиент звонит и хочет только желтые бегонии. Итак, вы будете искать в вашей базе данных виды = «бегония» и цвет = «желтый» чтобы получить правильный каталог семян.

ИЛИ

ИЛИ дает вам все члены двух множеств - это СОЮЗ в теории множеств. Итак, в вашей исходной базе данных, если вы запустили запрос: вид = «бегония» или цвет = «желтый», Вы получите результаты, которые включают желтые розы, желтую бегонию, розовые бегонии и желтые нарциссы. В этом примере желтые бегонии квалифицируются дважды. В теории отношений должна быть возвращена только одна запись. К счастью, SQL включает в себя классификатор DISTINCT, так, введя ВЫБЕРИТЕ ОТЛИЧИЕ * ОТ цветов, ГДЕ вид = «бегония» ИЛИ цвет = «желтый», эта желтая бегония появится только один раз.

НЕ

НЕ легко понять. Он исключает результаты, которые может дать следующее утверждение: И НЕ, ИЛИ НЕ. На практике вы почти никогда не будете использовать «ИЛИ НЕТ» в запросе. Если бы ваш покупатель семян хотел бегонию любого цвета, кроме желтого, вы бы использовали вид = «бегония», а НЕ цвет = «желтый» выбрать продукты для предложения.

Скобки

Согласно закону де Моргана:

«Отрицание дизъюнкции - это соединение отрицаний; и отрицание соединения - это дизъюнкция отрицания ».

Говоря простым языком, аккуратно используйте скобки в своем операторе SQL, а также включайте NOT, чтобы предотвратить преобразование AND в OR и наоборот. Совместные условия брекетинга также могут сократить ваши критерии выбора. Например, НЕ (виды = «бегония» И цвет = «желтый») такой же как НЕ вид = «бегония» ИЛИ цвет = «желтый».

Извлечение записей

Разные реализации SQL используют разный синтаксис, но в этом руководстве мы будем следовать Oracle * SQL. Базовая структура выбора данных SQL:

ВЫБРАТЬ
ИЗ

ГДЕ

Это даст вам список значений из одного столбца в одной таблице. Это ПРОЕКТ реляционная операция, определенная Коддом.

Вы можете добавить столбцы в SELECT или использовать подстановочный оператор («*»), Чтобы получить все столбцы в таблице:

ВЫБРАТЬ *
ИЗ

ГДЕ

Это Кодда ВЫБРАТЬ реляционная операция. Без ГДЕ оговорка, вы получите каждую запись в таблице.

Несколько столбцов разделены запятыми («,«):

ВЫБРАТЬ столбец1, столбец2, столбец7
ИЗ

ГДЕ

ГДЕ пункт выбирает конкретные записи. Это самая важная цель булевых операторов:

ВЫБЕРИТЕ seed_num, seed_desc
Из семян
ГДЕ вид = «бегония» И цвет = «желтый»

В этих примерах вы заметите, что вы не ставите кавычки вокруг имен столбцов, но вы ставите кавычки вокруг значений столбцов. Если вы забудете поставить кавычки вокруг значений, СУБД будет ожидать, что слова будут именами столбцов. Таким образом, в приведенном выше запросе без кавычек вы получите сообщение об отсутствии бегонии и желтых столбцов в таблице..

Столы

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

Ваш лучший гид для объединения Диаграмма сущности-отношений. Все, что вам нужно для создания объединения, - это включить в таблицу более одной таблицы. ИЗ предложение SELECT и не забудьте указать связующие столбцы в ГДЕ пункт. Помните, что в некоторых таблицах могут использоваться одинаковые имена столбцов. Чтобы избежать путаницы, лучше дать каждому столу в псевдоним так что вы можете определить источник столбцов, на которые вы ссылаетесь в операторе SELECT:

ВЫБЕРИТЕ a.seed_num, a.seed_desc, b.supplier_name
ИЗ семян а, поставщики б
ГДЕ a.species = «бегония» И a.color = «желтый»
AND b.supplier_ID = a.supplier_ID

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

Хотя технически возможно использовать ИЛИ для объединения, более обычным является использование И. Используйте OR только для критериев выбора, а не для создания объединения.

подзапросов

Вы можете использовать ВЫБРАТЬ заявление в качестве источника данных для основного ВЫБРАТЬ и вы также можете присоединиться к нескольким ВЫБРАТЬ операторы вместе с операторами, такими как МИНУС. Эти экземпляры дополнительных запросов, обслуживающих основной оператор SELECT, называются «подзапросы.При создании подзапроса ключевое слово В может быть очень полезным.

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

ВЫБЕРИТЕ a.seed_num, a.seed_desc, b.supplier_name
ИЗ семян а, поставщики б
ГДЕ a.species = «бегония» И a.color = «желтый»
AND b.supplier_ID = a.supplier_ID
AND b.supplier_country IN («Великобритания», «Франция», «Германия»…)

Этот список всех стран в ЕС расширится до 28 значений, и вам придется ввести все из них - «…» в примере приведено только для краткости. В этом примере вам придется пересматривать все ваши запросы и изменять этот список значений всякий раз, когда страна вступает или выходит из ЕС. Более эффективно составить таблицу стран ЕС и сослаться на это. Тогда вам нужно только добавить или удалить записи в одной таблице, так как состав ЕС меняется.

В этом сценарии вы должны создать таблицу с именем EU_countries, в которой поле country_ID является первичным ключом и столбец country_name. Затем вы можете создать подзапрос для создания списка стран ЕС:

ВЫБЕРИТЕ a.seed_num, a.seed_desc, b.supplier_name
ИЗ семян а, поставщики б
ГДЕ a.species = «бегония» И a.color = «желтый»
AND b.supplier_ID = a.supplier_ID
И b.supplier_country IN (ВЫБЕРИТЕ название страны из стран ЕС)

Можно создать серию вложенных запросов, и для некоторых функций SQL требуются как минимум два оператора SELECT. Например, если вы хотите получить поставщиков семян за пределами ЕС, вы можете использовать МИНУС:

ВЫБЕРИТЕ a.seed_num, a.seed_desc, b.supplier_name
ИЗ семян а, поставщики б
ГДЕ a.species = «бегония» И a.color = «желтый»
AND b.supplier_ID = a.supplier_ID
МИНУС
SELECT c.seed_num, c.seed_desc, d.supplier_name
ИЗ семян c, поставщики d, EU_countries e
ГДЕ d.supplier_country_ID = e.country_ID
AND b.supplier_ID = a.supplier_ID

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

ГРУППА ПО

Вы можете получить SQL для агрегирования данных для вас в процессе обработки запроса. ГРУППА ПО Предложение позволяет рассчитывать статистику по группам записей. Например:

ВЫБРАТЬ вид цветов, количество (1) экземпляров
Из семян
GROUP BY вид

В этом примере вы можете увидеть функцию, COUNT. Это требует столбец в качестве параметра, но вы можете просто дать ему токен, в этом случае, 1.  Этот пример также показывает, что вы можете дать псевдонимам имен столбцов. Там нет комы между видом и цветком в первой строке ВЫБРАТЬ. СУБД интерпретирует это второе слово как имя столбца для отображения в выходных данных. В некоторых реализациях SQL этот псевдоним должен быть в кавычках, а в других он должен указываться ключевым словом В КАЧЕСТВЕ:

ВЫБЕРИТЕ виды AS «цветок», количество (1) AS «экземпляры»
Из семян
GROUP BY вид

Размещение значимого имени в столбце особенно важно, если вы используете функции в своем запросе.

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

СОРТИРОВАТЬ ПО

Вы можете указать последовательность вывода результатов с СОРТИРОВАТЬ ПО пункт. По умолчанию будут отображаться значения в порядке возрастания, но вы также можете указать показывать записи в порядке убывания..

ВЫБЕРИТЕ РАЗЛИЧНЫЕ виды
Из семян
Сортировка по видам DESC

Если у вас есть несколько столбцов в вашем выводе, вы можете назначить любой из них в качестве поля заказа. В большинстве реализаций SQL вам не нужно вводить имя столбца в предложении ORDER BY, а только номер позиции столбца, например ЗАКАЗАТЬ НА 2 когда вы хотите, чтобы второй столбец в выходных данных определял порядок отображения.

В этом примере вы видите DISTINCT вариант на ВЫБРАТЬ, который имеет тот же эффект, что и ГРУППА ПО. Однако, если вы добавляете агрегирующие функции в SELECT, вам нужно будет использовать ГРУППА ПО вместо того DISTINCT.

Функции SQL

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

Механизмы управления потоком, которые как ЕСЛИс и ПОКА петли не существуют в SQL. Тем не менее, условный выбор может быть реализован с помощью различных функций.

Шпаргалка по SQL Comparitech

Существует длинный список опций, которые вы можете добавить в оператор SELECT. Это краткое руководство охватывает только базовую структуру оператора SELECT, который является основным инструментом SQL Язык запросов данных. Вы можете увидеть полный список в MySQL листе Comparitech (PDF). Этот лист также включает в себя стандартные команды, используемые для языка описания данных SQL, языка управления данными и языка манипулирования данными.

About the author

Leave a Reply

Your email address will not be published.

Adblock
detector