DDL Lab Exercise
DDL Lab Exercise
OBJECTIVES:
Syntax:
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr] [, …]);
Constraints
The Oracle server uses constraints to prevent invalid data entry into tables.
Constraint Description
NOT NULL Specifies that the column cannot contain a null value
Syntax:
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr]
[column_constraint],
…
[table_constraint] [, …]);
Syntax:
column [CONSTRAINT constraint_name] constraint_type,
Syntax:
column, …
[CONSTRAINT constraint_name] constraint_type
(column, …),
Syntax:
CREATE TABLE table
[(column, column…)]
AS subquery;
Read-Only Tables
You can use the ALTER TABLE syntax to:
Put a table into read-only mode, which prevents DDL or DML changes during table
maintenance
Put the table back into read/write mode
Syntax:
ALTER TABLE table READ ONLY;
ALTER TABLE table READ WRITE;
Dropping a Table
Moves a table to the recycle bin
Removes the table and all its data entirely if the PURGE clause is specified
Syntax:
DROP TABLE table [PURGE];
Inserting Data into the Table
Syntax:
INSERT INTO table [(column [, column…])]
VALUES (value [, value…]);
Syntax:
INSERT INTO table [(column [, column…])]
subquery;
Syntax:
ALTER TABLE table
ADD (column datatype [DEFAULT expr]
[, column datatype]…);
Adding a Constraint
Syntax:
ALTER TABLE table
ADD (CONSTRAINT constraint_name] type column_name;
Dropping a Constraint
Syntax:
ALTER TABLE table
DROP PRIMARY KEY | UNIQUE (column) |
CONSTRAINT constraint [CASCADE];
Syntax:
FLASHBACK TABLE [schema.]table [, [schema.]table]…
TO {TIMESTAMP | SCN} expr;
III. EXPERIMENTAL PROCEDURE:
Overview
In this exercise, you are to create new tables by using the CREATE TABLE statement,
ALTER TABLE command to modify columns and add constraints, and confirm that the new
table was added to the database. You will also set the status of a table as READ ONLY and
then revert to READ/WRITE.
Note: You will use the DEPARTMENTS and EMPLOYEES table in the HR schema.
Use a qualifier to query data from the table in the HR schema.
Task
Write the equivalent SQL statements for the steps that follow.
Step 1: Create the DEPT table based on the following table instance chart. Enter the
syntax in the SQL Worksheet. Then, execute the statement to create the table.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
_______________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Step 3: Populate the DEPT table with data from the DEPARTMENTS table. Include only
columns that you need.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
_______________________________________________________________________
Step 4: Create the EMP2 table based on the following table instance chart. Enter the
syntax in the SQL Worksheet. Then, execute the statement to create the table.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Step 6: Modify the EMP2 table to allow for longer employee last names.
________________________________________________________________________
________________________________________________________________________
Step 7: Confirm your modification. Sample output is as follows.
________________________________________________________________________
________________________________________________________________________
Step 8: Create the EMPLOYEES2 table based on the structure of the EMPLOYEES
table. Include only the EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, and
DEPARTMENT_ID columns. Name the columns in your new table ID, FIRST_NAME,
LAST_NAME, SALARY, and DEPT_ID, respectively.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Step 10: Try to insert the following row in the EMPLOYEES2 table:
Step 11: Revert the EMPLOYEES2 table to the read/write status. Now, try to insert the
same row again. You should get the following messages:
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Step 13: Query the recycle bin to see whether the table is present. Sample output is as
follows.
________________________________________________________________________
________________________________________________________________________
Step 14: Restore the EMP2 table to a state before the DROP statement.
________________________________________________________________________
________________________________________________________________________
Step 15: Drop the first name column from the EMPLOYEES2 table.
________________________________________________________________________
________________________________________________________________________
Step 14: Confirm your modification by checking the description of the table. Sample
output is as follows.
________________________________________________________________________
________________________________________________________________________
Step 15: Add a table-level PRIMARY KEY constraint to the EMP table on the ID
column. The constraint should be named at creation. Name the constraint my_emp_id_pk
________________________________________________________________________
________________________________________________________________________
Step 16: Create a PRIMARY KEY constraint to the DEPT table using the ID column.
The constraint should be named at creation. Name the constraint my_dept_id_pk.
________________________________________________________________________
________________________________________________________________________
Step 17: Add a foreign key reference on the EMP2 table that ensures that the employee is
not assigned to a nonexistent department. Name the constraint my_emp_dept_id_fk.
________________________________________________________________________
________________________________________________________________________
Step 18: Modify the EMP2 table. Add a COMMISSION column of the NUMBER data
type, precision 2, scale 2. Add a constraint to the COMMISSION column that ensures
that a commission value is greater than zero.
________________________________________________________________________
________________________________________________________________________
Step 19: Drop the EMP2 and DEPT tables so that they cannot be restored.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
1. Explain why you encountered an error message in Step 10 after you inserted a row into
the EMPLOYEES2 table.
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
2. What is the purpose of modifying the status of your table to READ ONLY or
READ/WRITE mode?
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________