
- •1. Введение в бд
- •2. Теоретические основы бд
- •2.1 Базы данных
- •2.2. Архитектуры обработки информации
- •Ошибка! Ошибка связи.
- •Ошибка! Ошибка связи.
- •2.3 Модели баз данных
- •2.3.1 Иерархическая модель данных
- •Ошибка! Ошибка связи.
- •Ошибка! Ошибка связи.
- •2.3.2 Сетевая модель данных
- •Ошибка! Ошибка связи.
- •2.3.3 Реляционная модель данных
- •3. Реляционный подход к организации бд
- •3.1 Базовые понятия реляционных баз данных
- •Ошибка! Ошибка связи.
- •3.2 Фундаментальные свойства отношений
- •3.3 Взаимосвязь отношений
- •4. Реляционная алгебра
- •4.1 Обзор реляционной алгебры
- •Замкнутость реляционной алгебры
- •Отношения, совместимые по типу
- •4.2 Теоретико-множественные операторы
- •4.3 Специальные реляционные операторы
- •4.4 Зависимые реляционные операторы
- •4.5 Примитивные реляционные операторы
- •4.6 Запросы, невыразимые средствами реляционной алгебры
- •4.7 Кросс-таблицы
- •5. Проектирование бд
- •5.1. Цели и этапы проектирования
- •5.2 Уровни моделирования (проектирования) бд
- •5.3 Критерии оценки качества логической модели данных
- •5.4 Нормализация и ее необходимость
- •5.5 Теория нормализации
- •5.6 Элементы модели "сущность-связь"
- •Основные понятия er-диаграмм
- •Ошибка! Ошибка связи.
- •6. Элементы языка sql
- •6.1 Типы данных
- •6.2 Операторы dml (определения объектов базы данных)
- •6.2.1 Операторы работы с таблицами
- •6.3 Операторы dml (операторы манипулирования данными)
- •6.3.1 Примеры использования операторов манипулирования данными
- •Insert - вставка строк в таблицу
- •6.3.2 Update - обновление строк в таблице
- •6.3.3 Delete - удаление строк в таблице
- •6.3.4 Выбор данных из таблицы select
- •6.3.4.1 Общий синтаксис команды select
- •6.3.4.2 Примеры работы с использованием оператора select
- •Использование агрегатных функций в запросах
- •Использование агрегатных функций с группировками
- •Использование подзапросов
- •Использование объединения, пересечения и разности
- •6.3.4.3 Порядок выполнения оператора select
- •6.3.4.4 Реализация реляционной алгебры средствами оператора select (Реляционная полнота sql)
- •6.4 Объекты и концепции базы данных
- •6.4.1 Таблицы (Tables)
- •6.4.2 Столбцы (Columns)
- •6.4.3 Типы данных (Data types)
- •Тип данных blob
- •6.4.4 Домены (Domains)
- •6.4.5 Справочные ограничения целостности (Referential integrity constraints)
- •6.4.6 Индексы (Indexes)
- •6.4.7 Представления (Views)
- •6.4.8. Хранимые процедуры (Stored procedures)
- •6.4.9 Триггеры (Triggers)
- •6.4.10 Генераторы (Generators)
- •6.4.11 Защита (Security)
- •6.5 Операторы sql для работы с объектами бд
- •6.5.1 Представления
- •6.5.2 Хранимые процедуры
- •6.5.3 Генераторы
- •6.5.4 Триггеры
- •6.5.5 Индексы
- •6.6 Инструкции sql
- •7. Физическая организация и работа субд
- •7.1 Хранение данных
- •Ошибка! Ошибка связи.
6.3 Операторы dml (операторы манипулирования данными)
SELECT - отобрать строки из таблиц
INSERT - добавить строки в таблицу
UPDATE - изменить строки в таблице
DELETE - удалить строки в таблице
COMMIT - зафиксировать внесенные изменения
ROLLBACK - откатить внесенные изменения
6.3.1 Примеры использования операторов манипулирования данными
Insert - вставка строк в таблицу
Пример. Вставка одной строки в таблицу:
insert into
A(ID_SOTR, FAM, ZAP)
values (1, 'Агафонов', 1000.2)
Пример. Вставка в таблицу B нескольких строк, выбранных из A у которых поле ZAP больше 1000). При этом остальные поля, а это FAM будут null (!):
INSERT INTO
B (ID_SOTR, ZAP)
SELECT ID_SOTR, ZAP
FROM A
WHERE A.ZAP>1000
Общий синтаксис INSERT (сокращенный):
INSERT INTO <объект_БД> [(имя_столбца [,имя_столбца …])]
{VALUES (<значение> [, <значение> …]) | <выражение_SELECT>};
<объект_БД>=имя_таблицы|имя_представления
<значение>={:переменная | <константа> | <выражение>
| <функция> ([<значение> [, <значение> …]])
| NULL
}
<константа> = число | 'строка'
<выражение> - арифметическое выражение
<функция> – пользовательская/стандартная функция.
<выражение_SELECT> будет рассмотрено ниже.
6.3.2 Update - обновление строк в таблице
Пример Обновление нескольких строк в таблице А, для которых поле FAM неопределено:
UPDATE A
SET FAM = 'неизвестно'
WHERE B.FAM IS NULL
Пример Обновление всех строк в таблице B, при этом значение поля ZAP будет в 100 раз больше прежнего:
UPDATE B
SET ZAP = ZAP*100
Общий синтаксис UPDATE (сокращенный):
UPDATE <объект_БД>
SET имя_столбца=<значение> [,имя_столбца=<значение> …]
[WHERE <условие_поиска>];
<условие_поиска> будет рассмотрено как часть при рассмотрении <выражение_SELECT>
6.3.3 Delete - удаление строк в таблице
Пример. Удаление нескольких строк в таблице:
DELETE FROM A
WHERE A.ZAP = 1;
Пример. Удаление всех строк в таблице:
DELETE FROM B;
Пример. Удаление всех строк в таблице, для которых значение поля FAM есть неопределенно, т.е. null
delete from B
where FAM is NULL
Общий синтаксис DELETE (сокращенный):
DELETE FROM <объект_БД>
{[WHERE <условие_поиска>]
6.3.4 Выбор данных из таблицы select
Оператор SELECT является фактически самым важным для пользователя и самым сложным оператором SQL. Он предназначен для выборки данных из таблиц, т.е. он, собственно, и реализует одно их основных назначение базы данных - предоставлять информацию пользователю.
Замечание. На самом деле в базах данных могут быть не только постоянно хранимые таблицы, а также временные таблицы и так называемые представления.
Представления - это хранящиеся в базе данные SELECT-выражения. С т.з. пользователя представление это таблица, которая не хранится постоянно в базе данных, а "возникает" в момент обращения к ней. С точки зрения оператора SELECT и постоянно хранимые таблицы, и временные таблицы и представления выглядят совершенно одинаково. Конечно, при реальном выполнении оператора SELECT системой учитываются различия между хранимыми таблицами и представлениями, но эти различия скрыты от пользователя.
Результатом выполнения оператора SELECT всегда является таблица. Т.о., по результатам действий оператор SELECT похож на операторы реляционной алгебры. Любой оператор реляционной алгебры может быть выражен подходящим образом сформулированным оператором SELECT. Сложность оператора SELECT определяется тем, что он содержит в себе все возможности реляционной алгебры, а также дополнительные возможности, которых в реляционной алгебре нет.