Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Linguagem SQL
Linguagem de
Definio de Dados
DDL
Relao
a matria prima para a construo de toda a teoria do
modelo relacional e, por conseqncia, o alicerce terico de
todo sistema de banco de dados baseado no modelo relacional.
Nos sistemas de banco de dados relacionais os dados so
agrupados em TABELAS.
Uma tabela possui um nome e constituda de uma ou mais
colunas (ou campos). Os campos devem tambm possuir um
nome, juntamente com o tipo de dado que ser armazenado na
coluna.
Nome
Endereco
123
Joo
Rua Pio XI
567
Maria
Rua S. Francisco
678
Joana
Av. Liberdade
876
Gabriela
Av. Jatica
976
Ana Jlia
Av. So Paulo
linha ou registro
CREATE objeto
cria um objeto (uma Tabela, por exemplo) no banco de dados.
DROP objeto
Apaga/exclui um objeto do banco de dados.
ALTER objeto
Altera a estrutura ou a configurao de um objeto no banco de
dados
INTEGER
Dado numrico inteiro de tamanho fixo (32 bits). Representa valores no intervalo de:
2.147.483.648 a -2.147.483.647
SMALLINT
NUMERIC(n,m) Dado numrico de tamanho varivel, sendo n o nmero total de dgitos e m o nmero
DECIMAL(n,m) de casas decimais. O Parmetro m opcional
FLOAT
Dado numrico de ponto flutuante com preciso de 7 dgitos. Tem tamanho de 32 bits
e armazena valores no intervalo de: 1.175 x 10-38 a 3.402 x 1038
DATE
TIME
TIMESTAMP
BLOB
Binary Large Object. Possui tamanho varivel e permite armazenar dados, tais como
imagens, audio, vdeo, etc. Os subtipos definem o contedo do campo. Os subtipos 0 e
1 so mais utilizados: 0 = dados binrios de tipo indeterminado; 1 = Texto
Aluno
RA
numeric(8)
Nome
char(40)
RG
numeric(10)
Endereco
varchar(50)
Sexo
char(1)
dt_nasc
date
Chave primria
A funo da chave primria identificar univocamente cada
registro da tabela. Toda tabela deve possuir uma chave primria,
que deve ser composta por um ou mais campos. Todo campo
que compe a chave primria dever ter a clusula NOT NULL.
Exerccios
Exerccio 1
Cod_liv
Ttulo
edicao
ISBN
prateleira
ano
Livro
editado
Editora
UF
Endereco
Cod_ed
autoria
Cidade
CNPJ
liv_assunto
Telefone
Nome
Autor
Assunto
UF
Endereco Cidade
Cod_au
CPF
RG
descricao
Telefone
Cod_as
Nome
10
Exerccio 1: resposta
create table editora
( cod_ed
numeric(3) not null primary key,
nome
varchar(40) not null,
cnpj
numeric(15) not null UNIQUE,
endereco varchar(50),
telefone char(15),
cidade
varchar(30),
uf
char(2)
)
Editora
Cod_ed
nome
CNPJ
endereco
telefone
cidade
UF
Aluno
RA
numeric(8)
Curso
Nome
char(40)
# cd_curso
integer
RG
numeric(10)
Nome
char(40)
Endereco
varchar(50)
Sexo
char(1)
dt_nasc
date
cd_curso
integer
11
1.
2.
nome
01
Cincia da Computao
02
Cincia da Informao
Aluno
RA
nome
Rg
endereco
sexo
Dt_nasc
Cd_curso
1242532
Manoel
13243647
Rua Cinco
30/01/1963
01
1425534
Johanna
62736432
Rua So Paulo
14/11/1950
02
1565243
Maria
6152632
15/09/1980
02
4537642
Joo
746732
Rua Leo 23
14/08/1970
01
12
nome
01
Cincia da Computao
02
Cincia da Informao
Aluno
RA
nome
Rg
endereco
sexo
Dt_nasc
Cd_curso
1242532
Manoel
13243647
Rua Cinco
30/01/1963
01
1425534
Johanna
62736432
Rua So Paulo
14/11/1950
02
1565243
Maria
6152632
15/09/1980
02
4537642
Joo
746732
Rua Leo 23
14/08/1970
01
13
nome
01
Cincia da Computao
02
Cincia da Informao
Aluno
RA
nome
Rg
endereco
sexo
Dt_nasc
cd_curso
1242532
Manoel
13243647
Rua Cinco
30/01/1963
01
1425534
Johanna
62736432
Rua So Paulo
14/11/1950
02
1565243
Maria
6152632
15/09/1980
02
4537642
Joo
746732
Rua Leo 23
14/08/1970
01
14
nome
01
Cincia da Computao
02
Cincia da Informao
Aluno
RA
nome
Rg
endereco
sexo
Dt_nasc
cd_curso
1242532
Manoel
13243647
Rua Cinco
30/01/1963
01
1425534
Johanna
62736432
Rua So Paulo
14/11/1950
02
1565243
Maria
6152632
15/09/1980
02
4537642
Joo
746732
Rua Leo 23
14/08/1970
01
15
cd_curso
nome
17
Cincia da Computao
02
Cincia da Informao
Aluno
RA
nome
Rg
endereco
sexo
Dt_nasc
cd_curso
1242532
Manoel
13243647
Rua Cinco
30/01/1963
17
1425534
Johanna
62736432
Rua So Paulo
14/11/1950
02
1565243
Maria
6152632
15/09/1980
02
4537642
Joo
746732
Rua Leo 23
14/08/1970
17
16
cd_curso
nome
17
Cincia da Computao
02
Cincia da Informao
Aluno
RA
nome
Rg
endereco
sexo
Dt_nasc
cd_curso
1242532
Manoel
13243647
Rua Cinco
30/01/1963
01
1425534
Johanna
62736432
Rua So Paulo
14/11/1950
02
1565243
Maria
6152632
15/09/1980
02
4537642
Joo
746732
Rua Leo 23
14/08/1970
01
17
Exerccios
Exerccio 2
Cod_liv
Ttulo
edicao
ISBN
ano
Cod_ed
Livro
editado
Editora
UF
Endereco
Cod_ed
autoria
Cidade
CNPJ
liv_assunto
Telefone
Nome
Autor
Assunto
UF
Endereco Cidade
Cod_au
CPF
RG
descricao
Telefone
Cod_as
Nome
18
Exerccio 2: resposta
create table livro
( cod_liv
numeric(5)
not null primary key,
titulo
varchar(40) not null,
isbn
numeric(15),
edicao
numeric(2),
ano
numeric(4),
cod_ed
numeric(3) references editora(cod_ed)
on update cascade
on delete set null
)
Exerccio 2: resposta
Editora
Cod_ed
nome
CNPJ
endereco
telefone
cidade
UF
Livro
Cod_liv
titulo
isbn
edicao
ano
Cod_ed
19
Exerccios
20
Exerccio 3
Ttulo
edicao
ISBN
Cod_liv
ano
Cod_ed
Livro
editado
Editora
UF
Endereco
Cod_ed
autoria
Cidade
CNPJ
liv_assunto
Telefone
Nome
Autor
Assunto
UF
Endereco Cidade
Cod_au
CPF
RG
descricao
Telefone
Cod_as
Nome
Exerccio 3: resposta
create table autor
( cod_au
numeric(3)
not null primary key,
nome
varchar(40) not null,
cpf
numeric(11),
rg
numeric(10),
endereco
varchar(50),
telefone
char(15),
cidade
varchar(30),
uf
char(2)
)
Autor
Cod_au nome
cpf
rg
endereco
telefone
cidade
uf
21
Exerccio 4
Ttulo
edicao
ISBN
Cod_liv
ano
Cod_ed
Livro
editado
Editora
UF
Endereco
Cod_ed
autoria
Cidade
CNPJ
liv_assunto
Telefone
Nome
Autor
Assunto
UF
Endereco Cidade
Cod_au
CPF
RG
descricao
Telefone
Cod_as
Nome
Exerccio 4: resposta
create table assunto
( cod_as
numeric(3)
descricao varchar(40)
)
Assunto
Cod_as
descricao
22
Exerccio 5:
transformar relacionamentos n:n em tabelas
Ttulo
edicao
ISBN
Cod_liv
ano
Cod_ed
Livro
editado
Editora
UF
Endereco
Cod_ed
autoria
Cidade
CNPJ
Telefone
liv_assunto
Nome
Autor
Assunto
UF
Endereco Cidade
Cod_au
CPF
RG
descricao
Telefone
Cod_as
Nome
Exerccio 5
Ttulo
Cod_liv
edicao
ISBN
ano
Cod_ed
Livro
autoria
Autor
UF
Endereco
Cod_au
CPF
Cidade
RG
Telefone
Nome
23
Exerccio 5
Ttulo
Cod_liv
edicao
ISBN
Cod_ed
ano
Livro
liv_assunto
Assunto
create table asunto
( cod_as
numeric(3)
nome
varchar(40)
)
Cod_as
descricao
Resultado final
Cod_liv
Ttulo
edicao
ISBN
ano
Cod_ed
Livro
editado
Editora
UF
Endereco
Cod_ed
autoria
Cidade
CNPJ
liv_assunto
Telefone
Nome
Autor
Assunto
UF
Endereco Cidade
Cod_au
CPF
RG
descricao
Telefone
Cod_as
Nome
24
Resultado final
Livro
Editora
Cod_ed
Cod_ed
liv_assunto
Autoria
Cod_liv
telefone cidade UF
Cod_liv
Cod_au
Cod_as
Autor
Assunto
Cod_as
descricao
references livro(cod_liv)
on update cascade
on delete cascade,
references assunto(cod_as)
on update cascade
on delete cascade,
25