SQL шпаргалка #1. DDL, DML и первый SELECT

Зачем и кому это нужно.

Этот вопрос, который я задал себе в первую очередь. Есть прекрасное руководство по SQL от W3C — моё самое любимое. Есть куча полезных статей на Хабре. Кому нужна ещё одна статья по SQL? В первую очередь — мне самому. Я написал очень много кода на SQL, PL/SQL. Пришло время трансформирвоать мои навыки в простую и удобную напоминалку для себя самого и для всех, кто сочтёт этот текст полезным.

Немного «воды».

Аббревиатура SQL в переводе с английского звучит как язык структурированных запросов. Это язык программирования, созданный для работы с реляционными базами данных. Первый стандарт SQL появился в 1987 году, после чего дописывался восемь раз. При этом основа языка осталась практически неизменной с 1992 года. В настоящее время SQL продолжает оставаться одним из мощнейших инструментов для манипулирования реляционными данными и создания сложных отчётов. Постараюсь все достоинства этого языка на простых и понятных примерах.

Материальная часть.

Для того, чтобы изучить SQL, нужно установить софт для управления базой данных (БД) или получить доступ к работающему серверу БД (MySQL, Postgresql, Oracle, MS SQL — даже MS Access подойдёт). Один «маленький» нюанс — БД должна быть реляционной (нереляционные БД — это совершенно другая история). Все примеры, описанные в этой статье, я тестирую на SQLite. Это простой, но мощный движок для управления БД с открытым исходным кодом. Он активно применяется во всём мире для самых разных целей. Я, например, очень часто использую его в качестве локального хранилища данных для UNIT тестов в тяжёлых проектах. Благодаря своей бесплатности и компактности он также идеально подойдёт для изучения SQL, потому что не нужно тратить время на установку и конфигурирование сервера БД, вместо этого можно сразу написать свой первый SQL запрос.

А теперь немного теории.

В стандарте SQL предусмотрено четыре группы операторов (фактически это подмножества языка), у каждой из которых своя роль.

  • DDL — язык описания данных. С его помощью создаются и модифицируются поля, таблицы и другие объекты БД;

  • DML — язык манипулирования данными. Он предназначен для того, чтобы добавлять, удалять, изменять данные и делать выборки из БД;

  • DCL — набор инструкций для администрирования доступа к данным;

  • TCL — Transaction Control Language — набор инструкций для управления транзакциями.

Тренировки (от простого — к сложному).

Создаю таблицу, в которой будет храниться информация о товарах.

Поле

Тип данных

Идентификатор товара

Целое число

Наименование товара

Текст

Цена за единицу товара

Десятичное число

Единица измерения количества товара

Текст

На языке DDL таблица, описанная выше, превращается в структуру:

CREATE TABLE "product" ( "product_id"INTEGER NOT NULL UNIQUE, "product_name"TEXT NOT NULL, "product_price"REAL NOT NULL, "product_unit_name"TEXT NOT NULL, PRIMARY KEY("product_id" AUTOINCREMENT) );

Поле product_id определяю в качестве первичного ключа, т.е. по этому полю можно однозначно идентифицировать каждую запись в таблице product . Затем заполняю созданную таблицу тестовыми данными (это DML).

INSERT INTO "product" ("product_name", "product_price", "product_unit_name") VALUES ('Хлеб', 87, 'буханка'); INSERT INTO "product" ("product_name", "product_price", "product_unit_name") VALUES ('Молоко', 120, 'литр'); INSERT INTO "product" ("product_name", "product_price", "product_unit_name") VALUES ('Сахар', 53, 'кг'); INSERT INTO "product" ("product_name", "product_price", "product_unit_name") VALUES ('Рис', 94, 'кг');

И, наконец, делаю первый select (это тоже DML).:

SELECT *    FROM product;

В результате поучаю:

Ну вот он — первый SELECT) Сам по себе он не очень полезен. Но вся сила и мощь SQL, как и всех реляционных БД — в связях . Об этом будет следующая статья.


ссылка на оригинал статьи https://habr.com/ru/post/713132/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *