- Что такое язык SQL
- Создание базы данных
- Как создать таблицу
- Как редактировать запись
- Как удалить запись
- Как выбрать запись
- Удаление таблиц
- Комментарии в запросах
- Выводы
Для работы с данными в СУБД существует специальный язык — SQL. В этом уроке мы познакомимся с ним и его базовыми возможностями.
Что такое язык SQL
SQL (Structured Query Language) — это язык, который помогает управлять данными в СУБД.
SQL позволяет:
-
Управлять данными внутри таблицы — добавлять их, редактировать, выбирать.
-
Менять структуру самих таблиц и баз данных.
Язык SQL разрабатывается независимо от СУБД и имеет собственный стандарт, который реализуют конкретные базы данных. Поэтому на базовом уровне все реляционные базы данных работают примерно одинаково.
В курсе мы будем использовать СУБД PostgreSQL, но когда вы научитесь работать с одной СУБД, сможете спокойно переключиться на другую.
Создание базы данных
Чтобы начать работать с базой данных, ее нужно создать. Чтобы это сделать, нужно установить СУБД на специальный компьютер — сервер.
Сама по себе СУБД может не иметь графического интерфейса, в таком случае мы используем запросы на языке SQL.
Для начала создадим базу данных для школы Хекслет с помощью такой команды:
CREATE DATABASE hexlet_db;
Как создать таблицу
Теперь у нас есть база данных — можем создать в ней первую таблицу.
Возьмем для примера таблицу users
и ее структуру:
first_name string
last_name string
email string
created_at datetime
Чтобы создать таблицу, нужно выполнить такой запрос:
CREATE TABLE users (
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(255),
created_at TIMESTAMP
);
Вы могли заметить, что запросы на языке SQL похожи на обычный текст на английском языке. Если перевести запросы, мы получим такие предложения:
-
«Создать базу данных
hexlet_db
» -
«Создать таблицу
users
со следующей структурой»
Дело в том, что SQL — это декларативный язык программирования. Он описывает, что нужно получить, не объясняя, как именно нужно прийти к такому результату.
Теперь мы можем добавить нескольких пользователей в таблицу:
INSERT INTO users
(first_name, last_name, email, created_at)
VALUES ('Lucienne', 'Feil', 'Trevion53@yahoo.com', '2022-06-14 18:31:05.296');
INSERT INTO users
(first_name, last_name, email, created_at)
VALUES ('Ramiro', 'Wolf', 'Baylee52@yahoo.com', '2022-06-14 02:04:13.104');
INSERT INTO users
(first_name, last_name, email, created_at)
VALUES ('Maureen', 'Romaguera', 'Casimer_Cronin@yahoo.com', '2022-06-14 02:28:26.058');
Вот такая таблица у нас получится:
first_name | last_name | created_at | |
---|---|---|---|
Lucienne |
Feil |
Trevion53@yahoo.com |
2022-06-14 18:31:05.296 |
Ramiro |
Wolf |
Baylee52@yahoo.com |
2022-06-14 02:04:13.104 |
Maureen |
Romaguera |
Casimer_Cronin@yahoo.com |
2022-06-14 02:28:26.058 |
Как редактировать запись
После добавления мы заметили ошибку в данных — у пользователя Maureen Romaguera неверно указана электронная почта.
Давайте исправим эту ошибку. Напишем запрос на редактирование записи:
UPDATE users SET email = 'Casimer_Cronin@gmail.com' WHERE last_name = 'Romaguera';
Снова запрос очень похож на инструкцию: «Обнови таблицу users
— у пользователя по фамилии Romaguera значение в поле email должно быть следующим…».
Посмотрим на пример запроса, который извлекает информацию о пользователях из этой таблицы:
SELECT * FROM users;
Этот запрос вернет все строки в таблице:
first_name | last_name | created_at | |
---|---|---|---|
Lucienne |
Feil |
Trevion53@yahoo.com |
2022-06-14 18:31:05.296 |
Ramiro |
Wolf |
Baylee52@yahoo.com |
2022-06-14 02:04:13.104 |
Maureen |
Romaguera |
Casimer_Cronin@gmail.com |
2022-06-14 02:28:26.058 |
View On DB Fiddle
Как удалить запись
Еще одна достаточно частая операция — удаление записей. Давайте удалим нашего пользователя из таблицы:
DELETE FROM users WHERE last_name = 'Romaguera';
И снова выведем всю таблицу:
SELECT * FROM users;
Получилась такая таблица:
first_name | last_name | created_at | |
---|---|---|---|
Lucienne |
Feil |
Trevion53@yahoo.com |
2022-06-14 18:31:05.296 |
Ramiro |
Wolf |
Baylee52@yahoo.com |
2022-06-14 02:04:13.104 |
View On DB Fiddle
Как выбрать запись
Обычно данные нужны не все сразу, а по частям. Например, когда мы заходим в описание одного курса на Хекслете, то ожидаем увидеть информацию только по этому курсу, а не по всем курсам сразу.
Чтобы выбрать определенные строки, можно добавить в запрос условия. Например, выберем пользователей с именем Ramiro:
SELECT * FROM users WHERE first_name = 'Ramiro';
first_name |
last_name |
created_at |
|
Ramiro |
Wolf |
Baylee52@yahoo.com |
2022-06-14T02:04:13.104Z |
View On DB Fiddle
Все примеры из этого урока — лишь вершина айсберга возможностей языка SQL. На самом деле, язык SQL позволяет строить более сложные запросы с несколькими условиями. Такие запросы мы научимся составлять в ходе курса.
Удаление таблиц
Чтобы удалить таблицу, выполняется запрос DROP
:
DROP TABLE users;
View On DB Fiddle
Будьте внимательны, так как удаление таблицы приводит к безвозвратной потере данных.
Комментарии в запросах
Представьте, что вы работаете над проектом в команде. В процессе работы вы можете создавать сложные запросы, которые могут быть не совсем очевидны для других членов команды. В таких ситуациях крайне важно, чтобы ваш код был понятен вашим коллегам. Здесь на помощь приходят комментарии. Они помогают объяснить логику запросов, описать структуру таблиц или указать, зачем тот или иной фрагмент кода был написан.
Комментарии в SQL позволяют вам добавлять пояснения и заметки к вашему запросу. При этом сами они не являются частью запроса, не влияют его выполнение и игнорируются интерпретатором
В SQL существует два основных вида комментариев: однострочные и многострочные
Однострочные комментарии начинаются с двух дефисов --
. Все, что находится в строчке после этих символов, будет считаться комментарием и проигнорируется при выполнении запроса
-- Работаем с таблицей пользователей
SELECT * FROM users; -- Получаем всех пользователей
Многострочные комментарии заключаются между символами /
и /
. Все, что находится между этими символами, будет считаеться комментарием. Такой тип комментариев может занимать несколько строк и позволяет добавлять более длинные пояснения
/*
Добавление нового пользователя
Данный запрос добавляет информацию о пользователе в таблицу пользователей
*/
INSERT INTO users
(first_name, last_name, email, created_at)
VALUES ('Lucienne', 'Feil', 'Trevion53@yahoo.com', '2022-06-14 18:31:05.296');
Выводы
В этом уроке мы познакомились с базовыми возможностями языка SQL. Мы рассмотрели этапы создания базы данных и узнали, как гибко можно применять SQL.
Дальше в курсе мы будем на практике применять стандартные возможности языка для выборки данных из таблиц.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.