Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Язык SQL Основы 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 email 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 email 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 email 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

email

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.

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


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Об обучении на Хекслете

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 2 мая
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 2 мая
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 2 мая
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 2 мая
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 2 мая
профессия
от 9 900 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 2 мая
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 2 мая
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
в разработке
Старт 2 мая

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»