Vous êtes sur la page 1sur 46

6

Managing Schema Objects

Copyright © 2005, Oracle. All rights reserved.


Objectives

After completing this lesson, you should be able to do


the following:
• Define schema objects and data types
• Create and modify tables
• Define constraints
• View the columns and contents of a table
• Create indexes
• Create views
• Create sequences
• Delete the data in a table
• Explain the use of temporary tables

6-2 Copyright © 2005, Oracle. All rights reserved.


What Is a Schema?

owns

HR schema
HR user

6-3 Copyright © 2005, Oracle. All rights reserved.


Schemas

Schemas that created as part of the database creation


process are:
• SYS
• SYSTEM
• Sample schemas, optionally

6-4 Copyright © 2005, Oracle. All rights reserved.


Schemas
Full Notes Page

6-5 Copyright © 2005, Oracle. All rights reserved.


Accessing Schema Objects

6-6 Copyright © 2005, Oracle. All rights reserved.


Naming Database Objects

• The length of names must be from 1 to 30 bytes,


with these exceptions:
– Names of databases are limited to 8 bytes.
– Names of database links can be as long as 128
bytes.
• Nonquoted names cannot be Oracle-reserved
words.
• Nonquoted names must begin with an alphabetic
character from your database character set.
• Quoted names are not recommended.

6-7 Copyright © 2005, Oracle. All rights reserved.


Naming Database Objects

• Nonquoted names can contain only:


– Alphanumeric characters from your database
character set
– The underscore (_)
– Dollar sign ($)
– Pound sign (#)
• No two objects can have the same name within the
same namespace.

6-8 Copyright © 2005, Oracle. All rights reserved.


Schema Object Namespaces

The following are in the same Each of the following have their
namespace: own namespace:
Tables Indexes
Views Constraints
Sequences
Clusters
Private synonyms
Stand-alone procedures Database triggers
Stand-alone stored functions Private database links
Packages Dimensions
Materialized views
User-defined types

6-9 Copyright © 2005, Oracle. All rights reserved.


Specifying Data Types in Tables

Common data types:


• CHAR(size [BYTE|CHAR]): Fixed-length
character data of size bytes or characters
• VARCHAR2(size [BYTE|CHAR]): Variable-length
character string having a maximum length of size
bytes or characters
• DATE: Valid date range from January 1, 4712 B.C.
through A.D. December 31, 9999
• NUMBER(p,s): Number with precision p and scale
s

6-10 Copyright © 2005, Oracle. All rights reserved.


Other Data Types

• BINARY_FLOAT • RAW
• BINARY_DOUBLE • ROWID
• FLOAT • UROWID
• INTEGER • BLOB
• NCHAR • CLOB
• NVARCHAR2 • NCLOB
• LONG • BFILE
• LONG RAW • TIMESTAMP

6-11 Copyright © 2005, Oracle. All rights reserved.


Other Data Types
Full Notes Page

6-12 Copyright © 2005, Oracle. All rights reserved.


Creating and Modifying Tables

Specify the table


name and schema.

Specify the column names,


data types, and lengths.

6-13 Copyright © 2005, Oracle. All rights reserved.


Creating and Modifying Tables
Full Notes Page

6-14 Copyright © 2005, Oracle. All rights reserved.


Understanding Data Integrity

JOB_HISTORY DEPARTMENTS LOCATIONS


EMPLOYEE_ID DEPARTMENT_ID (PK) LOCATION_ID (PK)
(PK,FK) EMPLOYEES DEPARTMENT_NAME STREET_ADDRESS
START_DATE (PK) EMPLOYEE_ID (PK) MANAGER_ID POSTAL_CODE
END_DATE FIRST_NAME LOCATION_ID (FK) CITY
JOB_ID (FK) LAST_NAME STATE_PROVINCE
DEPARTMENT_ID (FK) EMAIL COUNTRY_ID (FK)
PHONE_NUMBER
HIRE_DATE
JOB_ID (FK)
SALARY
COMMISION_PCT
MANAGER_ID (FK)
DEPARTMENT_ID (FK)
JOBS COUNTRIES
COUNTRY_ID (PK)
JOB_ID (PK)
COUNTRY_NAME
JOB_TITLE
REGION_ID (FK)
MIN_SALARY
MAX_SALARY

REGIONS
REGION_ID (PK)
REGION_NAME

6-15 Copyright © 2005, Oracle. All rights reserved.


Understanding Data Integrity
Full Notes Page

6-16 Copyright © 2005, Oracle. All rights reserved.


Constraint States

DISABLE DISABLE ENABLE ENABLE


NOVALIDATE VALIDATE NOVALIDATE VALIDATE

No
DML

New data Existing data

6-17 Copyright © 2005, Oracle. All rights reserved.


Constraint States
(Notes Only Slide)

6-18 Copyright © 2005, Oracle. All rights reserved.


Defining Constraints

6-19 Copyright © 2005, Oracle. All rights reserved.


Constraint Checking

Constraints are checked at the time of:


• Statement execution, for non-deferred constraints
• COMMIT, for deferred constraints

Case: DML statement, followed by COMMIT

1 Nondeferred constraints
checked
2 COMMIT issued

3 Deferred constraints checked

4 COMMIT complete

6-20 Copyright © 2005, Oracle. All rights reserved.


Creating Constraints with SQL: Examples

ALTER TABLE countries


a
ADD (UNIQUE(country_name) ENABLE NOVALIDATE);

ALTER TABLE employees ADD CONSTRAINT pk PRIMARY KEY


b
(employee_id)

CREATE TABLE t1 (pk NUMBER PRIMARY KEY, fk NUMBER, c1 NUMBER,


c c2 NUMBER,
CONSTRAINT ri FOREIGN KEY (fk) REFERENCES t1, CONSTRAINT ck1
CHECK (pk > 0 and c1 > 0));

6-21 Copyright © 2005, Oracle. All rights reserved.


Viewing the Columns in a Table

6-22 Copyright © 2005, Oracle. All rights reserved.


Viewing the Contents of a Table

6-23 Copyright © 2005, Oracle. All rights reserved.


Actions with Tables

6-24 Copyright © 2005, Oracle. All rights reserved.


Dropping a Table

Dropping a table removes:


• Data
DROP TABLE hr.employees PURGE;
• Table structure
• Database triggers
• Corresponding indexes
• Associated object privileges
Optional clauses for the DROP TABLE statement:
• CASCADE CONSTRAINTS: Dependent referential
integrity constraints
• PURGE: No flashback possible

6-25 Copyright © 2005, Oracle. All rights reserved.


Truncating a Table

TRUNCATE TABLE hr.employees;

• Truncating a table makes its row data unavailable,


and optionally releases used space.
• Corresponding indexes are truncated.

6-26 Copyright © 2005, Oracle. All rights reserved.


Indexes

… WHERE key = 22

Row
Key pointer

22

22

Index Table

6-27 Copyright © 2005, Oracle. All rights reserved.


Types of Indexes

These are several types of index structures available


to you, depending on the need:
• A B-tree index is in the form of a binary tree and is
the default index type.
• A bitmap index has a bitmap for each distinct
value indexed, and each bit position represents a
row that may or may not contain the indexed
value. This is best for low-cardinality columns.

6-28 Copyright © 2005, Oracle. All rights reserved.


B-Tree Index

Index entry

Root

Branch

Index entry header


Leaf Key column length
Key column value
ROWID

6-29 Copyright © 2005, Oracle. All rights reserved.


6-30 Copyright © 2005, Oracle. All rights reserved.
Bitmap Indexes

Table File 3
Block 10

Block 11

Index Block 12

start end
key ROWID ROWID bitmap
<Blue, 10.0.3, 12.8.3, 1000100100010010100>
<Green, 10.0.3, 12.8.3, 0001010000100100000>
<Red, 10.0.3, 12.8.3, 0100000011000001001>
<Yellow, 10.0.3, 12.8.3, 0010001000001000010>

6-31 Copyright © 2005, Oracle. All rights reserved.


6-32 Copyright © 2005, Oracle. All rights reserved.
Index Options

• A unique index ensures that every indexed value


is unique.
• An index can have its key values stored in
ascending or descending order.
• A reverse key index has its key value bytes stored
in reverse order.
• A function-based index is an index based on a
function’s return value.
• A compressed index has repeated key values
removed.

6-33 Copyright © 2005, Oracle. All rights reserved.


Creating Indexes

CREATE INDEX my_index ON


employees(last_name, first_name);

6-34 Copyright © 2005, Oracle. All rights reserved.


What Is a View?
LOCATION table

COUNTRY table
V
iew

CREATE VIEW v AS SELECT location_id, country_name FROM


locations l, countries c
WHERE l.country_id = c.country_id AND c.country_id in
('AU','BR');

6-35 Copyright © 2005, Oracle. All rights reserved.


Creating Views

6-36 Copyright © 2005, Oracle. All rights reserved.


Sequences

A sequence is a mechanism for automatically


generating integers that are guaranteed to be unique.

1001 1000000 1
1002 999995 2
1003 999990 3
1004 999985 4
1005 999980 5
1006 999975 6
1007 7
1008 8
1009
1010
1011

6-37 Copyright © 2005, Oracle. All rights reserved.


Sequences

• A sequence has a name, which is how it is


referenced when the next value is requested.
• A sequence is not associated with any particular
table or column.
• The order of progression can be ascending or
descending.
• The interval between numbers can be of any size.
• Sequence values can be cached to improve
performance.
• A sequence can cycle when a limit is reached.

6-38 Copyright © 2005, Oracle. All rights reserved.


Creating a Sequence

6-39 Copyright © 2005, Oracle. All rights reserved.


What Is a Sequence?
Full Notes Page

6-40 Copyright © 2005, Oracle. All rights reserved.


Using a Sequence

6-41 Copyright © 2005, Oracle. All rights reserved.


Temporary Tables

A temporary table:
• Provides storage of data that is automatically
cleaned up when the session or transaction ends
• Provides private storage of data for each session
• Is available to all sessions for use without
affecting each other’s private data

6-42 Copyright © 2005, Oracle. All rights reserved.


Temporary Tables
(Notes only slide)

6-43 Copyright © 2005, Oracle. All rights reserved.


Temporary Tables: Considerations

• Use the GLOBAL TEMPORARY clause to create


temporary tables:

CREATE GLOBAL TEMPORARY TABLE employees_temp


ON COMMIT PRESERVE ROWS
AS SELECT * FROM employees;

• Use the TRUNCATE TABLE command to delete the


contents of the table.
• You can create the following on temporary tables:
– Indexes
– Views
– Triggers

6-44 Copyright © 2005, Oracle. All rights reserved.


Summary

In this lesson, you should have learned how to:


• Define schema objects and data types
• Create and modify tables
• Define constraints
• View the columns and contents of a table
• Explain the usage of types of indexes
• Create views
• Create and use sequences
• Delete the data in a table in the most efficient
manner
• Explain the use of temporary tables

6-45 Copyright © 2005, Oracle. All rights reserved.


Practice Overview:
Administering Schema Objects

This practice covers the following topics:


• Creating tables with columns
• Creating constraints:
– Primary key
– Check
– Foreign key
• Creating indexes

6-46 Copyright © 2005, Oracle. All rights reserved.

Vous aimerez peut-être aussi