- •Письменные лекции по дисциплине «Базы данных»
- •Лекция 1. Понятие субд. Модели данных. Реляционная модель
- •1.1. Бд и субд
- •1.2. Классификация бд
- •1.3. Классификация субд
- •1.3.1. Состав субд и работа бд
- •1.4. Язык sql
- •1.5. Основные типы sql запросов по их видам
- •1.6. Основные функции субд
- •1.7. Модели данных
- •1.8. Реляционная модель данных
- •1.9. Информационный объект
- •1.10. Нормализация отношений
- •1.10.1. Первая нормальная форма
- •1.10.2. Вторая нормальная форма
- •Лекция 2. Продолжение прошлой лекции
- •2.1. Третья нормальная форма
- •2.2. Отношения
- •2.3. Ключ
- •2.4. Пример выгрузки данных
- •2.5. Заполнение таблиц
- •2.6. Реляционные операции
- •1. Выборка
- •2. Проекция
- •3. Объединение
- •4. Пересечение
- •5. Разность
- •6. Произведение
- •7. Деление
- •8. Соединение
- •2.7. Соединение таблиц
- •2.8. Изменение таблицы
- •2.9. Типы данных MySql
- •2.10. Параллелизм
- •Лекция 3. Хранимые процедуры и функции
- •3.1. Хранимая процедура MySql
- •3.2. Переменные
- •3.3. Параметры процедуры
- •3.4. Операторы if и case
- •3.5. Оператор return
- •Лекция 4. Транзакции. Уровни изоляции. Блокировки.
- •4.1. Понятие транзакции
- •4.2. Операторы транзакции
- •4.3. Уровни изоляции (изолированности) транзакций
- •4.4. Тест acid
- •4.5. Механизм блокировок
- •4.6. Взаимоблокировки
- •4.7. Ведение журнала транзакций
- •Лекция 5. Ссылочная целостность данных. Внешние ключи. Индексирование.
- •5.1. Ссылочная целостность данных
- •5.2. Внешний ключ
- •5.2.1. Условия обеспечения целостности данных при помощи внешнего ключа
- •5.2.2. Практический пример
- •5.2.3. Синтаксис объявления внешнего ключа
- •5.3. Индекс
- •5.3.1. Для каких полей нужно создавать индексы
- •5.3.2. Принцип работы индексов
- •5.3.3. Виды индексов
- •5.3.4. Индексирование таблиц MySql
- •5.3.5. Создание индекса в MySql
- •5.3.6. Типы индексов в MySql
- •5.3.7. Удаление индекса в MySql
- •5.3.8. Преимущества использования индексов
- •5.3.9. Недостатки использования индексов
- •5.3.10. Практический пример
- •5.4. Курсор
- •Лекция 6. Администрирование баз данных
- •6.1. Резервирование и восстановление вручную
- •6.2. Команды grant и revoke
- •6.3. Утилита mysqldump
- •6.3.1. Создание дампа
- •6.3.2. Развертывание дампа
- •6.4. Утилита mysqlhotcopy
- •6.5. Утилита mysqlcheck
- •Лекция 7. Администрирование бд
- •7.7. Статус таблиц
- •7.8. Просмотр таблиц, доступных в бд
- •7.9. Получение информации о статусе сервера
- •7.10. Получение информации о переменных
- •7.16. Файлы журналов
- •7.17. Как обезопасить MySql от хакеров
- •Указатели на страницы с ответами
2.5. Заполнение таблиц
INSERT INTO имя_таблицы (список_столбцов_для_вставки) VALUES (список_вставляемых_значений)
Если таблицу заполнили неправильными данными:
Очистить всю таблицу — TRUNCATE TABLE имя_таблицы.
Очистить (удалить) записи в таблице выборочно — DELETE FROM имя_табл WHERE имя_поля = чему-то.
Редактирование строки:
UPDATE table
SET column1 = expression1,
column2 = expression2,
…
[WHERE conditions];
2.6. Реляционные операции
1. Выборка
SELECT <columns...> FROM <table> WHERE <condition>
Выбирает все наборы значений (по столбцам <columns...>) таблицы <table>, для которых выполняется условие <condition>.
Пример
Имя |
Возраст |
Вес |
Harry |
34 |
80 |
Sally |
28 |
64 |
George |
29 |
70 |
Helena |
54 |
54 |
Peter |
34 |
80 |
SELECT * FROM Персоны WHERE Возраст >= 34
Имя |
Возраст |
Вес |
Helena |
54 |
54 |
2. Проекция
SELECT DISTINCT <columns...> FROM <table>
Выбирает все наборы значений (по столбцам <columns...>) таблицы <table> и удаляет все кортежи-дубликаты по указанным столбцам <columns...>.
Пример
Имя |
Возраст |
Вес |
Harry |
34 |
80 |
Sally |
28 |
64 |
George |
29 |
70 |
Helena |
54 |
54 |
Peter |
34 |
80 |
SELECT DISTINCT Возраст, Вес FROM Персоны
Возраст |
Вес |
28 |
64 |
29 |
70 |
54 |
54 |
34 |
80 |
3. Объединение
SELECT <columns...> FROM <table1>
UNION
SELECT <columns...> FROM <table2>
Выбирает все наборы значений (по столбцам <columns...>) таблицы <table1> и все наборы значений (по тем же столбцам <columns...>) таблицы <table2>, по итогу их объединяя.
Пример
Имя |
Возраст |
Вес |
Harry |
34 |
80 |
Sally |
28 |
64 |
George |
29 |
70 |
Helena |
54 |
54 |
Peter |
34 |
80 |
Имя |
Возраст |
Вес |
Daffy |
24 |
19 |
Donald |
25 |
23 |
Scrooge |
81 |
27 |
SELECT Имя, Возраст, Вес FROM Персоны
UNION
SELECT Имя, Возраст, Вес FROM Персонажи
Имя |
Возраст |
Вес |
Harry |
34 |
80 |
Sally |
28 |
64 |
George |
29 |
70 |
Helena |
54 |
54 |
Peter |
34 |
80 |
Daffy |
24 |
19 |
Donald |
25 |
23 |
Scrooge |
81 |
27 |
4. Пересечение
SELECT <columns...> FROM <table1>
INTERSECT
SELECT <columns...> FROM <table2>
Выбирает все наборы значений (по столбцам <columns...>) таблицы <table1> и все наборы значений (по тем же столбцам <columns...>) таблицы <table2>, по итогу образуя таблицу их пересечения (т. е. те кортежи, которые есть в обеих таблицах).
Пример
Имя |
Возраст |
Вес |
Harry |
34 |
80 |
Sally |
28 |
64 |
George |
29 |
70 |
Helena |
54 |
54 |
Peter |
34 |
80 |
Имя |
Возраст |
Вес |
Daffy |
24 |
19 |
George |
29 |
70 |
Donald |
25 |
23 |
Scrooge |
81 |
27 |
Sally |
28 |
64 |
SELECT Имя, Возраст, Вес FROM Персоны
INTERSECT
SELECT Имя, Возраст, Вес FROM Персонажи
Имя |
Возраст |
Вес |
George |
29 |
70 |
Sally |
28 |
64 |