Add Primary Key : Add Primary Key « Constraints « Oracle PL / SQL






Add Primary Key

  

SQL> CREATE TABLE Employee(Employee_ID NUMBER(4) NOT NULL,
  2                   Employee_Name VARCHAR2(10),
  3                   JOB VARCHAR2(9),
  4                   Manager_ID NUMBER(4),
  5                   Start_Date DATE,
  6                   Salary NUMBER(7, 2),
  7                   COMM NUMBER(7, 2),
  8                   Deparment_ID NUMBER(2)
  9  );

Table created.

SQL>
SQL> INSERT INTO Employee VALUES (7369, 'SMITH',  'CLERK',     7902, TO_DATE('17-DEC-1980', 'DD-MON-YYYY'),  800, NULL, 20);

1 row created.

SQL> INSERT INTO Employee VALUES (7499, 'ALLEN',  'SALESMAN',  7698, TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600,  300, 30);

1 row created.

SQL> INSERT INTO Employee VALUES (7521, 'WARD',   'SALESMAN',  7698, TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250,  500, 30);

1 row created.

SQL> INSERT INTO Employee VALUES (7566, 'JONES',  'MANAGER',   7839, TO_DATE('2-APR-1981', 'DD-MON-YYYY'),  2975, NULL, 20);

1 row created.

SQL> INSERT INTO Employee VALUES (7654, 'MARTIN', 'SALESMAN',  7698, TO_DATE('28-SEP-1981', 'DD-MON-YYYY'), 1250, 1400, 30);

1 row created.

SQL> INSERT INTO Employee VALUES (7698, 'BLAKE',  'MANAGER',   7839, TO_DATE('1-MAY-1981', 'DD-MON-YYYY'),  2850, NULL, 30);

1 row created.

SQL> INSERT INTO Employee VALUES (7782, 'CLARK',  'MANAGER',   7839, TO_DATE('9-JUN-1981', 'DD-MON-YYYY'),  2450, NULL, 10);

1 row created.

SQL> INSERT INTO Employee VALUES (7788, 'SCOTT',  'ANALYST',   7566, TO_DATE('09-DEC-1982', 'DD-MON-YYYY'), 3000, NULL, 20);

1 row created.

SQL> INSERT INTO Employee VALUES (7839, 'KING',   'PRESIDENT', NULL, TO_DATE('17-NOV-1981', 'DD-MON-YYYY'), 5000, NULL, 10);

1 row created.

SQL> INSERT INTO Employee VALUES (7844, 'TURNER', 'SALESMAN',  7698, TO_DATE('8-SEP-1981', 'DD-MON-YYYY'),  1500,    0, 30);

1 row created.

SQL> INSERT INTO Employee VALUES (7876, 'ADAMS',  'CLERK',     7788, TO_DATE('12-JAN-1983', 'DD-MON-YYYY'), 1100, NULL, 20);

1 row created.

SQL> INSERT INTO Employee VALUES (7900, 'JAMES',  'CLERK',     7698, TO_DATE('3-DEC-1981', 'DD-MON-YYYY'),   950, NULL, 30);

1 row created.

SQL> INSERT INTO Employee VALUES (7902, 'FORD',   'ANALYST',   7566, TO_DATE('3-DEC-1981', 'DD-MON-YYYY'),  3000, NULL, 20);

1 row created.

SQL> INSERT INTO Employee VALUES (7934, 'MILLER', 'CLERK',     7782, TO_DATE('23-JAN-1982', 'DD-MON-YYYY'), 1300, NULL, 10);

1 row created.

SQL>
SQL> CREATE TABLE Department(Deparment_ID NUMBER(2),
  2                          Department_Name VARCHAR2(14),
  3                          Location VARCHAR2(13)
  4  );

Table created.

SQL>
SQL> INSERT INTO Department VALUES (10, 'ACCOUNTING', 'NEW YORK');

1 row created.

SQL> INSERT INTO Department VALUES (20, 'RESEARCH',   'DALLAS');

1 row created.

SQL> INSERT INTO Department VALUES (30, 'SALES',      'CHICAGO');

1 row created.

SQL> INSERT INTO Department VALUES (40, 'OPERATIONS', 'BOSTON');

1 row created.

SQL>
SQL> alter table Employee add constraint Employee_pk primary key(Employee_ID);

Table altered.

SQL> alter table Department add constraint Department_pk primary key(Deparment_ID);

Table altered.

SQL> alter table Employee add constraint Employee_fk_Department foreign key(Deparment_ID) references Department;

Table altered.

SQL> alter table Employee add constraint Employee_fk_Employee foreign key(Manager_ID) references Employee;

Table altered.

SQL>
SQL> select * from Employee;

EMPLOYEE_ID EMPLOYEE_N JOB       MANAGER_ID START_DAT     SALARY       COMM DEPARMENT_ID
----------- ---------- --------- ---------- --------- ---------- ---------- ------------
       7369 SMITH      CLERK           7902 17-DEC-80        800                      20
       7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300           30
       7521 WARD       SALESMAN        7698 22-FEB-81       1250        500           30
       7566 JONES      MANAGER         7839 02-APR-81       2975                      20
       7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400           30
       7698 BLAKE      MANAGER         7839 01-MAY-81       2850                      30
       7782 CLARK      MANAGER         7839 09-JUN-81       2450                      10
       7788 SCOTT      ANALYST         7566 09-DEC-82       3000                      20
       7839 KING       PRESIDENT            17-NOV-81       5000                      10
       7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0           30
       7876 ADAMS      CLERK           7788 12-JAN-83       1100                      20

EMPLOYEE_ID EMPLOYEE_N JOB       MANAGER_ID START_DAT     SALARY       COMM DEPARMENT_ID
----------- ---------- --------- ---------- --------- ---------- ---------- ------------
       7900 JAMES      CLERK           7698 03-DEC-81        950                      30
       7902 FORD       ANALYST         7566 03-DEC-81       3000                      20
       7934 MILLER     CLERK           7782 23-JAN-82       1300                      10

14 rows selected.

SQL> select * from Department;

DEPARMENT_ID DEPARTMENT_NAM LOCATION
------------ -------------- -------------
          10 ACCOUNTING     NEW YORK
          20 RESEARCH       DALLAS
          30 SALES          CHICAGO
          40 OPERATIONS     BOSTON

SQL>
SQL>
SQL>
SQL> -- Using table aliases in joins
SQL>
SQL> SELECT e.Employee_ID, e.Start_Date,
  2         e.Employee_Name,d.Department_Name, d.Location
  3  FROM Employee e, Department d
  4  WHERE d.Deparment_ID = e.Deparment_ID;

EMPLOYEE_ID START_DAT EMPLOYEE_N DEPARTMENT_NAM LOCATION
----------- --------- ---------- -------------- -------------
       7369 17-DEC-80 SMITH      RESEARCH       DALLAS
       7499 20-FEB-81 ALLEN      SALES          CHICAGO
       7521 22-FEB-81 WARD       SALES          CHICAGO
       7566 02-APR-81 JONES      RESEARCH       DALLAS
       7654 28-SEP-81 MARTIN     SALES          CHICAGO
       7698 01-MAY-81 BLAKE      SALES          CHICAGO
       7782 09-JUN-81 CLARK      ACCOUNTING     NEW YORK
       7788 09-DEC-82 SCOTT      RESEARCH       DALLAS
       7839 17-NOV-81 KING       ACCOUNTING     NEW YORK
       7844 08-SEP-81 TURNER     SALES          CHICAGO
       7876 12-JAN-83 ADAMS      RESEARCH       DALLAS

EMPLOYEE_ID START_DAT EMPLOYEE_N DEPARTMENT_NAM LOCATION
----------- --------- ---------- -------------- -------------
       7900 03-DEC-81 JAMES      SALES          CHICAGO
       7902 03-DEC-81 FORD       RESEARCH       DALLAS
       7934 23-JAN-82 MILLER     ACCOUNTING     NEW YORK

14 rows selected.

SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL> drop table Department cascade constraints;

Table dropped.

SQL> drop table Employee cascade constraints;

Table dropped.

SQL>
SQL>

           
         
    
  








Related examples in the same category

1.Use alter table to add foreign key with cascade delete
2.Use alter table to add foreign key with cascade delete for more than one column
3.Alter a table to insert primary key and index
4.Add primary key and try to insert default value to it
5.DUP_VAL_ON_INDEX exception.
6.Alter table to add primary key
7.Alter table to primary key and check it in user_ind_columns and user_cons_columns
8.Joined primary key
9.Add primary key as the last statement
10.Setting primary key as declaring the column