Similar presentations:
db-lect
1.
Базы данных2.
Виды баз данныхРеляционные
Microsoft SQL, MySQL (таблицы)
PostgreSQL
Не-SQL (NoSQL)
MongoDB (документы)
Redis (ключ-значение)
InfluxDB (временные ряды)
Иерархические
Neo4j (графы)
10/17/2024
2
3.
Язык SQL4.
Язык SQLSQL (Structed Query Language) - декларативный язык
программирования, применяемый для создания, модификации и
управления данными в реляционной базе данных.
Язык SQL представляет собой совокупность операторов, инструкций,
вычисляемых функций.
10/17/2024
4
5.
Язык SQLОсновной способ работы с базой данных, который реализует
следующий набор операций:
создание в базе данных новой таблицы
добавление в таблицу новых записей
изменение записей
удаление записей
выборка записей из одной или нескольких таблиц (в соответствии с
заданным условием)
изменение структур таблиц
10/17/2024
5
6.
Операторы языка SQLОператоры SQL делятся на:
операторы определения данных (Data Definition Language, DDL)
операторы манипуляции данными (Data Manipulation Language, DML)
операторы определения доступа к данным (Data Control Language,
DCL)
операторы управления транзакциями (Transaction Control Language,
TCL)
10/17/2024
6
7.
Операторы языка SQL10/17/2024
7
8.
Операторы DDLCREATE создаёт объект базы данных (саму базу, таблицу,
представление, пользователя и так далее)
ALTER изменяет объект
DROP удаляет объект
10/17/2024
8
9.
Операторы DMLSELECT выбирает данные, удовлетворяющие заданным условиям
INSERT добавляет новые данные
UPDATE изменяет существующие данные
DELETE удаляет данные
10/17/2024
9
10.
Операторы DCLGRANT предоставляет пользователю (группе) разрешения на
определённые операции с объектом
REVOKE отзывает ранее выданные разрешения
DENY задаёт запрет, имеющий приоритет над разрешением
10/17/2024
10
11.
Операторы TCLCOMMIT применяет транзакцию
ROLLBACK откатывает все изменения, сделанные в контексте
текущей транзакции
SAVEPOINT делит транзакцию на более мелкие участки
10/17/2024
11
12.
Типы данных13.
Типы данныхПри определении таблицы для всех ее столбцов необходимо указать
тип данных. Тип данных определяет диапазон значений, которые могут
храниться в столбце, сколько они будут занимать места в памяти.
числовые
символьные
бинарные
логические
дата и время
10/17/2024
13
14.
Числовые типы данныхЦелочисленные
smallint: хранит числа от -32768 до +32767. Занимает 2 байта. Имеет
псевдоним int2
integer: хранит числа от -2147483648 до +2147483647. Занимает 4
байта. Имеет псевдонимы int и int4
bigint: хранит числа от -9223372036854775808 до
+9223372036854775807. Занимает 8 байт. Имеет псевдоним int8
10/17/2024
14
15.
Числовые типы данныхВещественные
real: хранит числа с плавающей точкой из диапазона от 1E-37 до
1E+37. Занимает 4 байта. Имеет псевдоним float4
double precision: хранит числа с плавающей точкой из диапазона от 1E307 до 1E+308. Занимает 8 байт. Имеет псевдоним float8
10/17/2024
15
16.
Символьные типыcharacter(n): представляет строку из фиксированного количества
символов. С помощью параметра задается задается количество
символов в строке. Имеет псевдоним char(n)
character varying(n): представляет строку из переменной длины. С
помощью параметра задается задается максимальное количество
символов в строке. Имеет псевдоним varchar(n)
10/17/2024
16
17.
Бинарные данныедля хранения бинарных данных определен тип bytea. Он хранит
данные в виде бинарных строк, которые представляют
последовательность октетов или байт
10/17/2024
17
18.
Логический типтип boolean может хранить одно из двух значений: true или false
10/17/2024
18
19.
Типы для работы с датами и временемtimestamp: хранит дату и время. Занимает 8 байт
date: представляет дату. Занимает 4 байта
time: хранит время с точностью до 1 микросекунды без указания
часового пояса. Занимает 8 байт
interval: представляет временной интервал. Занимает 16 байт
10/17/2024
19
20.
Нормализация отношений21.
Нормализация отношенийНормализация — это процесс организации данных в базе данных,
включает в себя создание таблиц и установление связей между ними в
соответствии с правилами, разработанными как для защиты данных,
так и для повышения гибкости базы данных, устраняя избыточность и
несогласованную зависимость
10/17/2024
21
22.
Первая нормальная формаФирма
Модели
Фирма
Модель
BMW
M5, M1
BMW
M5
Nissan
GT-R
BMW
M1
Nissan
GT-R
Отношение находится в 1НФ, если все его атрибуты являются
простыми. Не должно быть повторений строк в таблице
10/17/2024
22
23.
Вторая нормальная формаМодель
Фирма
Цена
Скидка
M5
BMW
5500000
5%
M1
BMW
2500000
5%
GT-R
Nissan
5000000
10%
Записи не должны зависеть от чего-либо, кроме первичного ключа
таблицы. Первичный ключ - это поле или набор полей со значениями,
которые являются уникальными для всей таблицы.
10/17/2024
23
24.
Вторая нормальная формаМодель
Фирма
Цена
Фирма
Скидка
M5
BMW
5500000
BMW
5%
M1
BMW
2500000
Nissan
10%
GT-R
Nissan
5000000
Цена машины зависит от модели и фирмы. Скидка зависят от фирмы,
то есть зависимость от первичного ключа неполная. Исправляется это
путем декомпозиции на два отношения, в которых не ключевые
атрибуты зависят от ПК
10/17/2024
24
25.
Третья нормальная формаМодель
Магазин
Телефон
BMW
Риал-авто
87-33-98
Audi
Риал-авто
87-33-98
Nissan
Некст-Авто
94-54-12
Требуется выносить все не ключевые поля, содержимое которых может
относиться к нескольким записям таблицы в отдельные таблицы
10/17/2024
25
26.
Третья нормальная формаМагазин
Телефон
Модель
Магазин
Риал-авто
87-33-98
BMW
Риал-авто
Некст-Авто
94-54-12
Audi
Риал-авто
Nissan
Некст-Авто
В отношении существуют следующие функциональные зависимости:
Модель → Магазин, Магазин → Телефон, Модель → Телефон
10/17/2024
26
27.
Синтаксис основных запросов28.
Управление базами данныхCREATE DATABASE имя_базы;
Создание новой базы данных
DROP DATABASE имя_базы;
Удаление существующей базы данных
ALTER DATABASE имя_базы RENAME TO новое_имя_базы;
Переименование существующей базы данных
10/17/2024
28
29.
Управление пользователямиCREATE ROLE имя_пользователя;
Создание нового пользователя
DROP ROLE имя_пользователя;
Удаление существующего пользователя
ALTER ROLE имя_пользователя WITH LOGIN;
Разрешает пользователю вход на сервер
ALTER ROLE имя_пользователя WITH PASSWORD ‘пароль’;
Задает пользователю пароль
10/17/2024
29
30.
Управление схемамиCREATE SCHEMA имя_схемы;
Создание новой схемы
DROP SCHEMA имя_cхемы;
Удаление существующей схемы
ALTER SCHEMA имя_схемы RENAME TO новое_имя_схемы;
Переименование существующей схемы
10/17/2024
30
31.
Управление таблицамиCREATE TABLE имя_таблицы (имя_столбца тип_данных, …);
Создание таблицы с заданными столбцами
DROP TABLE имя_таблицы;
Удаление существующей таблицы
ALTER TABLE имя_таблицы RENAME TO новое_имя_таблицы;
Переименование таблицы
ALTER TABLE имя_таблицы SET SCHEMA имя_схемы;
Перемещение таблицы в указанную схему
10/17/2024
31
32.
Управление столбцамиALTER TABLE имя_таблицы ADD COLUMN имя_столбца
тип_данных;
Добавление нового столбца в таблицу
ALTER TABLE имя_таблицы DROP COLUMN имя_столбца;
Удаление стоблца из таблицы
ALTER TABLE имя_таблицы ALTER COLUMN имя_столбца SET
DEFAULT значение_по_умолчанию;
Задание значения по умолчанию для столбца
10/17/2024
32
33.
Управление столбцамиALTER TABLE имя_таблицы ALTER COLUMN имя_столбца TYPE
новый_тип_данных;
Изменение типа данных столбца
10/17/2024
33
34.
Управление ключамиALTER TABLE имя_таблицы ADD CONSTRAINT имя_ограничения
PRIMARY KEY (имя_столбца, …);
Создание первичного ключа
ALTER TABLE имя_таблицы ADD CONSTRAINT имя_ограничения
FOREIGN KEY (имя_стоблца) REFERENCES имя_внешней_таблицы
(имя_столбца);
Создание внешнего ключа
ALTER TABLE имя_таблицы DROP CONSTRAINT имя_ограничения;
Удаление существующего ограничения
10/17/2024
34
35.
Управление ограничениямиALTER TABLE имя_таблицы ADD CONSTRAINT имя_ограничения
CHECK (условие);
Добавление проверки на значения в столбце
ALTER TABLE имя_таблицы ALTER COLUMN имя_столбца SET NOT
NULL;
Запрещение пустых значений в столбце
10/17/2024
35
36.
Управление последовательностямиCREATE SEQUCNCE имя_последовательности;
Создание новой последовательности
DROP SEQUENCE имя_последовательности;
Удаление последовательности
nextval(‘имя_последовательности’)
Увеличение номера в последовательности и получение значения
10/17/2024
36
37.
Управление даннымиINSERT INTO имя_таблицы (имя_столбца, …) VALUES (значение,
…);
Добавляет новые строки в таблицу
UPDATE имя_таблицы SET имя_столбца = новое_значение, …
WHERE условие_отбора;
Изменяет значения столбцов существующих строк
DELETE FROM имя_таблицы WHERE условие_отбора;
Удаляет строки из таблицы
10/17/2024
37
38.
Выборка данныхSELECT имя_стоблца, … FROM имя_таблицы WHERE
условие_отбора GROUP BY имя_столбца_группировки HAVING
условие_группировки ORDER BY имя_стоблца сортировки, … LIMIT
макс_кол-во;
Выбирает данные из таблиц, согласно указанным критериям
10/17/2024
38