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 году. В определении Кодда лежит требование инструмента запросов, который должен реализовывать восемь основных реляционных операций. Эти:
- ВЫБРАТЬ
- ПРОЕКТ
- ПРИСОЕДИНИТЬСЯ
- ПРОДУКТ
- UNION
- ПЕРЕСЕЧЕНИЕ
- РАЗНИЦА
- ДЕЛИТЬ
Вам необходимо освоить каждую из этих операций для эффективного доступа к данным из реляционной базы данных. Это объясняется ниже.
ВЫБРАТЬ
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:
ВЫБРАТЬ
ИЗ
: это команда COMMIT, которая используется для сохранения изменений, внесенных в базу данных. Она не относится к ни одному из подмножеств команд SQL, но является важной частью процесса управления данными. SQL – это мощный инструмент для управления и доступа к данным в реляционных базах данных. Он используется во многих коммерческих предприятиях, включая Oracle, MySQL, SQL Server, SAP и Sybase. В этом руководстве вы найдете стандартную версию команд SQL, а также особенности реализации Oracle в SQL * Plus. Если вы работаете с базами данных, то знание SQL является необходимым навыком.