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/


Интересные статьи

Интересные статьи

Первый философ Искусственного ИнтеллектаАлан Тьюринг был пионером машинного обучения, чьи работы продолжают развивать важнейшую тему: могут ли машины мыслить?
В прошлый раз мы рассмотрели, что такое синхронное программирование, и с какими проблемами с ним сталкивается разработчик. На примере простого сервера с блокирующими сокетами мы увидели, что в синхрон...
Всем привет. Текст состоит из двух частей:1. Небольшая шпаргалка по параметрам настроек по умолчанию;2. Текст о том, почему вообще существование такой шпаргалки может кому-то понадобится.
Часто при разговорах с клиентами мы спрашиваем, как они ведут учет различных данных и используют ли они CRM-систему? Популярный ответ — мы работаем с Excel-файлами, а пот...
Экспериментальный протокол и реализация алгоритма сортировки на программируемом ДНК-компьютере Учёные давно ведут эксперименты с хранением информации в ДНК и с обработкой этой информации. Н...