- /*
- Below are examples of creating tables with SQL in and Oracle database and
- these include some examples of various ways to define columns and to set
- CONSTRAINTs for the tables in this relational database.
- This simple database consists of a dept and emp tables. This database is used by an instructor
- in a systems analysis and design class to keep track of dept and emp data.
- Each dept has a dname, a deptno and a loc.
- Each emp is managed by a dept, initially, and an emp may not be managed by a dept .
- Each dept may manage one or many emps.
- */
- /*
- This CREATE TABLE statement defines 3 columns in a dept table and defines the PRIMARY KEY field for this table.
- Even though the dname is not the primary key field, a unique CONSTRAINT has been assigned to this field.
- */
- DROP TABLE emp;
- DROP TABLE dept;
- DROP TABLE salgrade;
- CREATE TABLE salgrade
- (
- grade NUMBER NOT NULL,
- losal NUMBER NOT NULL,
- hisal NUMBER NOT NULL
- );
- CREATE TABLE dept
- ( deptno VARCHAR(2) NOT NULL,
- dname VARCHAR(30) NOT NULL,
- loc VARCHAR(30),
- CONSTRAINT pk_dept PRIMARY KEY (deptno),
- CONSTRAINT uniq_dname UNIQUE (dname)
- );
- /*
- The following SQL code illustrates how to designate a FOREIGN KEY CONSTRAINT
- that states which field is related to a PRIMARY KEY field in another table.
- An entry in the deptno field must match a value in the related primary key
- field in the dept table.
- */
- CREATE TABLE emp
- ( empno VARCHAR(4) NOT NULL,
- ename VARCHAR(15) NOT NULL,
- job VARCHAR(15) NOT NULL,
- mgr VARCHAR(4),
- hiredate DATE NOT NULL,
- sal NUMBER NOT NULL,
- comm NUMBER,
- deptno VARCHAR(2),
- CONSTRAINT pk_empno PRIMARY KEY(empno),
- CONSTRAINT fk_deptno FOREIGN KEY(deptno) REFERENCES dept(deptno),
- CONSTRAINT fk_mgr FOREIGN KEY(mgr) REFERENCES emp(empno));
- INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
- INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
- INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
- INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
- INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'17-NOV-81',5000,NULL,10);
- INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'1-MAY-81',2850,NULL,30);
- INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'9-JUN-81',2450,NULL,10);
- INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'2-APR-81',2975,NULL,20);
- INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'28-SEP-81',1250,1400,30);
- INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'20-FEB-81',1600,300,30);
- INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'8-SEP-81',1500,0,30);
- INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'3-DEC-81',950,NULL,30);
- INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'22-FEB-81',1250,500,30);
- INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'3-DEC-81',3000,NULL,20);
- INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'17-DEC-80',800,NULL,20);
- INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'09-DEC-82',3000,NULL,20);
- INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'12-JAN-83',1100,NULL,20);
- INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'23-JAN-82',1300,NULL,10);
- INSERT INTO SALGRADE VALUES (1,700,1200);
- INSERT INTO SALGRADE VALUES (2,1201,1400);
- INSERT INTO SALGRADE VALUES (3,1401,2000);
- INSERT INTO SALGRADE VALUES (4,2001,3000);
- INSERT INTO SALGRADE VALUES (5,3001,9999);
- COMMIT;
- SET LINESIZE 150
- SET PAGESIZE 80