- •28.09.2011 Лекция 2. Панасенко Сергей Петрович. Develop@ancud.Ru Основы проектирования и использования баз данных (часть 2). Дополнительные возможности оператора select
- •Оператор insert
- •Основные возможности языка определения данных
- •Основные параметры запроса на создание таблицы
- •Пример запроса на создание таблицы
- •Основные параметры запроса на модификацию таблицы
- •Примеры запросов на модификацию таблицы
- •Пример связи между таблицами (Пример 1)
- •Запрос на создание таблицы Course:
- •Запрос на создание таблицы Lectures:
- •Примеры других запросов языка определения данных:
- •Цели проектирования реляционных бд
- •Пример неудачно спроектированной бд с избыточностью:
- •Основные понятия нормализации:
- •Вторая нормальная форма
- •Пример таблицы, не соответствующей второй нормальной форме:
- •Пример бд, таблицы которой соответствуют второй нормальной форме:
- •Достоинства второй нормальной формы
- •Третья нормальная форма
- •Пример таблицы, не соответствующей третьей нормальной форме
- •Пример таблицы, соответствующей третьей нормальной форме
- •Достоинства третьей нормальной формы
- •Раздел 2.1. «Основы проектирования и использования баз данных».
- •Раздел 2.2. «Безопасность баз данных».
- •Внутренними источниками угроз безопасности субд являются
- •Безопасность взаимодействия с внешними компонентами
- •Составные части обеспечения безопасности бд
- •Логические подсистемы обеспечения безопасности
- •Основные средства обеспечения конфиденциальности субд
- •Представление
- •Пример таблицы, для которой необходимо представление
28.09.2011 Лекция 2. Панасенко Сергей Петрович. Develop@ancud.Ru Основы проектирования и использования баз данных (часть 2). Дополнительные возможности оператора select
-
Объединение результатов нескольких запросов.
-
Многотабличные запросы на чтение (соединения).
-
Самосоединения.
-
Использование агрегатных (осущ. группировку какой-либо информации) функций.
-
Запросы с группировкой.
-
Вложенные запросы.
Агрегатные функции:
-
SUM() – вычисляет сумму всех значений, содержащихся в столбце.
-
AVG() – вычисляет среднее арифметическое значений, содержащихся в столбце. Например, вычисление средней зарплаты сотрудника, или «запрос с группировкой» - средняя зарплата сотрудников той или иной кафедры
-
MIN() – находит наименьшее среди значений, содержащихся в столбце.
-
MAX() – находит наибольшее среди значений, содержащихся в столбце.
-
COUNT() – количество значений, содержащихся в столбце.
-
COUNT(*) – количество строк в таблице.
Если есть записи с пустыми значениями, функция COUNT(*) даст их кол-во целиком. А COUNT() – только количество непустых записей.
Синтаксическая диаграмма агрегатных функций: (стр. 88 книги БД, рисунок 3.16)
SUM – ( ------------- Выражение ------------)-----------
---DISTINCT Имя столбца ---
AVG—(---------------Выражение---------------)----------
…
Оператор insert
-
Однострочный оператор INSERT позволяет добавить в таблицу новую строку.
-
Многострочный оператор INSERT обеспечивает извлечение строк из одной части БД и их добавление в другую таблицу.
Рисунок, стр. 102, рис. 3.17
INSERT INTO --- Имя таблицы ------------------------------
-(--Имя столбца--)—
VALUES ---(---Константа----)----
Синтаксическая диаграмма многострочного оператора INSERT
Рисунок, стр. 102, рис. 3.18
Примеры запросов INSERT
Примеры однострочного INSERT
INSERT INTO Prep VALUES (‘Михайлов’, ‘Доцент’, 0)
Во все столбцы которые есть в таблице по их порядку нахождения, в котором они располагаются в таблице.
INSERT INTO Prep (Name, Position) VALUES (‘Михайлов’,’Доцент’)
Пример многострочного INSERT
INSERT INTO Prep (Name, Position) SELECT Name, Position FROM Workers WHERE Position=’Доцент’
Столбец указываем явным образом.
Синтаксическая диаграмма оператора DELETE
Рисунок, в книжке нет.
|----DELETE----FROM-----Имя таблицы-----|
|-----------------------------------------------|
|-----WHERE----Условие поиска-----.
Синтаксическая диаграмма оператора UPDATE
Рисунок стр. 106, 3.19 В учебнике ошибка: слово VALUES заменить на WHERE
|---UPDATE---Имя таблицы---SET---^----Имя столбца=Выражение----|------|
|-------------------,-----------------------|
…
Пример Оператора DELETE
DELETE FROM Prep WHERE Name=’Михайлов’ AND Position=’Доцент’
Пример оператора UPDATE
UPDATE Prep SET Position=’Профессор’ WHERE Name=’Михайлов’
Доцента Михайлова повышаем до профессора, таким образом это обрабатывается в БД.
Язык определения данных
Используется относительно редко, поскольку:
-
Не определён в стандарте SQL, поэтому различается в реализациях СУБД различных производителей; отсутствие некого стандарта в данном случае плохо
-
Необходим только при создании, удалении и модификации структур данных;
-
Обычно скрыт интерфейсом СУБД, поэтому напрямую используется, в основном, при программном взаимодействии с СУБД. Многие администраторы БД вообще этот язык не видели