Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗИПЕКТ 28.09.11 Лекция 2.docx
Скачиваний:
1
Добавлен:
15.11.2018
Размер:
61.83 Кб
Скачать

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, поэтому различается в реализациях СУБД различных производителей; отсутствие некого стандарта в данном случае плохо

  • Необходим только при создании, удалении и модификации структур данных;

  • Обычно скрыт интерфейсом СУБД, поэтому напрямую используется, в основном, при программном взаимодействии с СУБД. Многие администраторы БД вообще этот язык не видели