291.57K
Категория: Базы данныхБазы данных

Базы данных. Введение в SQL. Типы данных. Индексы. CRUD-операции

1.

Урок 2
Базы данных
Введение в SQL. Типы данных. Индексы.
CRUD-операции

2.

План урока
Введение в SQL
Числовые и строковые типы данных
Календарные типы данных и множества
Индексы
CRUD-операции

3.

Введение в SQL
Стандарт SQL
Описание данных DDL
Управление данными DML
Комментарии
Ключевые слова
Кавычки и их использование

4.

Язык SQL
SEQUEL — Structured English Query Language
SQL — Structured Query Language

5.

Достоинства SQL
Декларативная природа
Высокоуровневая струра, напоминающая естественный язык
Высокая эффективности обработки множеств
Независимость от конкретных СУБД
Межплатформенная переносимость
Наличие стандартов

6.

Недостатки SQL
Слабоструктурированный язык
Язык старый
Плохо взаимодействует с ООП-языками
SQL — не универсальный язык
Множество диалектов

7.

Элементы языка
Комментарии
Предопределенные функции
Скалярные выражения
Представления
Ключевые слова
Переменные
Операторы
Хранимые процедуры
Таблицы
Хранимые функции
Столбцы
Триггеры
Индексы
Коды ошибок

8.

DDL и DML
DDL (Data Definition Language) — язык описания данных
DML (Data Manipulation Language) — язык управления данными

9.

Структура запроса
Ключевые слова
SELECT
id,
name
FROM
users
WHERE
name = ‘Игорь’
Столбцы
Таблица
Скалярное выражение

10.

Урок 2
Базы данных
Введение в SQL. Типы данных. Индексы.
CRUD-операции

11.

Числовые и строковые типы данных
Типы данных
Целые числа
Вещественные числа
Строки

12.

Типы данных MySQL
Числовые
Строковые
NULL
Календарные
Коллекции

13.

Атрибуты
NULL или NOT NULL
DEFAULT
UNSIGNED

14.

Атрибут UNSIGNED
–2 147 683 648
2 147 683 647
INT
–231
0
231
4 294 967 295
INT UNSIGNED
232

15.

Числовые типы
Числовые
Целочисленные
Вещественные
Точные
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
FLOAT
DOUBLE
DECIMAL

16.

Объем памяти целых типов
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT

17.

Объем памяти вещественных
типов
FLOAT
DOUBLE
DECIMAL(7,4)
1
1
1
.
2
0
0
0

18.

Строковые типы
Строковые
Фиксированные
Переменные
CHAR
VARCHAR
BLOB
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT

19.

CHAR vs VARCHAR
Запись фиксированной длины
INT
INT
CHAR
CHAR
Запись переменной длины
INT
INT
VARCHAR, NULL
65536

20.

Объем памяти типа TEXT
28
TINYTEXT
8
TEXT
8
8
MEDIUMTEXT
8
8
8
LONGTEXT
8
8
8
216
224
8
232

21.

Объем памяти типа TEXT
TINYTEXT
28
256
TEXT
216
65536
MEDIUMTEXT
224
16777216 (16 Мб)
LONGTEXT
232
4294967296 (4 Гб)

22.

TEXT и BLOB медленнее других типов
Запись фиксированной длины
INT
INT
CHAR
Запись переменной длины
INT
INT
CHAR
65536
VARCHAR, NULL
TEXT
BLOB

23.

Урок 2
Базы данных
Введение в SQL. Типы данных. Индексы.
CRUD-операции

24.

Календарные типы и множества
Значение NULL
Календарные типы
ENUM
SET
JSON тип
Изменение структуры таблицы при помощи ALTER TABLE

25.

Календарные типы
TIME
Календарные типы
YEAR
DATE
DATETIME
TIMESTAMP

26.

Календарные типы
TIME
Календарные типы
YEAR
DATE
DATETIME
TIMESTAMP

27.

Календарные типы
TIME
Календарные типы
YEAR
DATE
DATETIME
TIMESTAMP

28.

Календарные типы
TIME
Календарные типы
YEAR
DATE
DATETIME
TIMESTAMP

29.

Календарные типы
TIME
Календарные типы
YEAR
DATE
DATETIME
TIMESTAMP

30.

Календарные типы
TIME
Календарные типы
YEAR
DATE
DATETIME
TIMESTAMP

31.

Формат календарных типов
Тип
Формат
YEAR
0000
DATE
‘0000-00-00’
TIME
‘00:00:00’
TIMESTAMP
‘0000-00-00 00:00:00’
DATETIME
‘0000-00-00 00:00:00’

32.

Объем памяти календарных типов
YEAR
DATE
TIME
TIMESTAMP
DATETIME

33.

ENUM и SET
ENUM
SET
‘first’,’second’,’third’
first
first,third
third
first,second,third

34.

Урок 2
Базы данных
Введение в SQL. Типы данных. Индексы.
CRUD-операции

35.

Индексы
Индексы
Устройство индекса
Типы индексов
Атрибут AUTO_INCREMENT
Управление индексами

36.

Сортировка в индексе
1
4
Модули памяти
2
6
Блоки питания
3
2
Материнские платы
4
5
Жесткие диски и SSD
5
1
Процессоры
6
3
Видеокарты

37.

Типы индексов
индексы
Обычные
уникальные,
первичный ключ
полнотекстовый

38.

Типы индексов
индексы
Обычные
уникальные,
первичный ключ
полнотекстовый

39.

Типы индексов
индексы
Обычные
уникальные,
первичный ключ
полнотекстовый

40.

Типы индексов
индексы
Обычные
уникальные,
первичный ключ
полнотекстовый

41.

Псевдотип SERIAL
SERIAL == BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE

42.

Индексы BTREE
4
2
1
1
6
3
2
3
5
4
5
7
6
7

43.

Индексы HASH
Обычный индекс
индекс
данные
Уникальный индекс
индекс
данные

44.

Индекс по нескольким столбцам
year
last_name
first_name
1990
Абакумов
Сергей
1990
Борисов
Игорь
1990
Сергеев
Вячеслав
1991
Антонов
Александр
1991
Ковалев
Сергей
1991
Трофимов
Антон
SELECT * FROM tbl
WHERE year = 1990
SELECT * FROM tbl
WHERE
year = 1990 AND
last_name = Борисов
SELECT * FROM tbl
WHERE first_name = ‘Сергей’

45.

Урок 2
Базы данных
Введение в SQL. Типы данных. Индексы.
CRUD-операции

46.

CRUD-операции
Введение в CRUD-операции
Вставка данных
Извлечение данных
Обновление данных
Удаление данных
Команда INSERT ... SELECT

47.

CRUD-операции
CREATE
INSERT
READ
SELECT
UPDATE
UPDATE
DELETE
DELETE

48.

Вставка. Оператор INSERT
Однострочная вставка
INSERT INTO catalogs VALUES (NULL, ‘Процессоры’);
INSERT INTO catalogs VALUES (NULL, ‘Мат.платы’);
INSERT INTO catalogs VALUES (NULL, ‘Видеокарты’);
Многострочная вставка
INSERT INTO catalogs VALUES
(NULL, ‘Процессоры’),
(NULL, ‘Мат.платы’),
(NULL, ‘Видеокарты’);

49.

Удаление данных
Удаление данных
DELETE FROM catalogs
Очистка таблицы
TRUNCATE catalogs

50.

Домашнее задание
Пусть в таблице catalogs базы данных shop в строке name могут
находиться пустые строки и поля принимающие значение NULL.
Напишите запрос, который заменяет все такие поля на строку
‘empty’. Помните, что на уроке мы установили уникальность на
поле name. Возможно ли оставить это условие? Почему?
Спроектируйте базу данных, которая позволяла бы
организовать хранение медиа-файлов, загружаемых
пользователем (фото, аудио, видео). Сами файлы будут
храниться в файловой системе, а база данных будет хранить
только пути к файлам, названия, описания, ключевых слов и
принадлежности пользователю.

51.

Домашнее задание
(по желанию) В учебной базе данных shop присутствует
таблица catalogs. Пусть в базе данных sample имеется таблица
cat, в которой могут присутствовать строки с такими же
первичными ключами. Напишите запрос, который копирует
данные из таблицы catalogs в таблицу cat, при этом для записей
с конфликтующими первичными ключами в таблице cat должна
производиться замена значениями из таблицы catalogs.

52.

Домашнее задание
shop.catalogs
sample.cat
1
Процессоры
1
Процессоры
2
Мат.платы
2
Мат.платы
3
Видеокарты
3
Видеокарты
sample.cat
1
Intel
English     Русский Правила