1 of 38

Managing Tables

11

Copyright © Oracle Corporation, 2001. All rights reserved.

2 of 38

Objectives

After completing this lesson, you should be able to do the following:

    • Identify the various methods of storing data
    • Outline Oracle data types
    • Distinguish between an extended versus a restricted ROWID
    • Outline the structure of a row
    • Create regular and temporary tables
    • Manage storage structures within a table
    • Reorganize, truncate, drop a table
    • Drop a column within a table

11-2

Copyright © Oracle Corporation, 2001. All rights reserved.

3 of 38

Storing User Data

Regular table

Cluster

Partitioned�table

Index-organized�table

11-3

Copyright © Oracle Corporation, 2001. All rights reserved.

4 of 38

11-4

Copyright © Oracle Corporation, 2001. All rights reserved.

5 of 38

11-5

Copyright © Oracle Corporation, 2001. All rights reserved.

6 of 38

Oracle Built-in Data Types

CHAR(N), NCHAR(N)�VARCHAR2(N),�NVARCHAR2(N)

NUMBER(P,S)

DATE�TIMESTAMP

RAW(N)�BLOB, CLOB,

NCLOB, BFILE

LONG, LONG RAW

ROWID, UROWID

VARRAY��TABLE

REF

Data type

Built-in

User-defined

Scalar

Relationship

Collection

11-6

Copyright © Oracle Corporation, 2001. All rights reserved.

7 of 38

11-7

Copyright © Oracle Corporation, 2001. All rights reserved.

8 of 38

11-8

Copyright © Oracle Corporation, 2001. All rights reserved.

9 of 38

11-9

Copyright © Oracle Corporation, 2001. All rights reserved.

10 of 38

ROWID Format

    • Extended ROWID Format

    • Restricted ROWID Format

OOOOOO

BBBBBB

FFF

RRR

Data object number

Relative file number

Row number

Block number

BBBBBBBB

FFFF

RRRR

Block number

Row number

File number

.

.

11-10

Copyright © Oracle Corporation, 2001. All rights reserved.

11 of 38

11-11

Copyright © Oracle Corporation, 2001. All rights reserved.

12 of 38

Structure of a Row

Database block

Row header

Column length

Column value

11-12

Copyright © Oracle Corporation, 2001. All rights reserved.

13 of 38

Creating a Table

CREATE TABLE hr.employees(

employee_id NUMBER(6),

first_name VARCHAR2(20),

last_name VARCHAR2(25),

email VARCHAR2(25),

phone_number VARCHAR2(20),

hire_date DATE DEFAULT SYSDATE,

job_id VARCHAR2(10),

salary NUMBER(8,2),

commission_pct NUMBER (2,2),

manager_id NUMBER(6),

department_id NUMBER(4)

);

11-13

Copyright © Oracle Corporation, 2001. All rights reserved.

14 of 38

11-14

Copyright © Oracle Corporation, 2001. All rights reserved.

15 of 38

11-15

Copyright © Oracle Corporation, 2001. All rights reserved.

16 of 38

11-16

Copyright © Oracle Corporation, 2001. All rights reserved.

17 of 38

Creating a Table: Guidelines

    • Place tables in separate tablespaces.
    • Use locally-managed tablespaces to avoid fragmentation.
    • Use few standard extent sizes for tables to reduce tablespace fragmentation.

11-17

Copyright © Oracle Corporation, 2001. All rights reserved.

18 of 38

Creating Temporary Tables

    • Created using the GLOBAL TEMPORARY clause

    • Tables retain data only for the duration of a transaction or session
    • DML locks are not acquired on the data
    • Can create indexes, views, and triggers on temporary tables

CREATE GLOBAL TEMPORARY TABLE hr.employees_temp

AS SELECT * FROM hr.employees;

11-18

Copyright © Oracle Corporation, 2001. All rights reserved.

19 of 38

Setting PCTFREE and PCTUSED

    • Compute PCTFREE

    • Compute PCTUSED

(Average Row Size - Initial Row Size) * 100

�Average Row Size

Average Row Size * 100�100 - PCTFREE - � Available Data Space

11-19

Copyright © Oracle Corporation, 2001. All rights reserved.

20 of 38

Row Migration and Chaining

Before update

After update

Pointer

11-20

Copyright © Oracle Corporation, 2001. All rights reserved.

21 of 38

Changing Storage and Block Utilization Parameters

ALTER TABLE hr.employees

PCTFREE 30

PCTUSED 50

STORAGE(NEXT 500K

MINEXTENTS 2

MAXEXTENTS 100);

11-21

Copyright © Oracle Corporation, 2001. All rights reserved.

22 of 38

11-22

Copyright © Oracle Corporation, 2001. All rights reserved.

23 of 38

11-23

Copyright © Oracle Corporation, 2001. All rights reserved.

24 of 38

Manually Allocating Extents

ALTER TABLE hr.employees

ALLOCATE EXTENT(SIZE 500K

DATAFILE ‘/DISK3/DATA01.DBF’);

11-24

Copyright © Oracle Corporation, 2001. All rights reserved.

25 of 38

Nonpartitioned Table Reorganization

    • When a nonpartitioned table is reorganized, its structure is kept, but not its contents.
    • Used to move a table to a different tablespace or reorganize extents.

ALTER TABLE hr.employees

MOVE TABLESPACE data1;

11-25

Copyright © Oracle Corporation, 2001. All rights reserved.

26 of 38

Truncating a Table

    • Truncating a table deletes all rows in a table and releases used space.
    • Corresponding indexes are truncated.

TRUNCATE TABLE hr.employees;

11-26

Copyright © Oracle Corporation, 2001. All rights reserved.

27 of 38

Dropping a Table

DROP TABLE hr.department

CASCADE CONSTRAINTS;

11-27

Copyright © Oracle Corporation, 2001. All rights reserved.

28 of 38

11-28

Copyright © Oracle Corporation, 2001. All rights reserved.

29 of 38

Dropping a Column

Removing a column from a table:

    • Removes the column length and data from each row, freeing space in the data block.
    • Dropping a column in a large table takes a considerable amount of time.

ALTER TABLE hr.employees

DROP COLUMN comments

CASCADE CONSTRAINTS CHECKPOINT 1000;

11-29

Copyright © Oracle Corporation, 2001. All rights reserved.

30 of 38

11-30

Copyright © Oracle Corporation, 2001. All rights reserved.

31 of 38

Using the UNUSED Option

    • Mark a column as unused:�

    • Drop unused columns:

    • Continue to drop column operation:

ALTER TABLE hr.employees

SET UNUSED COLUMN comments CASCADE CONSTRAINTS;

ALTER TABLE hr.employees

DROP UNUSED COLUMNS CHECKPOINT 1000;

ALTER TABLE hr.employees

DROP COLUMNS CONTINUE CHECKPOINT 1000;

11-31

Copyright © Oracle Corporation, 2001. All rights reserved.

32 of 38

11-32

Copyright © Oracle Corporation, 2001. All rights reserved.

33 of 38

Obtaining Table Information

Information about tables can be obtained by querying

the following views:

    • DBA_TABLES
    • DBA_OBJECTS

11-33

Copyright © Oracle Corporation, 2001. All rights reserved.

34 of 38

11-34

Copyright © Oracle Corporation, 2001. All rights reserved.

35 of 38

Summary

In this lesson, you should have learned how to:

    • Distinguish between an extended versus a restricted ROWID
    • Outline the structure of a row
    • Create regular and temporary tables
    • Manage storage structures within a table
    • Reorganize, truncate, and drop a table
    • Drop a column within a table

11-35

Copyright © Oracle Corporation, 2001. All rights reserved.

36 of 38

Practice 11 Overview

This practice covers the following topics:

    • Creating a table
    • Viewing, marking as unused, and dropping columns within a table
    • Allocating extents manually
    • Truncating a table
    • Obtaining table information

11-36

Copyright © Oracle Corporation, 2001. All rights reserved.

37 of 38

11-37

Copyright © Oracle Corporation, 2001. All rights reserved.

38 of 38

11-38

Copyright © Oracle Corporation, 2001. All rights reserved.