Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_laba_3_OBD.doc
Скачиваний:
15
Добавлен:
11.02.2015
Размер:
205.31 Кб
Скачать

Задание 1.16. Проверить или создать ограничения целостности, чтобы гарантировать, что каждый сотрудник в таблице emp значится в одном из отделов, перечисленных в таблице dept.

SQL> update emp set deptno=11 where empno=7782;

update emp set deptno=11 where empno=7782

*

ERROR at line 1:

ORA-02291: integrity constraint (SYSTEM.FK_DEPTNO) violated - parent key not found

SQL> select constraint_name, constraint_type, status from user_constraints where table_name='EMP';

CONSTRAINT_NAME C STATUS

------------------------------ - --------

PK_EMP P ENABLED

FK_DEPTNO R ENABLED

Задание 1.17. Определить и дать объяснение ограничения целостности в команде create table:

CREATE TABLE dept ( deptno NUMBER (3) PRIMARY KEY, dname VARCHAR2 (15), loc VARCHAR2 (15) CONSTRAINT dname_ukey UNIQUE (dname, loc), CONSTRAINT loc_check1 CHECK (loc IN ('NEW YORK "," BOSTON', 'CHICAGO'))); CREATE TABLE emp ( empno NUMBER (5) PRIMARY KEY, ename VARCHAR2 (15) NOT NULL, job VARCHAR2 (10), mgr NUMBER (5) CONSTRAINT mgr_fkey REFERENCES emp, hiredate DATE, sal NUMBER (7,2), comm NUMBER (5,2), deptno NUMBER (3) NOT NULL CONSTRAINT dept_fkey REFERENCES dept ON DELETE CASCADE); Сделать анализ определения ограничения целостности с помощью фразы CONSTRAINT команды ALTER TABLE: ALTER TABLE dept ADD PRIMARY KEY (deptno); ALTER TABLE emp ADD CONSTRAINT dept_fkey FOREIGN KEY (deptno) REFERENCES dept MODIFY (ename VARCHAR2 (15) NOT NULL); Испытать включение и выключение ограничений целостности при их определении: в предложении CREATE TABLE или ALTER TABLE, а также с помощью опции ENABLE или опции DISABLE; определении ограничений целостности UNIQUE, PRIMARY KEY и FOREIGN KEY.

SQL> alter table emp disable constraint fk_deptno;

Table altered.

SQL> select constraint_name, constraint_type, status from user_constraints where table_name='EMP';

CONSTRAINT_NAME C STATUS

------------------------------ - --------

PK_EMP P ENABLED

FK_DEPTNO R DISABLED

Задание 2.1. Получить на экране структуру таблицы "DEPT".

SQL> desc dept;

Name Null? Type

----------------------------------------------------- -------- ------------

DEPTNO NOT NULL NUMBER(2)

DNAME VARCHAR2(14)

LOC VARCHAR2(13)

Задание 2.2. Составить команду SQL для выборки всей информации из таблицы "DEPT",

SQL> select * from dept;

DEPTNO DNAME LOC

---------- -------------- -------------

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

Задание 2.3. Составить команду SQL для нахождения всех сотрудников с зарплатой в диапазоне от 1000 до 2000.

SQL> select * from emp where sal between 1000 and 2000;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ---------- --------- ---------- -------- ---------- ----------

7499 ALLEN SALESMAN 7698 20.02.81 1600 300 30

7521 WARD SALESMAN 7698 22.02.81 1250 500 30

7654 MARTIN SALESMAN 7698 28.09.81 1250 1400 30

7844 TURNER SALESMAN 7698 08.09.81 1500 0 30

7934 MILLER CLERK 7782 23.01.82 1300 10

Задание 2.4. Составить команду SQL для вывода номеров отделов таблицы "DEPT" и их наименования по алфавиту.

SQL> select deptno, dname from dept order by dname;

DEPTNO DNAME

---------- --------------

10 ACCOUNTING

40 OPERATIONS

20 RESEARCH

30 SALES

Задание 2.5. Составить команду SQL для отображения всех категорий должностей таблицы "EMP" в отсортированном виде.

SQL> select distinct job from emp order by job;

JOB

---------

ANALYST

CLERK

MANAGER

PRESIDENT

SALESMAN

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]