You are on page 1of 4

Database Objects

Object

Description

Table

Basic unit of storage; composed of rows

View

Logically represents subsets of data from one or


more tables

Sequence

Generates numeric values

Index

Improves the performance of some queries

Synonym

Gives alternative name to an object

10 - 1

Copyright 2009, Oracle. All rights reserved.

Regras de Nomeao
Nomes de Tabelas e colunas devem:
Comear com uma letra
No mximo 30 caracteres
Conter somente AZ, az, 09, _, $, e #
No possuir outros obejtos com o mesmo nome para o
mesmo usurio
No ser uma palavra reservada do Oracle

10 - 2

DEFAULT Option

Declarao CREATE TABLE

Voc deve ter:

Privilgio de CREATE TABLE


Uma rea de aramazenamento
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr][, ...]);

Voc deve especificar:

Copyright 2009, Oracle. All rights reserved.

Especifica um valor default para uma coluna.


... hire_date DATE DEFAULT SYSDATE, ...

O nome da tabela
O nome, o tipo e o tamanho da coluna

So valores legais: Literais, expresses e funes SQL.


Valores no vlidos: outras colunas ou pseudocolunas.
O valor default deve ter o tipo de dado compatvel com a
coluna.

CREATE TABLE hire_dates


(id
NUMBER(8),
hire_date DATE DEFAULT SYSDATE);

10 - 3

Copyright 2009, Oracle. All rights reserved.

10 - 4

Copyright 2009, Oracle. All rights reserved.

Criando Tabelas

Create the table:

Data Type

CREATE TABLE dept


(deptno
dname
loc
create_date

Tipos de Dados

NUMBER(2),
VARCHAR2(14),
VARCHAR2(13),
DATE DEFAULT SYSDATE);

Confirmanado a criao:
DESCRIBE dept

10 - 5

Description

VARCHAR2(size) Variable-length character data

Copyright 2009, Oracle. All rights reserved.

CHAR(size)

Fixed-length character data

NUMBER(p,s)

Variable-length numeric data

DATE

Date and time values

LONG

Variable-length character data (up to 2 GB)

CLOB

Character data (up to 4 GB)

RAW and LONG


RAW

Raw binary data

BLOB

Binary data (up to 4 GB)

BFILE

Binary data stored in an external file (up to 4 GB)

ROWID

A base-64 number system representing the unique


address of a row in its table

10 - 6

Copyright 2009, Oracle. All rights reserved.

Tipos de Data
Vrios tipos de data:

10 - 7

Constraints

Data Type

Description

TIMESTAMP

Date with fractional seconds

INTERVAL YEAR TO
MONTH

Stored as an interval of years


and months

INTERVAL DAY TO
SECOND

Stored as an interval of days, hours, minutes,


and seconds

Copyright 2009, Oracle. All rights reserved.

Constraints garante regra a nvel de tabela.


Constraints previne contra a deleo de tabelas com
dependecias.
Tipos vlidos de constraints:

10 - 8

NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK

Copyright 2009, Oracle. All rights reserved.

Definio Constraints

Sintaxe:

Definindo Constraints

Sintaxe em nvel de coluna:


column [CONSTRAINT constraint_name] constraint_type,

Sintaxe em nvel de tabela:


column,...
[CONSTRAINT constraint_name] constraint_type
(column, ...),

10 - 9

Copyright 2009, Oracle. All rights reserved.

Exemplo de constraint em nvel de coluna:


CREATE TABLE employees(
employee_id NUMBER(6)
CONSTRAINT emp_emp_id_pk PRIMARY KEY,
first_name
VARCHAR2(20),
...);

CREATE TABLE [schema.]table


(column datatype [DEFAULT expr]
[column_constraint],
...
[table_constraint][,...]);

Examplo de contraint em nvel de tabela:


CREATE TABLE employees(
employee_id NUMBER(6),
first_name
VARCHAR2(20),
...
job_id
VARCHAR2(10) NOT NULL,
CONSTRAINT emp_emp_id_pk
PRIMARY KEY (EMPLOYEE_ID));

10 - 10

UNIQUE Constraint
Pode ser definida em nvel de tabela ou coluna:

Copyright 2009, Oracle. All rights reserved.

Copyright 2009, Oracle. All rights reserved.

FOREIGN KEY Constraint


Definida em nvel de tabela ou coluna:

CREATE TABLE employees(


employee_id
NUMBER(6),
last_name
VARCHAR2(25) NOT NULL,
email
VARCHAR2(25),
salary
NUMBER(8,2),
commission_pct
NUMBER(2,2),
hire_date
DATE NOT NULL,
...
CONSTRAINT emp_email_uk UNIQUE(email));

10 - 11

CREATE TABLE employees(


employee_id
NUMBER(6),
last_name
VARCHAR2(25) NOT NULL,
email
VARCHAR2(25),
salary
NUMBER(8,2),
commission_pct
NUMBER(2,2),
hire_date
DATE NOT NULL,
...
department_id
NUMBER(4),
CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
REFERENCES departments(department_id),
CONSTRAINT emp_email_uk UNIQUE(email));

10 - 12

Copyright 2009, Oracle. All rights reserved.

FOREIGN KEY Constraint

FOREIGN KEY: Define a coluna na tabela filho em nvel de


coluna
REFERENCES: Identifica a tabela e coluna pai
ON DELETE CASCADE: Deleta as linhas da tabela filho
referentes ao registro deletado da tabela pai
ON DELETE SET NULL: Converte a chave estrangeira em
NULL

10 - 13

Copyright 2009, Oracle. All rights reserved.

CHECK Constraint

Define uma condio que cada linha deve satisfazer


As expresses abaixo no so permitidas:
Referencias as pseudocolumns: CURRVAL, NEXTVAL,
LEVEL, e ROWNUM
Chamadas para as funes: SYSDATE, UID, USER, e
USERENV
Queries que referenciam valores de outras linhas
..., salary NUMBER(2)
CONSTRAINT emp_salary_min
CHECK (salary > 0),...

10 - 14

Copyright 2009, Oracle. All rights reserved.

Exemplo: CREATE TABLE


CREATE TABLE employees
( employee_id
NUMBER(6)
CONSTRAINT
emp_employee_id
PRIMARY KEY
, first_name
VARCHAR2(20)
, last_name
VARCHAR2(25)
CONSTRAINT
emp_last_name_nn NOT NULL
, email
VARCHAR2(25)
CONSTRAINT
emp_email_nn
NOT NULL
CONSTRAINT
emp_email_uk
UNIQUE
, phone_number
VARCHAR2(20)
, hire_date
DATE
CONSTRAINT
emp_hire_date_nn NOT NULL
, job_id
VARCHAR2(10)
CONSTRAINT
emp_job_nn
NOT NULL
, salary
NUMBER(8,2)
CONSTRAINT
emp_salary_ck
CHECK (salary>0)
, commission_pct NUMBER(2,2)
, manager_id
NUMBER(6)
CONSTRAINT emp_manager_fk REFERENCES
employees (employee_id)
, department_id NUMBER(4)
CONSTRAINT
emp_dept_fk
REFERENCES
departments (department_id));

10 - 15

Copyright 2009, Oracle. All rights reserved.

You might also like