Введение в основы SQL

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

О SQL

Правильное произношение SQL является спорным вопросом в сообществе баз данных. В своем стандарте SQL Американский национальный институт стандартов объявил, что официальным произношением является «es queue el». Тем не менее, многие специалисты по базам данных приняли жаргонное произношение «продолжение». Выбор ваш.

SQL поставляется во многих вариантах. Базы данных Oracle используют свой проприетарный PL / SQL. Microsoft SQL Server использует Transact-SQL. Все варианты основаны на отраслевом стандарте ANSI SQL. В этом введении используются ANSI-совместимые команды SQL, которые работают в любой современной системе реляционных баз данных.

DDL и DML

Команды SQL можно разделить на два основных подъязыка. Язык определения данных (DDL) содержит команды, используемые для создания и уничтожения баз данных и объектов баз данных. После определения структуры базы данных с помощью DDL администраторы базы данных и пользователи могут использовать язык манипулирования данными (DML) для вставки, извлечения и изменения данных, содержащихся в нем.

Языковые команды определения данных 

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

СОЗДАЙТЕ. Установка системы управления базами данных на компьютер позволяет создавать и управлять многими независимыми базами данных. Например, вы можете сохранить базу данных контактов с клиентами для вашего отдела продаж и базу данных персонала для вашего отдела кадров. Команда CREATE используется для установки каждой из этих баз данных на вашей платформе. Например, команда:

CREATE DATABASE сотрудники

создает пустую базу данных с именем «сотрудники» в вашей СУБД. После создания базы данных следующим шагом будет создание таблиц, содержащих данные. Для этой цели можно использовать другой вариант команды CREATE. Команда:

CREATE TABLE personal_info (first_name char (20) не ноль, last_name char (20) не ноль, employee_id int не нуль)

устанавливает таблицу с именем «personal_info» в текущей базе данных. В этом примере таблица содержит три атрибута: first_name, last_name и employee_id, а также некоторую дополнительную информацию.

ИСПОЛЬЗОВАНИЕ. Команда USE позволяет вам указать базу данных, с которой вы хотите работать в вашей СУБД. Например, если вы в настоящее время работаете в базе данных продаж и хотите выполнить некоторые команды, которые повлияют на базу данных сотрудников, предварите их следующей командой SQL:

ИСПОЛЬЗОВАТЬ сотрудников

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

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

ALTER TABLE personal_info ДОБАВИТЬ зарплату деньги ноль

В этом примере добавляется новый атрибут в таблицу personal_info — зарплата сотрудника. Аргумент «деньги» указывает, что зарплата сотрудника хранится в формате долларов и центов. Наконец, ключевое слово «null» сообщает базе данных, что для этого поля нормально, что оно не содержит значения для какого-либо сотрудника.

DROP. Последняя команда языка определения данных, DROP, позволяет нам удалять целые объекты базы данных из нашей СУБД. Например, если мы хотим навсегда удалить созданную нами таблицу personal_info, мы будем использовать следующую команду:

DROP TABLE personal_info

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

DROP DATABASE сотрудники

Используйте эту команду с осторожностью. Команда DROP удаляет целые структуры данных из вашей базы данных. Если вы хотите удалить отдельные записи, используйте команду DELETE языка управления данными.

Команды языка манипулирования данными

Язык манипулирования данными (DML) используется для извлечения, вставки и изменения информации базы данных. Эти команды используются всеми пользователями базы данных во время обычной работы базы данных.

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

INSERT INTO personal_info
значения ( 'Bart', 'Симпсонов', 12345, $ 45000)

Обратите внимание, что для записи указано четыре значения. Они соответствуют атрибутам таблицы в том порядке, в котором они были определены: first_name, last_name, employee_id и salary.

ВЫБРАТЬ. Команда SELECT является наиболее часто используемой командой в SQL. Это позволяет пользователям базы данных получать конкретную информацию, которую они хотят, из оперативной базы данных. Взгляните на несколько примеров, снова используя таблицу personal_info из базы данных сотрудников.

Команда, показанная ниже, извлекает всю информацию, содержащуюся в таблице personal_info. Обратите внимание, что звездочка используется в качестве символа подстановки в SQL. Это буквально означает «Выберите все из таблицы personal_info».

ВЫБРАТЬ *
FROM personal_info

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

ВЫБЕРИТЕ фамилию
FROM personal_info

Предложение WHERE может использоваться для ограничения получаемых записей теми, которые соответствуют указанным критериям. Генеральный директор может быть заинтересован в просмотре кадровых записей всех высокооплачиваемых сотрудников. Следующая команда извлекает все данные, содержащиеся в personal_info, для записей со значением зарплаты, превышающим 50 000 долларов:

ВЫБРАТЬ *
FROM personal_info
ГДЕ зарплата> 50000 долларов

ОБНОВИТЬ. Команда UPDATE может быть использована для изменения информации, содержащейся в таблице, либо в натуральном, либо в индивидуальном порядке. Предположим, что компания ежегодно дает всем сотрудникам повышение заработной платы на 3%. Следующая команда SQL может быть использована для быстрого применения этого ко всем сотрудникам, хранящимся в базе данных:

ОБНОВЛЕНИЕ personal_info
SET заработная плата = зарплата * 1,03

Когда новый сотрудник Барт Симпсон демонстрирует эффективность сверх служебного долга, руководство желает признать его звездные достижения с повышением на 5000 долларов. Предложение WHERE может быть использовано для выделения Барта для этого повышения:

ОБНОВЛЕНИЕ personal_info
SET заработная плата = зарплата + 5000 $
ГДЕ employee_id = 12345

УДАЛЯТЬ. Наконец, давайте посмотрим на команду DELETE. Вы обнаружите, что синтаксис этой команды аналогичен синтаксису других команд DML. К сожалению, наш последний отчет о корпоративных доходах не совсем оправдал ожидания, и Барт был уволен. Команда DELETE с предложением WHERE может использоваться для удаления его записи из таблицы personal_info:

УДАЛИТЬ ИЗ ЛИЧНОЙ
ГДЕ employee_id = 12345

JOIN и

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

Чтобы изучить использование базовой операции JOIN для объединения данных из двух таблиц, перейдите к примеру с таблицей PERSONAL_INFO и добавьте дополнительную таблицу к соединению. Предположим, у вас есть таблица DISCIPLINARY_ACTION, созданная с помощью следующего оператора:

CREATE TABLE дисциплинарное действие (action_id int не равно NULL, employee_id int не равно NULL, комментарий char (500))

В этой таблице приведены результаты дисциплинарных мер в отношении сотрудников компании. Вы заметите, что он не содержит никакой информации о сотруднике, кроме номера сотрудника. Легко представить множество сценариев, в которых вы можете захотеть объединить информацию из таблиц DISCIPLINARY_ACTION и PERSONAL_INFO.

Предположим, вам поручено создать отчет, в котором перечислены дисциплинарные меры, принятые в отношении всех сотрудников с зарплатой более 40 000 долларов США. Использование операции JOIN в этом случае является простым. Мы можем получить эту информацию с помощью следующей команды:

ВЫБЕРИТЕ personal_info.first_name, personal_info.last_name, дисциплинарный_action.comments
FROM personal_info, дисциплинарное взыскание
ГДЕ personal_info.employee_id = schollinary_action.employee_id
AND personal_info.salary> 40000

В коде указываются две таблицы, которые мы хотим объединить в предложении FROM, а затем включается оператор в предложении WHERE, чтобы ограничить результаты записями, которые имели идентификаторы сотрудников и соответствовали нашим критериям заработной платы, превышающей 40 000 долларов США.

Ссылка на основную публикацию