🔤 Азбука SQL в примерах. Часть 1. Создаем базу данных и первую таблицу
С помощью этого короткого руководства в трех частях вы создадите базу данных, добавите в неё записи, а затем выполните несколько запросов для их обработки. В первой части мы узнаем, что скрывается за тремя буквами SQL и начнем двигаться к поставленной цели.
Пример выражения на языке SQL
Вот пример выражения на языке SQL:
Оно возвращает нам целую таблицу, а точнее, возвращает все столбцы и строки из таблицы с именем Pets
(питомцы).
Звездочка (*
) — это шаблонный символ, который означает «все столбцы». Это простой и короткий способ указать, что нам нужны они все, не перечисляя каждый столбец по имени. Это одна из прекрасных возможностей SQL. Наиболее простые запросы на самом деле являются наиболее мощными. Если же нам требуется вернуть меньше данных, нам придется написать запрос подлиннее. Например, если нам нужна информация только о питомце по имени Fetch
, нам нужно будет добавить предложение WHERE
, в котором и будет описано наше требование.
Выглядеть это будет так:
Здесь предложение WHERE
фильтрует результат нашего запроса, оставляя только строки, у которых в столбце PetName
(имя питомца) стоит значение Fetch
. Этот запрос предполагает, что в нашей базе данных есть таблица Pets
, в которой есть столбец PetName
.
Дальше я покажу вам, как создать такую базу данных с помощью SQL. А еще покажу, как добавить в неё записи, как их изменять или удалять, и как получать их из базы данных с помощью запросов.
Что такое SQL
SQL – это аббревиатура для названия Structured Query Language (структурированный язык запросов). Это стандартизованный язык для работы с реляционными базами данных. SQL используется во всех основных реляционных системах управления базами данных (РСУБД), включая:
- Microsoft Access
- SQL Server
- Oracle
- PostgreSQL
- MySQL
- SQLite
Что можно делать с помощью SQL
Вы можете использовать SQL, чтобы выполнять запросы к базе данных, добавлять в неё записи или удалять их. Можно создавать новые базы данных или объекты внутри них, например таблицы. Можете выполнять различные административные задачи, такие как создание учетных записей пользователей, автоматизировать выполнение задач, производить резервное копирование и т. п.
Даже когда вы работаете, используя графический интерфейс (GUI – Graphic User Interface), ваша СУБД будет почти всегда подспудно использовать SQL, чтобы выполнить поставленную вами задачу.
Например, вы хотите создать базу данных и выбираете в меню пункт Create Database, а затем вводите описание базы данных в диалоговом окне. После нажатия кнопки ОК
, или Create
, или какой-либо другой кнопки, запускающей создание базы данных (БД, ваша СУБД выполнит выражение CREATE DATABASE
на языке SQL, чтобы создать базу данных согласно вашему описанию. Такой порядок действий используется и для иных задач: выполнения запросов, заполнения данными и т. д.
SQL позволяет выполнять и более сложные действия, например создавать хранимые процедуры (скрипты, которые можно выполнить позже), представления (заранее подготовленные запросы), а еще настраивать правила доступа к объектам базы данных (это могут быть таблицы, хранимые процедуры, представления и другие). Однако вам не нужно изучать все подробности языка SQL, чтобы начать его использовать. Этот язык как раз тем и хорош, что наиболее часто встречающиеся запросы написать на нем довольно легко.
Стандарты SQL
Первоначально язык SQL был описан в американском стандарте ANSI X3.135, изданном в 1986 году. Через несколько месяцев этот стандарт был адаптирован Международным институтом стандартизации ISO и оформлен как международный стандарт ISO-9075-1987. Ныне действующий стандарт ISO/IEC 9075 периодически пересматривается и сейчас состоит из 9 частей.
Большинство крупных поставщиков баз данных, как правило, придерживаются стандарта SQL, поэтому вам не нужно изучать новый язык запросов каждый раз, когда вы осваиваете новую СУБД.
На практике всё же существуют различия в том, как каждый поставщик баз данных реализует стандарт SQL. Из-за этого код, который вы пишете для одной СУБД, не всегда может работать в другой и приходится вносить в него изменения. Но спешу вас обрадовать: большинство наиболее распространенных задач часто решаются разными СУБД одинаково.
Как произносить SQL
Обычно аббревиатура SQL произносится двумя общепринятыми способами:
- «эс-кью-эль» – произносим каждую букву;
- «сиквэл» – это первоначальный вариант произношения, с ударением на «и».
Что нужно для дальнейшего изучения SQL
Чтобы получить пользу от этого руководства, вам нужно будет выполнять примеры кода, а значит, понадобится что-то, что может выполнять ваши запросы SQL. Пример такого инструмента показан на рисунке ниже:
Чтобы выполнять запросы SQL, вам понадобится:
- Установленная РСУБД (например, SQL Server, MySQL, PostgreSQL, SQLite или подобная).
- Инструмент для выполнения запросов SQL для выбранной РСУБД (MySQL Workbench, Asure Data Studio (показано на рисунке), DBeaver или SSMS).
Если у вас уже установлена одна из перечисленных СУБД и подходящий для неё инструмент, то вы можете смело продолжать изучение. В противном случае, перед тем, как продолжить чтение этого руководства загляните в раздел Как мне запустить SQL? (англ.) за инструкциями по установке необходимого программного обеспечения.
Создаем базу данных
Итак, вы готовы создать свою первую базу данных. Введите запрос:
Это выражение создаст пустую базу данных. В дальнейшем она будет содержать таблицы и записи, которые вы встретите позже в этом руководстве. Все последующие действия, такие как создание таблиц или добавление данных, мы теперь будем производить только в нашей новой базе.
Нужно отметить, что MySQL использует несколько иной синтаксис запроса для создания БД. Если вы используете SQLite, посмотрите раздел Как создать базу данных SQLite (англ.).
Соединение с базой данных
Прежде чем создавать таблицы, добавлять записи или выполнять какие-либо иные задачи, вам необходимо удостовериться, что вы подключены к нужной базе данных. Только операция создания базы данных, как только что мы сделали с вами, не нуждается в подключении.
Во многих СУБД (например, в SQL Server, MySQL или MariaDB), для подключения к базе PetHotel
мы можем использовать следующее выражение SQL:
Оно сделает базу PetHotel
текущей базой данных.
В СУБД SQLite база данных становится текущей сразу после создания. Если база данных была создана ранее, вы можете подключить её. Если же такая база еще не существует, она будет создана в момент подключения:
В СУБД PostgreSQL, если вы используете консольный инструмент psql
, вы можете применить команду:
или более короткий её вариант:
Должен обратить ваше внимание: команды для создания базы данных и подключения к ней сильно отличаются в зависимости от используемой СУБД.
К счастью, большинство инструментов с графическим интерфейсом позволяют вам подключить базу данных проще, двойным щелком мыши на имени базы данных или выбрав команду из контекстного меню, которое открывается при щелчке правой кнопкой мыши на имени базы. Если у вас возникли сложности на этом шаге, просто используйте графический интерфейс для создания базы данных или для подключения к ней.
Создаем таблицу
Теперь, после того как вы подключились к нужной базе данных, можно создать в ней таблицу. Для этого необходимо использовать оператор CREATE TABLE
. При создании таблицы нужно перечислить, какие в ней будут столбцы и указать тип для каждого из них. Кроме того, вы можете указать и другие детали, но давайте пока не будем забегать вперед.
Давайте создадим таблицу:
Этот фрагмент кода создаст таблицу с именем PetTypes
(виды питомцев). Имя новой таблицы указывается сразу после оператора CREATE TABLE
. Далее следует список столбцов, заключенный в фигурные скобки { }
.
В нашем случае в таблицу будут добавлены две колонки:
PetTypeId
PetType
После каждой из них указан тип данных:
int
означает, что в колонке будут храниться целые числа. Большинство основных СУБД поддерживают такой тип. Если вдруг у вас возникла ошибка, попробуйте использовать integer вместоint
;varchar(60)
означает, что в колонке будут храниться строки длиной от 0 до 60 символов. Строки с типомvarchar
– это строки переменной длины. Есть и другие строковые типы, напримерchar
для строк фиксированной длины. Если у вас возникла ошибка при указании типаvarchar(60)
попробуйте использовать типchar(60)
.