Professional Documents
Culture Documents
DEPTNO
--------10
20
30
40
10
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
SW
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
HYD
ENAME
JOB
MGR HIREDATE
SAL
COMM
CLERK
7902 17-DEC-80
800
ALLEN
SALESMAN
7698 20-FEB-81
1600
300
WARD
SALESMAN
7698 22-FEB-81
1250
500
JONES
MANAGER
7839 02-APR-81
2975
MARTIN
SALESMAN
7698 28-SEP-81
1250
BLAKE
MANAGER
7839 01-MAY-81
2850
CLARK
MANAGER
7839 09-JUN-81
2450
SCOTT
ANALYST
7566 09-DEC-82
3000
KING
PRESIDENT
17-NOV-81
5000
TURNER
SALESMAN
7698 08-SEP-81
1500
ADAMS
CLERK
7788 12-JAN-83
1100
JAMES
CLERK
7698 03-DEC-81
950
FORD
ANALYST
7566 03-DEC-81
3000
MILLER
CLERK
7782 23-JAN-82
1300
14 rows selected.
SQL> insert into emp(empno,ename,job,sal,mgr,deptno) values(
2
SQL> ed
Wrote file afiedt.buf
1 insert into emp(empno,ename,job,sal,mgr,deptno)
2* values(7001,'EFCODD','MANAGER',4000,7999,60)
3 /
1 row created.
SQL> ed
Wrote file afiedt.buf
1400
Table altered.
SQL> ed
Wrote file afiedt.buf
1* alter table emp add constraint
2
SQL> ed
Wrote file afiedt.buf
ENAME
JOB
MGR HIREDATE
SAL
COMM
CLERK
7902 17-DEC-80
800
ALLEN
SALESMAN
7698 20-FEB-81
1600
300
WARD
SALESMAN
7698 22-FEB-81
1250
500
JONES
MANAGER
7839 02-APR-81
2975
MARTIN
SALESMAN
7698 28-SEP-81
1250
1400
30
10
20
10
30
20
30
20
10
60
7698 BLAKE
MANAGER
7839 01-MAY-81
2850
7782 CLARK
MANAGER
7839 09-JUN-81
2450
7788 SCOTT
ANALYST
7566 09-DEC-82
3000
7839 KING
PRESIDENT
17-NOV-81
5000
7844 TURNER
SALESMAN
7698 08-SEP-81
1500
7876 ADAMS
CLERK
7788 12-JAN-83
1100
7900 JAMES
CLERK
7698 03-DEC-81
950
7902 FORD
ANALYST
7566 03-DEC-81
3000
7934 MILLER
CLERK
7782 23-JAN-82
1300
7001 EFCODD
MANAGER
7999
4000
15 rows selected.
SQL>
SQL> select mgr from emp
2
SQL>
SQL> ed
Wrote file afiedt.buf
1 select mgr from emp
2* where mgr not in(select empno from emp)
SQL> /
MGR
--------7999
SQL> ed
Wrote file afiedt.buf
1 select mgr from emp
2* where mgr not in(select empno from emp)
3 /
MGR
--------7999
SQL> ed
Wrote file afiedt.buf
1
2*
3
SQL>
SQL>
2
1 row updated.
ENAME
JOB
MGR HIREDATE
SAL
COMM
CLERK
7902 17-DEC-80
800
ALLEN
SALESMAN
7698 20-FEB-81
1600
300
WARD
SALESMAN
7698 22-FEB-81
1250
500
JONES
MANAGER
7839 02-APR-81
2975
MARTIN
SALESMAN
7698 28-SEP-81
1250
BLAKE
MANAGER
7839 01-MAY-81
2850
CLARK
MANAGER
7839 09-JUN-81
2450
SCOTT
ANALYST
7566 09-DEC-82
3000
KING
PRESIDENT
17-NOV-81
5000
TURNER
SALESMAN
7698 08-SEP-81
1500
ADAMS
CLERK
7788 12-JAN-83
1100
JAMES
CLERK
7698 03-DEC-81
950
FORD
ANALYST
7566 03-DEC-81
3000
MILLER
CLERK
7782 23-JAN-82
1300
EFCODD
MANAGER
7902
4000
1400
15 rows selected.
SQL> ALTER TABLE Emp ADD Constraint Emp_Mgr_FK
Emp(empno)
2 /
Table altered.
SQL> ed
Wrote file afiedt.buf
1 ALTER TABLE Emp ADD Constraint Emp_Mgr_FK
2* FOREIGN KEY(Mgr) REFERENCES Emp(empno)
3
SQL> /
FOREIGN KEY(Mgr) REFERENCES Emp(empno)
*
ERROR at line 2:
ORA-02275: such a referential constraint already exists in the table
SQL> select *from emp;
EMPNO
DEPTNO
----------------7369
20
7499
30
7521
30
7566
20
7654
30
7698
30
7782
10
7788
20
7839
10
7844
30
7876
20
7900
30
7902
20
7934
10
7001
60
ENAME
JOB
MGR HIREDATE
SAL
COMM
CLERK
7902 17-DEC-80
800
ALLEN
SALESMAN
7698 20-FEB-81
1600
300
WARD
SALESMAN
7698 22-FEB-81
1250
500
JONES
MANAGER
7839 02-APR-81
2975
MARTIN
SALESMAN
7698 28-SEP-81
1250
BLAKE
MANAGER
7839 01-MAY-81
2850
CLARK
MANAGER
7839 09-JUN-81
2450
SCOTT
ANALYST
7566 09-DEC-82
3000
KING
PRESIDENT
17-NOV-81
5000
TURNER
SALESMAN
7698 08-SEP-81
1500
ADAMS
CLERK
7788 12-JAN-83
1100
JAMES
CLERK
7698 03-DEC-81
950
FORD
ANALYST
7566 03-DEC-81
3000
MILLER
CLERK
7782 23-JAN-82
1300
EFCODD
MANAGER
7902
4000
1400
15 rows selected.
SQL> update emp set mgr=7001
2 where
3
SQL> ed
Wrote file afiedt.buf
1 update emp set mgr=7999
2* where empno=7001
SQL> /
update emp set mgr=7999
*
ERROR at line 1:
ORA-02291: integrity constraint (BAAHU.EMP_MGR_FK) violated - parent key
not found
SQL> clear screen
SQL> select *from emp;
EMPNO ENAME
JOB
MGR HIREDATE
SAL
COMM
DEPTNO
--------- ---------- --------- --------- --------- --------- -----------------
20
30
30
20
30
30
10
20
10
30
20
30
20
10
60
7369 SMITH
CLERK
7902 17-DEC-80
800
7499 ALLEN
SALESMAN
7698 20-FEB-81
1600
300
7521 WARD
SALESMAN
7698 22-FEB-81
1250
500
7566 JONES
MANAGER
7839 02-APR-81
2975
7654 MARTIN
SALESMAN
7698 28-SEP-81
1250
7698 BLAKE
MANAGER
7839 01-MAY-81
2850
7782 CLARK
MANAGER
7839 09-JUN-81
2450
7788 SCOTT
ANALYST
7566 09-DEC-82
3000
7839 KING
PRESIDENT
17-NOV-81
5000
7844 TURNER
SALESMAN
7698 08-SEP-81
1500
7876 ADAMS
CLERK
7788 12-JAN-83
1100
7900 JAMES
CLERK
7698 03-DEC-81
950
7902 FORD
ANALYST
7566 03-DEC-81
3000
7934 MILLER
CLERK
7782 23-JAN-82
1300
7001 EFCODD
MANAGER
7902
4000
15 rows selected.
SQL> alter table
2
SQL>
SQL> ed
Wrote file afiedt.buf
1* alter table emp
2 /
modify
Table altered.
SQL> ed
Wrote file afiedt.buf
1 ALTER TABLE Emp ADD CONSTRAINT Dept_Dno_FK
2 FOREIGN KEY(Deptno)
3* REFERENCES Dept MODIFY(Deptno NOT NULL)
SQL> /
REFERENCES Dept MODIFY(Deptno NOT NULL)
*
ERROR at line 3:
ORA-02268: referenced table does not have a primary key
SQL> select *from dept;
DEPTNO DNAME
LOC
--------- -------------- -------------
1400
10
20
30
40
10
ACCOUNTING
RESEARCH
SALES
OPERATIONS
SW
NEW YORK
DALLAS
CHICAGO
BOSTON
HYD
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
SQL> commit;
Commit complete.
SQL> alter table dept
2
SQL> ed
Wrote file afiedt.buf
1* alter table dept
2 /
Table altered.
SQL> ALTER TABLE Emp ADD CONSTRAINT Dept_Dno_FK
2 FOREIGN KEY(Deptno)
3 REFERENCES Dept MODIFY(Deptno NOT NULL)
4 /
ALTER TABLE Emp ADD CONSTRAINT Dept_Dno_FK
*
ERROR at line 1:
ORA-02298: cannot validate (BAAHU.DEPT_DNO_FK) - parent keys not found
SQL> select
2
SQL>
SQL> ed
Wrote file afiedt.buf
1 select deptno from emp
2* where deptno not in(select deptno from dept)
3 /
DEPTNO
--------60
SQL> ed
Wrote file afiedt.buf
1 select deptno from emp
2* where deptno not in(select deptno from dept)
3
SQL>
SQL> update dept set deptno
2
SQL> ed
Wrote file afiedt.buf
1 update emp set deptno=40
2* where deptno=60
3 /
1 row updated.
SQL> ed
Wrote file afiedt.buf
1
2*
3
SQL>
2
Table altered.
SQL>
SQL> ed
Wrote file afiedt.buf
1 ALTER TABLE Emp ADD CONSTRAINT Dept_Dno_FK FOREIGN KEY(Deptno)
2* REFERENCES Dept MODIFY(Deptno NOT NULL)
SQL> select *from emp;
EMPNO
DEPTNO
----------------7369
20
7499
30
7521
30
7566
20
7654
30
7698
30
7782
10
7788
20
ENAME
JOB
MGR HIREDATE
SAL
COMM
CLERK
7902 17-DEC-80
800
ALLEN
SALESMAN
7698 20-FEB-81
1600
300
WARD
SALESMAN
7698 22-FEB-81
1250
500
JONES
MANAGER
7839 02-APR-81
2975
MARTIN
SALESMAN
7698 28-SEP-81
1250
BLAKE
MANAGER
7839 01-MAY-81
2850
CLARK
MANAGER
7839 09-JUN-81
2450
SCOTT
ANALYST
7566 09-DEC-82
3000
1400
10
30
20
30
20
10
40
7839 KING
PRESIDENT
17-NOV-81
5000
7844 TURNER
SALESMAN
7698 08-SEP-81
1500
7876 ADAMS
CLERK
7788 12-JAN-83
1100
7900 JAMES
CLERK
7698 03-DEC-81
950
7902 FORD
ANALYST
7566 03-DEC-81
3000
7934 MILLER
CLERK
7782 23-JAN-82
1300
7001 EFCODD
MANAGER
7902
4000
15 rows selected.
SQL> update emp set deptno=null
2 where empno=7001;
update emp set deptno=null
*
ERROR at line 1:
ORA-01407: cannot update ("BAAHU"."EMP"."DEPTNO") to NULL
SQL> clear screen
SQL> select constraint_name,constraint_type,index_name
2 from user_constraints
3
SQL>
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>
select constraint_name,constraint_type,index_name
from user_constraints
where table_name='EMP'
/
CONSTRAINT_NAME
-----------------------------PK_ENO
EMP_MGR_FK
JOB_NN
SYS_C0011534
DEPT_DNO_FK
C INDEX_NAME
- -----------------------------P PK_ENO
R
C
C
R
SQL> ed
Wrote file afiedt.buf
1
2
3*
4
select constraint_name,constraint_type,index_name
from user_constraints
where table_name='DEPT'
/
CONSTRAINT_NAME
C INDEX_NAME
------------------------------ - -----------------------------PK_DNO
P PK_DNO
SQL>
SQL> alter table dept drop primary key;
alter table dept drop primary key
*
ERROR at line 1:
ORA-02273: this unique/primary key is referenced by some foreign keys
SQL> ed
Wrote file afiedt.buf
1* alter
2 /
table
Table altered.
SQL>
2
3
4
select constraint_name,constraint_type,index_name
from user_constraints
where table_name='DEPT'
/
no rows selected
SQL>
2
3
4
select constraint_name,constraint_type,index_name
from user_constraints
where table_name='EMP'
/
CONSTRAINT_NAME
-----------------------------PK_ENO
EMP_MGR_FK
JOB_NN
SYS_C0011534
C INDEX_NAME
- -----------------------------P PK_ENO
R
C
C
Table altered.
SQL> ed
Wrote file afiedt.buf
1* ALTER TABLE Emp ADD CONSTRAINT Dept_Dno_FK FOREIGN KEY(Deptno)
REFERENCES Dept(Deptno)
SQL> /
Table altered.
SQL> desc user_constraints
Name
------------------------------OWNER
CONSTRAINT_NAME
CONSTRAINT_TYPE
TABLE_NAME
SEARCH_CONDITION
Null?
Type
-------- ---VARCHAR2(30)
NOT NULL VARCHAR2(30)
VARCHAR2(1)
NOT NULL VARCHAR2(30)
LONG
R_OWNER
R_CONSTRAINT_NAME
DELETE_RULE
STATUS
DEFERRABLE
DEFERRED
VALIDATED
GENERATED
BAD
RELY
LAST_CHANGE
INDEX_OWNER
INDEX_NAME
INVALID
VIEW_RELATED
VARCHAR2(30)
VARCHAR2(30)
VARCHAR2(9)
VARCHAR2(8)
VARCHAR2(14)
VARCHAR2(9)
VARCHAR2(13)
VARCHAR2(14)
VARCHAR2(3)
VARCHAR2(4)
DATE
VARCHAR2(30)
VARCHAR2(30)
VARCHAR2(7)
VARCHAR2(14)
SQL> ed
Wrote file afiedt.buf
1 select constraint_name,constraint_type,index_name
2 from user_constraints
3* where table_name='EMP'
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>
select constraint_name,constraint_type,index_name,status
from user_constraints
where table_name='EMP'
/
CONSTRAINT_NAME
-----------------------------PK_ENO
EMP_MGR_FK
JOB_NN
SYS_C0011534
DEPT_DNO_FK
C INDEX_NAME
- -----------------------------P PK_ENO
R
C
C
R
STATUS
-------ENABLED
ENABLED
ENABLED
ENABLED
ENABLED
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>
select constraint_name,constraint_type,index_name,status
from user_constraints
where table_name='DEPT'
/
CONSTRAINT_NAME
C INDEX_NAME
STATUS
------------------------------ - ------------------------------ -------PK_DNO
P PK_DNO
ENABLED
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL> alter table dept DISABLE primary key;
alter table dept DISABLE primary key
*
ERROR at line 1:
ORA-02297: cannot disable constraint (BAAHU.PK_DNO) - dependencies exist
SQL> ed
Wrote file afiedt.buf
1* alter table dept DISABLE
SQL> /
Table altered.
SQL> select constraint_name,constraint_type,index_name,status
2
from user_constraints
3
where table_name='DEPT'
4
/
5
SQL> ed
Wrote file afiedt.buf
1
select constraint_name,constraint_type,index_name,status
2
from user_constraints
3* where table_name='DEPT'
4 /\
5
SQL> /
/\
*
ERROR at line 4:
ORA-00911: invalid character
SQL> ed
Wrote file afiedt.buf
1
select constraint_name,constraint_type,index_name,status
2
from user_constraints
3* where table_name='DEPT'
SQL> /
CONSTRAINT_NAME
C INDEX_NAME
STATUS
------------------------------ - ------------------------------ -------PK_DNO
P
DISABLED
SQL>
2
3
4
select constraint_name,constraint_type,index_name,status
from user_constraints
where table_name='EMP'
/
CONSTRAINT_NAME
-----------------------------PK_ENO
EMP_MGR_FK
C INDEX_NAME
- -----------------------------P PK_ENO
R
STATUS
-------ENABLED
ENABLED
JOB_NN
SYS_C0011534
DEPT_DNO_FK
C
C
R
ENABLED
ENABLED
DISABLED
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
30
30
20
30
30
10
20
10
30
20
30
20
10
40
7499 ALLEN
SALESMAN
7698 20-FEB-81
1600
300
7521 WARD
SALESMAN
7698 22-FEB-81
1250
500
7566 JONES
MANAGER
7839 02-APR-81
2975
7654 MARTIN
SALESMAN
7698 28-SEP-81
1250
7698 BLAKE
MANAGER
7839 01-MAY-81
2850
7782 CLARK
MANAGER
7839 09-JUN-81
2450
7788 SCOTT
ANALYST
7566 09-DEC-82
3000
7839 KING
PRESIDENT
17-NOV-81
5000
7844 TURNER
SALESMAN
7698 08-SEP-81
1500
7876 ADAMS
CLERK
7788 12-JAN-83
1100
7900 JAMES
CLERK
7698 03-DEC-81
950
7902 FORD
ANALYST
7566 03-DEC-81
3000
7934 MILLER
CLERK
7782 23-JAN-82
1300
7001 EFCODD
MANAGER
7902
4000
1400
15 rows selected.
SQL>
2
3
4
select constraint_name,constraint_type,index_name,status
from user_constraints
where table_name='EMP'
/
CONSTRAINT_NAME
-----------------------------PK_ENO
EMP_MGR_FK
JOB_NN
SYS_C0011534
DEPT_DNO_FK
C INDEX_NAME
- -----------------------------P PK_ENO
R
C
C
R
STATUS
-------ENABLED
ENABLED
ENABLED
ENABLED
DISABLED
enable constraint
DEPT_DNO_FK;
enable constraint
DEPT_DNO_FK
Table altered.
SQL> ed
Wrote file afiedt.buf
1* alter table emp
2 clear screen
3
SQL> clear screen
SQL>