СПбГУ НИУ ИТМО/КТУ/КОТ/группы х108

Среда, 08.01.2025, 17:04

Приветствую Вас Гость RSS | Главная | Карта сайта
Архив работ кафедры компьютерных образовательных технологий
Регистрация | Вход

Главная » Файлы » 3 КУРС

В разделе материалов: 53
Показано материалов: 41-45
Страницы: « 1 2 ... 7 8 9 10 11 »

a)1.Последовательность:

CREATE SEQUENCE staff_id

INCREMENT BY 1

START WITH 13;

 

2.Процедура:

CREATE OR REPLACE

PROCEDURE addEmployee(first_name varchar2, last_name varchar2, email varchar2, phone varchar2, birthday date, job varchar2, department varchar2) IS

     s_id number;

     j_id number;

     d_id number;

BEGIN

if regexp_like(email, '\w+@\w+(\.\w{2,4}){1,2}') then

  if regexp_like(phone, '^\(\d{3}\)\d{3}-\d{2}-\d{2}$') then

    if trunc(months_between(sysdate, birthday) / 12) >= 18 then

      SELECT staff_id.nextval INTO s_id FROM DUAL;

      begin

        SELECT job_id INTO j_id FROM jobs WHERE lower(job_name) = lower(job);

      exception

        when NO_DATA_FOUND then raise_application_error(-20903, 'Bad job name');

      end;     

      begin

        SELECT department_id INTO d_id FROM departments WHERE lower(department_name) = lower(department);

      exception

        when NO_DATA_FOUND then raise_application_error(-20904, 'Bad department name');

      end;

      INSERT INTO staff VALUES(s_id, UPPER(SUBSTR(first_name, 1, 1)) || LOWER(SUBSTR(first_name, 2)), UPPER(SUBSTR(last_name, 1, 1)) || LOWER(SUBSTR(last_name, 2)), email, phone, SYSDATE, birthday, null, j_id, d_id);

    else raise_application_error(-20902, 'Too young');

    end if;

  else raise_application_error(-20901, 'Bad phone number');

  end if;

else raise_application_error(-20900, 'Bad e-mail');

end if;

END;

Управление данными | Просмотров: 446 | Загрузок: 36 | Добавил: a1 | Дата: 05.12.2011 | 19:34 | Комментарии (0)

№ 9 Представления
Управление данными
Используя данные из таблиц staff, jobs, departments и locations, создайте представление (view), которое будет содержать информацию о ФИО сотрудника, должности, отделе в котором он работает, его местонахождении и зарплате ([оклад /jobs.salary/ + надбавка /staff.increase/] - 13%). Необходимо учесть, что надбавка может иметь значение null, если это так, то считать надбавку равной нулю. Зарплата должна быть выведена в формате XXXXX.XXр. Местонахождение должно включать в себя название и описание, разделенные запятой. Записи должны быть отсортированы по ФИО по возростанию. Выводиться должно не более десяти записей. Запрос по созданному представлению (select * from view1) должен соответствовать следующей таблице (пример):
Управление данными | Просмотров: 446 | Загрузок: 28 | Добавил: a1 | Дата: 05.12.2011 | 19:34 | Комментарии (0)

Создайте триггер, который при изменении данных (INSERT, UPDATE) в таблице listeners приводит к единому формату фамилию и имя добавляемого слушателя курсов. Первая буква фамилии и имени заглавная, остальные строчные. А также выводит информацию об исключении, возникающем при несоблюдении формата для телефонных номеров (XXX)XXX-XX-XX. Для получения идентификатора слушателя (listeners.LSTNR_ID), используйте нециклическую последовательность (sequence). Начальное значение для последовательности определяется номером последней записи в таблице. Шаг последовательности - единица.
В отчет нужно поместить код создания последовательности, триггера, пример изменения данных и выборка результата для определения корректности работы триггера.
Управление данными | Просмотров: 448 | Загрузок: 31 | Добавил: a1 | Дата: 05.12.2011 | 19:33 | Комментарии (0)

№ 7 Объединения (UNION, INTERSECT, MINUS)
Управление данными
1. Загрузите данные из source3.sql в базу. Используя объединения, напишите запрос, который, используя информацию из таблиц staff и listeners, выводит список людей, посещающих курсы повышения квалификации. Причем ФИО должны выводиться в особом порядке: сначала выводятся сотрудники, посещающие курсы, отсортированные по алфавиту, а ниже выводятся слушатели курсов не являющиеся сотрудниками, тоже отсортированные по алфавиту
Управление данными | Просмотров: 446 | Загрузок: 38 | Добавил: a1 | Дата: 05.12.2011 | 19:33 | Комментарии (0)

1. Загрузите данные из source2.sql в базу. Используя рекурсию в Oracle SQL, напишите запрос, который выводит из таблицы servises информацию в следующем виде:
Записи должны быть отсортированы по алфавиту с учетом иерархии. Символом "*" отмечаются те элементы дерева, у которых есть дочерние элементы.
Управление данными | Просмотров: 445 | Загрузок: 34 | Добавил: a1 | Дата: 05.12.2011 | 19:33 | Комментарии (0)

Counter-Strike IFMO version

Меню сайта

Форма входа

Поиск

Мини-чат

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0