Les 05

  • Uploaded by: Makokhan
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Les 05 as PDF for free.

More details

  • Words: 1,857
  • Pages: 54
5

Creating and Managing Tables

Copyright © 2004, Oracle. All rights reserved.

Objectives After completing this lesson you should be able to do the following: • Create and maintain tables by using the CREATE, ALTER, DROP, RENAME, and TRUNCATE statements • Use the data dictionary to view and maintain information about tables • Create and maintain integrity constraints • Discuss constraint states

5-2

Copyright © 2004, Oracle. All rights reserved.

Displaying Table Structure

Use the DESCRIBE command to display the structure of a table: DESC[RIBE] tablename

5-3

Copyright © 2004, Oracle. All rights reserved.

Displaying Table Structure

DESCRIBE employees

5-4

Copyright © 2004, Oracle. All rights reserved.

Referencing Another User’s Tables •





5-5

To refer to tables in schemas other than your own, prefix the table name with the schema name: schema.table For example, the DESC TABLE hr.employees statement displays the structure of the EMPLOYEES table in the HR schema. Constraints must reference tables in the same schema.

Copyright © 2004, Oracle. All rights reserved.

The CREATE TABLE Statement •

Syntax:

CREATE [GLOBAL TEMPORARY] TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint], ... [table_constraint]);



Example:

CREATE TABLE dept (deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13) DEFAULT 'CA'); Table created.



To confirm table creation:

DESCRIBE dept 5-6

Copyright © 2004, Oracle. All rights reserved.

5-7

Copyright © 2004, Oracle. All rights reserved.

5-8

Copyright © 2004, Oracle. All rights reserved.

Creating a Table Using a Subquery Syntax: CREATE TABLE table [column(, column...)] AS subquery; CREATE TABLE dept30 AS SELECT * FROM dept WHERE deptno = 30; Table created. DESCRIBE dept30

5-9

Copyright © 2004, Oracle. All rights reserved.

5-10

Copyright © 2004, Oracle. All rights reserved.

Altering Table Structure

Use the ALTER TABLE statement to: • Add, modify, or remove columns • Add or remove constraints • Enable or disable constraints • Define a default value for a new column ALTER TABLE table ADD (column datatype [DEFAULT expr] [NOT NULL] [, column datatype]...); ALTER TABLE table MODIFY (column datatype [DEFAULT expr] [NOT NULL] [, column datatype]...);

5-11

Copyright © 2004, Oracle. All rights reserved.

Adding a Column • •

Add a column to an existing table by using the ALTER TABLE statement with the ADD clause. For example, to add a column named JOB to the DEPT30 table:

ALTER TABLE dept30 ADD (job VARCHAR2(9)); Table altered.



5-12

The JOB column becomes the last column in the table.

Copyright © 2004, Oracle. All rights reserved.

Modifying and Dropping Columns Modify a column definition by using the ALTER TABLE statement with the MODIFY clause. • You can change a column’s data type, size, default value, and NOT NULL column constraint. • A change to the default value affects only subsequent insertions to the table. ALTER TABLE dept30 MODIFY (job VARCHAR2(50)); Table altered.



You use the DROP COLUMN clause to free space in the database by dropping columns you no longer need.

ALTER TABLE dept30 DROP COLUMN job ; Table altered. 5-13

Copyright © 2004, Oracle. All rights reserved.

5-14

Copyright © 2004, Oracle. All rights reserved.

Marking a Column as Unused

• •

You use the SET UNUSED option to mark one or more columns as unused. You then use the DROP UNUSED COLUMNS option to remove the columns that are marked as unused.

ALTER TABLE table SET UNUSED (column); OR ALTER TABLE table SET UNUSED COLUMN column; ALTER TABLE table DROP UNUSED COLUMNS;

5-15

Copyright © 2004, Oracle. All rights reserved.

5-16

Copyright © 2004, Oracle. All rights reserved.

Guaranteeing Data Integrity

Data

Database trigger

Integrity constraint

Application code

Table

5-17

Copyright © 2004, Oracle. All rights reserved.

5-18

Copyright © 2004, Oracle. All rights reserved.

Understanding Constraints

5-19

Constraint

Description

NOT NULL

Specifies that a column cannot contain null values

UNIQUE

Designates a column or combination of columns as unique

PRIMARY KEY

Designates a column or combination of columns as the table’s primary key

FOREIGN KEY

Designates a column or combination of columns as the foreign key in a referential integrity constraint

CHECK

Specifies a condition that each row of the table must satisfy

Copyright © 2004, Oracle. All rights reserved.

Defining Constraints

CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint], ... [table_constraint]);

Column-level constraint: column [CONSTRAINT constraint_name] constraint_type,

Table-level constraint: column,... [CONSTRAINT constraint_name] constraint_type (column, ...),

5-20

Copyright © 2004, Oracle. All rights reserved.

5-21

Copyright © 2004, Oracle. All rights reserved.

5-22

Copyright © 2004, Oracle. All rights reserved.

Guidelines for Defining Constraints •

Primary and unique constraints: – Place indexes in a separate tablespace – Use nonunique indexes if bulk loads are frequent



Self-referencing foreign keys: – Define or enable foreign keys after initial loading – Defer constraint checking

5-23

Copyright © 2004, Oracle. All rights reserved.

5-24

Copyright © 2004, Oracle. All rights reserved.

Adding a Constraint Add constraints to a table or column by using the ALTER TABLE statement with the ADD clause: Syntax: ALTER TABLE table ADD [CONSTRAINT constraint] type (column);

Example: Add a FOREIGN KEY constraint to the EMP table, indicating that a manager must already exist as a valid employee in the EMP table. ALTER TABLE ADD CONSTRAINT FOREIGN KEY(mgr) Table altered. 5-25

emp emp_mgr_fk REFERENCES emp(empno);

Copyright © 2004, Oracle. All rights reserved.

Disabling and Enabling Constraints



Execute the DISABLE clause of the ALTER TABLE statement to deactivate an integrity constraint.

ALTER TABLE emp DISABLE CONSTRAINT emp_empno_pk CASCADE; Table altered.



Activate an integrity constraint currently disabled in the table definition by using the ENABLE clause.

ALTER TABLE emp ENABLE CONSTRAINT emp_empno_pk; Table altered.

5-26

Copyright © 2004, Oracle. All rights reserved.

5-27

Copyright © 2004, Oracle. All rights reserved.

5-28

Copyright © 2004, Oracle. All rights reserved.

Deferring Constraint Checking

DML statement Check nondeferred constraints

COMMIT

5-29

Copyright © 2004, Oracle. All rights reserved.

Check deferred constraints

Changing the Enforcement of Constraints

• •

5-30

Use the SET CONSTRAINTS statement to make constraints either deferred or immediate. The ALTER SESSION statement also has clauses to define constraints as deferred or immediate.

Copyright © 2004, Oracle. All rights reserved.

Enforcing Primary and Unique Key Constraints

Key enabled?

Yes

Is an index available for use?

Yes

Constraint deferrable?

No Constraint deferrable?

No Do not use index

5-31

Is the index nonunique?

No Yes

Use existing index

No Create unique index

Yes

Create nonunique index

Copyright © 2004, Oracle. All rights reserved.

Yes

Maintaining Tables in a Foreign Key Relationship Consider the following factors in maintaining tables that are in a foreign key relationship:

5-32

Desired Action

Appropriate Solution

Drop parent table

Cascade constraints

Truncate parent table

Disable or drop foreign key

Drop tablespace containing parent table

Use the CASCADE CONSTRAINTS clause

Run DML operations on child table

Ensure the tablespace containing the parent key is online

Copyright © 2004, Oracle. All rights reserved.

5-33

Copyright © 2004, Oracle. All rights reserved.

Dropping a Constraint •

Remove the manager constraint from the EMP table.

ALTER TABLE emp DROP CONSTRAINT emp_mgr_fk; Table altered.



Remove the PRIMARY KEY constraint from the DEPT table and drop the associated FOREIGN KEY constraint into the EMP.DEPTNO column.

ALTER TABLE dept DROP PRIMARY KEY CASCADE; Table altered.

5-34

Copyright © 2004, Oracle. All rights reserved.

Cascading Constraints •



5-35

You use the CASCADE CONSTRAINTS option to drop all referential integrity constraints that refer to the primary and unique keys on the dropped columns. CASCADE CONSTRAINTS is an option in the ALTER TABLE DROP statement.

Copyright © 2004, Oracle. All rights reserved.

5-36

Copyright © 2004, Oracle. All rights reserved.

Renaming a Table

• •

To change the name of a table, execute the RENAME statement. You must be the owner of the object.

RENAME dept TO department; Table renamed.

5-37

Copyright © 2004, Oracle. All rights reserved.

Truncating a Table



The TRUNCATE TABLE statement: – Removes all rows from a table – Releases the storage space used by that table

TRUNCATE TABLE department; Table truncated.

• •

5-38

You cannot roll back row removal when using TRUNCATE. Alternatively, you can remove rows by using the DELETE statement.

Copyright © 2004, Oracle. All rights reserved.

Dropping a Table

The DROP TABLE PURGE statement: • Deletes all data and the table structure • Commits any pending transactions • Drops all indexes DROP TABLE dept30 PURGE; Table dropped.

You cannot roll back this statement.

5-39

Copyright © 2004, Oracle. All rights reserved.

Adding Comments to a Table •

You can add comments to a table or column by using the COMMENT statement.

COMMENT ON TABLE emp IS 'Employee Information'; Comment created.



Comments can be viewed through the following data dictionary views: – – – –

5-40

ALL_COL_COMMENTS USER_COL_COMMENTS ALL_TAB_COMMENTS USER_TAB_COMMENTS

Copyright © 2004, Oracle. All rights reserved.

Understanding the Types of Tables in the Oracle Database •

User tables: – Are created and maintained by the user – Contain user information



Data dictionaries: – Are created and maintained by the Oracle server – Contain database information

5-41

Copyright © 2004, Oracle. All rights reserved.

5-42

Copyright © 2004, Oracle. All rights reserved.

Querying the Data Dictionary •

Describe tables owned by the user.

SELECT * FROM user_tables;



View distinct object types owned by the user.

SELECT DISTINCT object_type FROM user_objects;



View tables, views, synonyms, and sequences owned by the user.

SELECT * FROM user_catalog;

5-43

Copyright © 2004, Oracle. All rights reserved.

Viewing Constraints



Query the USER_CONSTRAINTS table to view all constraint definitions and names.

SELECT FROM WHERE



View the columns associated with the constraint names in the USER_CONS_COLUMNS view.

SELECT FROM WHERE

5-44

constraint_name, constraint_type, search_condition user_constraints table_name = 'EMP';

constraint_name, column_name user_cons_columns table_name = 'EMP';

Copyright © 2004, Oracle. All rights reserved.

Summary In this lesson, you should have learned how to do the following: • Create and maintain tables with these statements:

5-45

Statement

Description

CREATE TABLE

Creates a table

ALTER TABLE

Modifies table structures

DROP TABLE

Removes the rows and table structures

RENAME

Changes the name of a table, view, sequence, or synonym

TRUNCATE

Removes all rows from a table and releases the storage space

COMMENT

Adds comments to a table or view Copyright © 2004, Oracle. All rights reserved.

Summary •

Create the following types of constraints: – – – – –



5-46

NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK

Use data dictionary views to retrieve table, column, and constraint information.

Copyright © 2004, Oracle. All rights reserved.

5-47

Copyright © 2004, Oracle. All rights reserved.

5-48

Copyright © 2004, Oracle. All rights reserved.

5-49

Copyright © 2004, Oracle. All rights reserved.

Practice 5: Overview This practice covers the following topics: • Creating a new table: – Containing constraints – Using the CREATE TABLE AS syntax



Altering existing tables by: – Adding a column – Adding a column constraint – Modifying an existing column definition

• • •

5-50

Dropping a table Adding comments to a table Verifying that tables exist and displaying information in the data dictionary Copyright © 2004, Oracle. All rights reserved.

5-51

Copyright © 2004, Oracle. All rights reserved.

5-52

Copyright © 2004, Oracle. All rights reserved.

5-53

Copyright © 2004, Oracle. All rights reserved.

5-54

Copyright © 2004, Oracle. All rights reserved.

Related Documents

Les 05
November 2019 9
Les 05
May 2020 5
Les 05
May 2020 7
Les 05
November 2019 7
Les 05
May 2020 15
Les 05
October 2019 7

More Documents from ""

Les 05
May 2020 15
Les 07
May 2020 12
Less05 Storage Tb3
May 2020 16
Les 09
May 2020 13
Les 02
May 2020 1