Você está na página 1de 20

13/09/21 Banco de Dados

Introdução

DDL -
Definição SQL-DDL para
Oracle 18c

Autor:
Prof.Enzo Seraphim
SQL - Linguagem Estruturada de
Consulta
 Os comandos podem ser agrupados em 3 classes:

– DDL - Comandos para a Definição de Relações

– DML - Comandos para a Manipulação de


Relações

– DCL - Comandos para o controle do


Gerenciador, Conexão e Usuário

Banco de Dados
Exemplo Prático de
Modelo Entidade-Relacionamento

Autor 1
Escreve
cod_autor
nome
nascimento N
titulo
cod_autor
Livro cod_editora
valor
publicacao
N volume

Editora
Publicado
1
cod_editora
razao
endereco
Banco de Dados cidade
Exemplo Prático de
Modelo Relacional

AUTOR = { COD_AUTOR, NOME,


NASCIMENTO}

LIVRO = {TITULO, COD_AUTOR


( AUTOR.COD_AUTOR ),
COD_EDITORA
( EDITORA.COD_EDITORA ),
VALOR, PUBLICACAO, VOLUME }

EDITORA = { COD_EDITORA, RAZAO,


ENDERECO, CIDADE }

Banco de Dados
Comandos de Definição de Relações
 Para todos comandos da DDL:
– CREATE - Cria uma definição.
– ALTER - Alterar alguma definição.
– DROP - Excluí uma definição.
 Alguns comandos da DDL:
– TABLE - Defini uma tabela, seus campos e as
restrições de campo.
– INDEX - Defini um índice associado a um
campo de uma tabela.

Banco de Dados
Comandos de Definição de Relações
– TRIGGER - Defini um conjunto de instruções
que são automaticamente executadas antes ou
depois de um comando INSERT, UPDADE ou
DELETE.
– Comando CREATE PROCEDURE - Defini um
conjunto de instruções. Podem recebem ou
retornar valores. Pode ser executadas através de
uma solicitação do usuário ou por um
TRIGGER.

Banco de Dados
CREATE TABLE
Cria uma nova tabela com seus
campos e define as restrições de
campo.

CREATE TABLE tabela


(campo1 tipo [(tamanho)]
[NOT NULL] [PRIMARY KEY |
UNIQUE] [DEFAULT literal],
[CONSTRAINT nome]
{PRIMARY KEY (primária1, ...) |
UNIQUE (exclusiva1, ...) |
FOREIGN KEY (ref1, ...)
REFERENCES tabelaexterna }
Banco de Dados
Tipos de dados:
 CHAR(n). Tamanho de armazenamento n bytes. Para
armazenamento de dados textuais (caracter e número). O
número máximo de caracteres é definido por n e deve estar
entre 1 e 32,767. Reserva previamente o tamanho definido
por n, mesmo que o dado armazenado não preencha
totalmente o campo.
 VARCHAR(n) ou CHAR VARYING(n) ou CHARACTER
VARYING(n). Tamanho de armazemanento n bytes.
Para armazenamento de dados textuais (caracter e número).
O número máximo de caracteres é definido por n e deve
estar entre 1 e 32,765. Armazena somente a quantidade de
caracteres que conter o dado, no máximo o valor n.
Problemas com alteração de valor do dado implicando
mudança de local de armazenamento.

Banco de Dados
Tipos de dados:
 NUMBER (precisão, decimal) Tamanho de
armazemanento variável. Para armazenamento de
valores decimais. Precisão define a quantidade de
digitos numérico máximo para o dado e decimal a
quantidade de números decimais. Por exemplo:
NUMBER (10,3) indica que o dados pode ter no
máximo 7 digitos inteiros e 3 dígitos decimais.
 INTEGER. Mesmo que Number(38). Tamanho de
armazemanento 32 bits. Para armazenamento de
números inteiros no intervalo de –2.147.483.648 to
2.147.483.647.

Banco de Dados
Tipos de dados:
 DATE. Tamanho de armazenamento 64 bits. Para
armazenamento de data e hora. O intervalo de datas
válidas é 1/Jan/100 até 11/Jan/5941, incluso tempo.
 BLOB. Tamanho de armazenamento variável. Para
armazenamento de grande quantidade de dados
como audio, vídeo, gráficos,etc.

Banco de Dados
Exemplo
/* Cria tabela autor */

CREATE TABLE AUTOR(


COD_AUTOR NUMBER(3) NOT NULL ,
NOME VARCHAR(70) NOT NULL,
NASCIMENTO DATE NOT NULL,
CONSTRAINT CHAVEAUTOR
PRIMARY KEY (COD_AUTOR),
CONSTRAINT UNICOAUTOR
UNIQUE( NOME, NASCIMENTO) );

Banco de Dados
Exemplo
/* Cria tabela editora */

CREATE TABLE EDITORA(


COD_EDITORA NUMBER(3) NOT NULL,
RAZAO VARCHAR(70),
ENDERECO CHAR(70),
CIDADE CHAR(70),
CONSTRAINT CHAVEEDITORA
PRIMARY KEY (COD_EDITORA));

Banco de Dados
Exemplo
/* Cria tabela livro */
CREATE TABLE LIVRO(
TITULO CHAR(70) NOT NULL,
COD_AUTOR NUMBER(3) NOT NULL,
COD_EDITORA NUMBER(3) NOT NULL,
VALOR NUMBER(7,2),
COMENTARIO BLOB,
PUBLICACAO DATE,
VOLUME NUMBER(2),
CONSTRAINT CHAVELIVRO
PRIMARY KEY (TITULO, COD_AUTOR),
CONSTRAINT LIVROINHERITAUTOR
FOREIGN KEY (COD_AUTOR) REFERENCES AUTOR,
CONSTRAINT LIVROINHERITEDITORA
FOREIGN KEY (COD_EDITORA) REFERENCES EDITORA);

Banco de Dados
ALTER TABLE
Altera as definições de campos e de restrições.

ALTER TABLE tabela


[ADD campo tipo [(tamanho)] [NOT NULL]
[PRIMARY KEY | UNIQUE], [, ...],
[DROP campo tipo [(tamanho)] [NOT NULL]
[PRIMARY KEY | UNIQUE], [, ...],
[ADD CONSTRAINT restrição [, ...]]
[DROP CONSTRAINT restrição [, ...]]

Banco de Dados
Exemplo
/* Adicionar o campo E-MAIL na tabela Autor */

ALTER TABLE AUTOR


ADD EMAIL VARCHAR(30);

/* Apagar a CONSTRAINT UNICOAUTOR


da tabela Autor */

ALTER TABLE AUTOR


DROP CONSTRAINT UNICOAUTOR;

Banco de Dados
DROP TABLE
Exclui uma tabela existente de um banco de
dados. Não pode ser excluída uma tabela1 que
possuí alguma referência. Neste caso deve-se
primeiro excluir a tabela2 que possui algum
campo que esta referenciando e depois excluir
tabela1.
DROP TABLE tabela

Exemplo:
/* Apaga tabela livro */
DROP TABLE LIVRO;

Banco de Dados
CREATE INDEX
Cria um novo índice em uma tabela existente.
CREATE [UNIQUE] INDEX índice ON
tabela ( campo [ASC | DESC] [, campo…])
As funções dos índices são:
 Auxiliar o gerenciador em uma pesquisa de um
ou mais campos na base de dados, quando for
solicitado;
 Auxiliar o gerenciador em uma ordenação de
um ou mais campos na base de dados, quando
for solicitado.

Banco de Dados
Exemplo
/* Cria indice do campo nascimento,
Ordem descendente para tabela autor */
CREATE INDEX INDNASCIMENTO
ON AUTOR (NASCIMENTO DESC);

/* Cria indice do campo cidade e razao,


Ordem ascendente para tabela editora */
CREATE INDEX INDCIDRAZ
ON EDITORA (CIDADE, RAZAO);

Banco de Dados
DROP INDEX

Exclui um índice existente de uma tabela.

DROP INDEX índice

Exemplo:

/* Apaga indice indcidraz da tabela editora */


DROP INDEX INDCIDRAZ;

Banco de Dados
13/09/21 Banco de Dados

Autor:
Prof.Enzo Seraphim

Os logotipos, marcas comerciais e SQL-DDL para


nomes de produtos citados nesta
publicação tem apenas o propósitos
Oracle 18c
de identificação e podem ser marcas
registradas de suas respectivas
companhias.

Você também pode gostar