Similar presentations:
Базы данных. Введение в SQL. Типы данных. Индексы. CRUD-операции
1.
Урок 2Базы данных
Введение в SQL. Типы данных. Индексы.
CRUD-операции
2.
План урокаВведение в SQL
Числовые и строковые типы данных
Календарные типы данных и множества
Индексы
CRUD-операции
3.
Введение в SQLСтандарт SQL
Описание данных DDL
Управление данными DML
Комментарии
Ключевые слова
Кавычки и их использование
4.
Язык SQLSEQUEL — Structured English Query Language
SQL — Structured Query Language
5.
Достоинства SQLДекларативная природа
Высокоуровневая струра, напоминающая естественный язык
Высокая эффективности обработки множеств
Независимость от конкретных СУБД
Межплатформенная переносимость
Наличие стандартов
6.
Недостатки SQLСлабоструктурированный язык
Язык старый
Плохо взаимодействует с ООП-языками
SQL — не универсальный язык
Множество диалектов
7.
Элементы языкаКомментарии
Предопределенные функции
Скалярные выражения
Представления
Ключевые слова
Переменные
Операторы
Хранимые процедуры
Таблицы
Хранимые функции
Столбцы
Триггеры
Индексы
Коды ошибок
8.
DDL и DMLDDL (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.
Объем памяти типа TEXT28
TINYTEXT
8
TEXT
8
8
MEDIUMTEXT
8
8
8
LONGTEXT
8
8
8
216
224
8
232
21.
Объем памяти типа TEXTTINYTEXT
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 и SETENUM
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.
Псевдотип SERIALSERIAL == BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
42.
Индексы BTREE4
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