- •Общая характеристика субд Access. Создание и редактирование базы данных средствами субд Access. Свойства реляционной таблицы. Отношения между таблицами.
- •9Структуру стандарта sql.Типы данных и операции , агрегирующие функции. Примеры.
- •19 Администрирование бд и управление объектами. Разграничение доступа. Привилегии, роли
- •20 Управл парал-ной обработкой данных. Блокировки
- •13 Общая концепция субд Oracle
- •15.Курсоры , их атрибуты. Использования цикла for при работе с курсорами.
- •18.Триггеры.Объявление, назначение и примеры использования. Модификация триггеров.
- •16.Обработка исключений.Пользовательские исключения.Возбуждение исключений.
- •Возбуждение исключений
- •3. По аналогии с левым можно определить правое внешнее соединение. Перепишем предыдущий пример с использованием его возможностей:
- •Модификация данных
- •Модификация объектов базы данных
- •Создание таблиц. Ограничения
- •Последовательности
- •Модификация и удаление таблиц
- •Представления
- •14. Язык pl/sql. Основные типы данных и операторы
- •Структура программы
- •Идентификаторы и описания переменных
- •Типы данных
- •Процедурные операторы
- •Особенности записи операторов sql
- •17.Подпрограммы. Хранимые подпрограммы. Пакеты.
- •Хранимые подпрограммы
3. По аналогии с левым можно определить правое внешнее соединение. Перепишем предыдущий пример с использованием его возможностей:
SELECT empname, NVL(enddate, SYSDATE)-startdate AS stage
FROM career RIGHT OUTER JOIN emp ON career.empno = emp.empno;
Упорядочивание выходных строк
Мы можем выполнить сортировку строк выходного запроса, указав в нем фразу
ORDER BY {имястолбца | номерстолбца [ASC | DESC] }…
Объединение запросов
Иногда требуется объединить результаты выполнения двух и более запросов в единое множество строк.Для объединения результатов двух и нескольких запросов используется оператор UNION, запись которого имеет вид
запрос {UNION [ALL] запрос }…
Заметим, что при объединении запросов, в отличие от обычного оператора SELECT, происходит автоматическое устранение дублирующихся записей. Чтобы избежать этого, необходимо указать ключевое слово ALL.
Для объединения запросов можно задавать фразу ORDER BY, но следует иметь в виду, что сортировка выполняется после объединения, соответственно фраза ORDER BY должна быть записана в последнем внутреннем операторе SELECT.
К таким операторам относятся также операторы INTERSECT (формальное пересечение с исключением повторяющихся строк) и MINUS (результирующее множество содержит все строки, входящие в состав первого запроса: но отсутствующие во втором). Формат этих операторов совпадает с форматом оператора UNION.
Пример.Найти временные интервалы (месяц и год), в которые работник с кодом 3209 получал только основную зарплату.
SELECT month, year FROM salary1 WHERE empno=3209
MINUS
SELECT month, year FROM salary2 WHERE empno=3209;
11.Модификация данных. Модификация объектов БД. Последовательности. Модификация и удаление таблиц. Примеры использования.
Модификация данных
Под модификация данных- операции, изменяющие содержимое таблиц, но не их структуру. Рассматриваемые операции не будут работать с другими объектами базы данных.Основными операциями по модификации записей являются вставка новых записей, удаление и изменение значений в существующих записях.
Для вставки новых записей используется оператор
INSERT INTO приемник
[(списокстолбцов)] { VALUES (списокзначений) | подзапрос};
Приемник выступает таблица или представление, которое было создано в режиме модификации. Если список столбцов не указан, то список значений во фразе VALUES должен содержать значения для каждого столбца, и порядок следования значений совпадает с порядком описания столбцов. Для таблиц со сложной структурой это может оказаться не совсем удобно, поэтому мы можем воспользоваться параметром «список столбцов», как показано в следующем примере:
INSERT INTO emp VALUES (’4210’, ’SERGE KASHKEVICH’, NULL);
INSERT INTO emp (empno, empname) VALUES (’4210’, ’SERGE KASHKEVICH’);
Заметим, что если структура таблицы emp такая же, как описано ранее, то оба этих оператора эквивалентны. Однако после возможного изменения структуры таблицы (например, добавления новых полей) первый запрос потребует модификации, а второй можно оставить неизменным.
Использование подзапроса в операторе вставки позволяет добавлять несколько записей сразу, например:Зарплата за декабрь 2001 года увеличилась на 3% по сравнению с ноябрем этого же года для всех работников, которые работали в ноябре. Добавить соответствующие записи в таблицу salary.
INSERT INTO salary (empno, month, year, salvalue)
SELECT empno, 12, 2001, salvalue*1.03 FROM salary
WHERE month=11 AND year=2001;
Удаление записей из существующей таблицы выполняется с помощью оператора
DELETE FROM приемник
[ WHERE условие ];
Если условие не задано, удаляются все строки таблицы. В условии можно использовать подзапросы практически любой сложности.
Н-р: Удалить из таблицы dept сведения об отделах, в которых не было ни одного сотрудника, начиная с 2002 года.
DELETE FROM dept WHERE deptno NOT IN
(SELECT DISTINCT deptno FROM career
WHERE NVL(enddate, sysdate)>=
to_date(’01.01.2002’, ’dd.mm.yyyy’));
Изменение содержимого записей таблицы выполняется с помощью оператора UPDATE
UPDATE приемник
SET { {столбец | (списокстолбцов)} = выражение }…
[ WHERE условие ];
Н-р: Задать дату рождения работника SMITH – 15 января 1953 года.
UPDATE emp SET date=to_date(’15.01.1953’, ’dd.mm.yyyy’)
WHERE empname=’SMITH’;
Установить для всех должностей, для которых в настоящее время нет работников, минимальный оклад, равный минимальной начисленной зарплате за январь 2003 года.
UPDATE job SET minsalary=
(SELECT MIN(salvalue) FROM salary
WHERE month=1 AND year=2003)
WHERE jobno NOT IN
(SELECT DISTINCT jobno FROM career
WHERE enddate IS NULL);