You are on page 1of 13

DISCIPLINA DE BANCO DE DADOS

Linguagem de Definio de Dados (DDL)

Professor: Joo Caetano Neto

Objetivo

A Linguagem de Definio de Dados (DDL) uma linguagem para especificar a informao a cerca de cada relao, incluindo:

O esquema de cada relao; O domnio de valores associados com cada atributo; Restries de Integridade; O conjunto de ndices a manter para cada relao; Informao de segurana e autorizao para cada relao.

Tipos de Dados

Os tipos de dados que pode ter um campo, podem-se agrupar em trs grandes grupos:

Tipos numricos Tipos de Data Tipos Texto

Tipos Numricos

NUMERIC(p,s): tem uma preciso e uma escala(nmero de dgitos na parte fracionria). BINARY_FLOAT: Nmero de ponto flutuante de preciso simples. Necessita de menos memria e utiliza aritmtica de mquina nativa - o que proporciona alto desempenho para aplicaes com computao intensiva. Apresenta o armazenamento da preciso binria, o que pode provocar erros no arredondamento - em relao aos nmeros de preciso decimal como o NUMBER. BINARY_DOUBLE: Essencialmente semelhante ao BINARY_FLOAT, porm com preciso dupla. Ainda sim armazenado com preciso binria - fato que deve ser evitado em aplicaes com necessidades financeiras de arredondamento. Alto desempenho devido a utilizao da aritmtica de mquina nativa.

Tipos de Data

DATE: Campo fixo capaz de armazenar Data e Hora. Incluir dados do Sculo, Ano, Ms, Dia, Hora e Segunda. Milissegundos no podem ser armazenados no DATE. Varia entre 01/01/4712 a.C. a 31/12/9999 d.C. TIMESTAMP: Valor capaz de armazenar a Data e Hora, incluindo valores dos Milissegundos.

Tipos Texto

CHARACTER(x) (CHAR): representa um string de tamanho x. Se x for omitido ento equivalente a CHAR(1). Se um string a ser armazenado menor do que x, ento o restante preenchido com brancos. CHARACTER VARYING(x) (VARCHAR): representa um string de tamanho x. Armazena exatamente o tamanho do string (tam <= x) sem preencher o resto com brancos. Neste caso x obrigatrio. CHARACTER LARGE OBJECT (CLOB): armazena strings longos. Usado para armazenar documentos. BINARY LARGE OBJECT (BLOB): para armazenar grande quantidades de bytes como fotos, vdeo, udio, grficos, mapas, etc.

SQL - DDL

Comandos para definio de esquemas

create table

define a estrutura da tabela, suas restries de integridade e cria uma tabela vazia. modifica a definio de uma tabela. remove uma tabela com todas as suas tuplas

alter table

drop table

Restries bsicas

Primary Key: especifica um ou mais atributos que definem a chave primria da relao. Unique: define chaves alternativas Not Null: especifica que o atributo no pode ter entrada nula (vazia). Foreign Key: define os atributos de chaves estrangeiras e de onde (qual tabela e atributo) elas vieram. Check: forma de validar a entrada de dados nos campos das tabelas. Quando precisamos definir valores mnimos e mximos de campos, formatao de caracteres (mausculo ou minsculo) e diversas outras validaes.

CREATE TABLE
CREATE TABLE nome_tabela ( nome_atributo_1 tipo_1 [[NOT]NULL][UNIQUE] [{, nome_atributo_n tipo_n}] [, PRIMARY KEY (nome(s)_atributo(s))] [{, FOREIGN KEY (nome_atributo) REFERENCES nome_tabela}] )

Exemplo:
CREATE TABLE Ambulatorios ( cod_amb int, quarto numeric(3) NOT NULL, capacidade smallint, PRIMARY KEY(cod_amb) )

CREATE TABLE EXEMPLO 2

create table Medicos


( codm int, nome varchar(40) not null, RG numeric(10) unique, sexo char(1) check(sexo in ('M','F')), idade tinyint check(idade between 21 and 80), titulacao varchar(15) check(titulacao in ('graduado','especialista', 'mestre', 'doutor')), especialidade varchar(15) check(especialidade in (Ortopedia',Geral', Gastrologia', Urologia')), nroa int, Constraint fkAmb Foreign key (cod_amb) references Ambulatorios (cod_amb), constraint pkMed primary key (codm) )

SQL Alter Table


ALTER TABLE nome_tabela ADD [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] | MODIFY [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] | DROP COLUMN nome_atributo_1 [{, nome_atributo_n }] | ADD CONSTRAINT nome_RI_1 def_RI_1 [{, nome_RI_n def_RI_n}] | DROP CONSTRAINT nome_RI_1 [{, nome_RI_n}] | [ADD|DROP] [PRIMARY KEY ...|FOREIGN KEY ...]

Exemplos de Alterao de Tabelas


ALTER TABLE Ambulatrios ADD nome VARCHAR(30) ALTER TABLE Mdicos DROP PRIMARY KEY ALTER TABLE Pacientes DROP COLUMN doenca, DROP COLUMN cidade ALTER TABLE Funcionrios ADD FOREIGN KEY(cod_amb)REFERENCES Ambulatrios ALTER TABLE Funcionarios ADD constraint fk_ cod_amb FOREIGN KEY(cod_amb) REFERENCES Ambulatorios (cod_amb)

Exerccios de Fixao

Resolver lista de exerccios presente no Moodle

You might also like