Sei sulla pagina 1di 86

CENTRO UNIVERSITRIO DE BARRA MANSA

COPEP COORDENADORIA DE PS-GRADUAO E PESQUISA


PS-GRADUAO EM TECNOLOGIA E PROJETO DE BANCO DE DADOS

lgebra relacional e a Linguagem SQL


Prof. Anderson Simeo

CONTEDO PROGRAMTICO
1.

Estrutura dos bancos de dados relacionais

2.

Operaes fundamentais de lgebra relacional (seleo, projeo, unio,


diferena de conjuntos, produto cartesiano, renomeao )

3.

Outras operaes de lgebra relacional (interseo de conjuntos, juno


natural, diviso , atribuio )

4.

Operaes estendidas da lgebra relacional ( projeo generalizada, funes


agregadas, junes externas, valores nulos)

5.

Modificao do banco de dados ( Excluso, Insero, Atualizao )

6.

Historia do SQL

7.

Definio de dados e estrutura bsica das consultas SQL

8.

Operaes de conjuntos

9.

Funes agregadas e valores nulos

10.

Subconsultas aninhadas

11.

Consultas complexas e vises

12.

Modificao de banco de dados

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

BIBLIOGRAFIA
BSICA:
C.J. DATE INTRODUO A SISTEMAS DE BANCO DE DADOS
ABRAHAM SILBERSCHATZ / HENRY F. KORTH / S. SUDARSHAN
SISTEMAS DE BANCO DE DADOS
COMPLEMENTAR:
C.J. DATE - SQL AND RELATIONAL THEORY: HOW TO WRITE
ACCURATE SQL CODE
KOPPELAARS, TOON / HANN, LEX DE APPLIED MATHEMATICS FOR
DATABASE PROFESSIONALS
MARKLYN, BILL / WHITEHORN MARK INSIDE RELATIONAL DATABASE

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

COMPOSIO DA NOTA
PRIMEIRA LISTA DE EXERCCIOS - VALOR: 2,0
SEGUNDA LISTA DE EXERCCIOS VALOR: 2,0
PROVA VALOR: 6,0

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Captulo 1
O Modelo Relacional

Modelo Relacional - Histrico

Foi introduzido por Codd (1970);


Tornou-se um padro de fato para aplicaes
comerciais, devido sua simplicidade e
performance;
um modelo formal, baseado na teoria
matemtica das relaes;
Um
dos
SGBDs
precursores
que
implementaram este modelo foi o System R
(IBM).
Baseados
em
seus
conceitos,
surgiram: DB2 (IBM), SQL-DS (IBM), Oracle,
Informix, Ingres, Sybase entre outros.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional

O Modelo Relacional representa os dados


em um BD como uma coleo de relaes
(tabelas);
Cada tabela ter um nome, que ser nico,
e um conjunto de atributos (colunas) com
seus respectivos nomes e domnios;
Todos os valores de uma coluna so do
mesmo tipo de dados.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional


Exemplo: Tabela de empregados de uma empresa
Matr

Nome

Ender

Funo

Salario

Dep

100

Ana

Rua da Juaras, 12

Secretri
a

700,00

D1

250

Pedro

Rua J. Silva, 24

Engenhei
ro

2000,0
0

D1

108

Andr

Rua Itlia, 33

Tcnico

1000,0
0

D2

210

Paulo

Rua Par, 98

Engenhei
ro

2200,0
0

D2

105

Snia

Rua Oliveiras, 76

Engenhei
ro

2500,0
0

D1

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional

Terminologia
Na terminologia de BD Relacional, uma linha chamada
tupla, um nome de coluna chamado atributo e uma
tabela chamada relao;
Definies
Domnio: Um domnio D um conjunto de valores
atmicos.
Ex.
Fone: conjunto de 10 dgitos;
CPF: conjunto de 11 dgitos;
Idade_Empregado: 16 <= idade <= 70;
Departamentos: conjunto de departamentos de uma
empresa.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional

A cada domnio est associado um tipo de dados


ou formato.
Ex.: Fone (dd)dddd-dddd onde d={0,1,...,9};
Idade_Empregado: inteiros entre 16 e 70.
Um esquema de relao R denotado por R(A1,
A2, ..., Na), um conjunto de atributos R =
{A1, A2,...,An}.
O grau de uma relao o nmero de atributos
que seu esquema contm.
Ex.: Seja o esquema estudante (matrcula,
nome, fone, idade, curso) grau = 5.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional

A ordem das tuplas e dos atributos no tem


importncia;
Todo atributo possui valor atmico;
Cada atributo em uma relao tem um
nome que nico dentro da relao;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional

Chave
Primria:

o
atributo
que
identifica/individualiza uma tupla dentro de uma
relao (Integridade de chave);
Nenhum valor de chave primria pode ser NULO
(Integridade de entidade);
Uma relao pode ter atributos que contm
valores com mesmo domnio de um conjunto de
atributos que forma a chave primria de uma
outra relao;
Estes
atributos
so
chamados
CHAVE
ESTRANGEIRA (Integridade Referencial).

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional


Exemplo de Integridade Referencial:
Departamento
Dep

Nome

D2

Produo

D1

Custos

D5

Pessoal

Empregado
Matr

Nome

Ender

Funo

Salario

Dep

100

Ana

Rua da Juaras, 12

Secretri
a

700,00

D1

250

Pedro

Rua J. Silva, 24

Engenhei
ro

2000,0
0

D1

108

Andr

Rua Itlia, 33

Tcnico

1000,0
0

D2

210

Paulo

Rua Par, 98

Engenhei
ro

2200,0
0

D2

105

Snia

Rua Oliveiras, 76

Engenhei
ro

2500,0
0

D1

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional

Um conjunto de atributos de uma relao R1


uma chave estrangeira se satisfaz s seguintes
regras:
- Os atributos da chave estrangeira tm o mesmo
domnio dos atributos da chave primria de outra
relao R2;
- Um valor da chave estrangeira em uma tupla t1
de R1 possui o mesmo valor da chave primria
para alguma tupla t2 em R2 ou NULO;
- A integridade referencial estabelece que todo
valor de chave estrangeira em uma relao deve
corresponder a um valor de chave primria de
uma segunda relao ou deve ser nulo.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Conceitos do Modelo Relacional

Uma chave estrangeira pode referenciar-se

sua
prpria
relao
(autorelacionamento).
Exemplo: Empregado (matrcula, nome,
salrio, matr_supervisor).

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Operaes de atualizao em relaes

Insero:
- 1. Inserir
<102,Andr,null,Engenheiro,1980,00,D2
> => aceito sem problemas.
2. Inserir
<100,Maria,null,Tcnica,950.00,D1>
=> viola a restrio de chave.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Operaes de atualizao em relaes


Insero:
- 3. Inserir
<null,Ceclia,null,Engenheiro,1950.00,D1> =>
viola restrio de integridade de entidade.
4. Inserir
<108,Mauro,Rua 4,Tcnico,980.00,B6>
viola a restrio de integridade referencial.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Operaes de atualizao em relaes

Insero
O que fazer quando se detectar uma
violao de integridade?
- Rejeitar a insero (podendo explicar o
porqu);
- Tentar corrigir a anomalia para depois
inserir.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Operaes de atualizao em relaes

Remoo
1. Remover da tabela Empregado a
tupla com matrcula = 100
=>
Remoo aceita sem problemas.
2. Remover da tabela Departamento a
tupla com Dep = D1 => Viola a regra
de integridade referencial, pois existem
empregados que esto alocados neste
departamento.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Operaes de atualizao em relaes

Remoo
- O que fazer quando em uma remoo
ocorrer uma violao?
- Rejeitar a remoo;
- Dar o efeito cascata na remoo,
removendo todas as tuplas referenciadas
por aquela tupla que est sendo removida.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Operaes de atualizao em relaes

Modificao
1. Modificar o salrio do empregado com
matrcula = 250
=> operao aceita sem problemas.
2. Modificar o departamento da tupla de
empregado com matrcula 210 para D1
=> operao aceita sem problemas.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Operaes de atualizao em relaes

Modificao
3. Modificar o departamento do empregado
com matrcula = 108 para D9 viola a
integridade referencial;
4. Modificar a matrcula do empregado
100 para 250 => viola a regra de
identidade de chave.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Captulo 2
lgebra Relacional

lgebra Relacional

uma linguagem de banco de dados procedural e


formal.
- Seja o esquema relacional de uma empresa
hipottica, a seguir:
- Empregado(matrE, nomeE, endereo, sexo,
salrio, supervisor, depto)
- Departamento (codD, nomeD, matrGer)
- Deplocalizaes (codD, Localizao)
- Alocao (matrE, codProj, num_horas)
Projetos
(codProj,
nome,
localizao,
depControla)
- Dependentes (matrEmp, nomeD, sexo, dataNasc,
parentesco)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Usaremos o esquema do slide anterior para


exemplificar os diversos operadores da
lgebra Relacional;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Operao de Seleo ()
- Seleciona um subconjunto de tuplas de uma
relao, de acordo com uma condio;
- Sintaxe: <predicado> (<Relao>)
- onde = operador de seleo
- Predicado: <atributo> <op> <constante>
ou
<atributo> <op> <atributo>
- <op> = {=, >, <, , , }
- No predicado pode-se ter as clusulas ligadas
pelos conectivos booleanos AND, OR e NOT.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Exemplo 1: Selecionar os empregados que


trabalham no departamento D1.
depto=D1(Empregado)

Exemplo 2: Selecionar os empregados que


ganham mais de 3000,00.
salario>3000(Empregado)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Exemplo 3: Selecionar os empregados que


ganham mais de 1500,00 e trabalham no
departamento D1 ou que ganham menos de
1000,00 e trabalham no departamento D2.
(salario>1500 and depto=D1) or (salario<1000 and depto=D2)
(Empregado)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

O operador de seleo unrio (aplicvel a


apenas uma relao);
O grau da relao resultante o mesmo da
relao original;
O nmero de tuplas da relao resultante
menor ou igual ao nmero de tuplas da
relao original.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Operao de Projeo ()
- Produz um subconjunto de atributos de
uma dada relao;
-Sintaxe: <LISTA DE ATRIBUTOS>(<Relao>)

Exemplo: Obter o nome e o salrio de


todos os empregados.
nomeE,salrio(Empregado)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Se a lista de atributos inclui apenas atributos


no-chave,
tuplas
duplicadas
podero
aparecer no resultado, porm a operao de
projeo elimina esta duplicao;
O operador de projeo unrio (aplicvel a
apenas uma relao);
O nmero de tuplas da relao resultante
menor ou igual ao nmero de tuplas da
relao original.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Combinando Seleo e Projeo:


- Exemplo: Obter o nome e o salrio dos
empregados do departamento D1:
nomeE,salrio(depto=D1(Empregado))

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Alternativamente, podemos utilizar uma


notao que usa uma seqncia de
resultados dando nome as relaes
intermedirias:
EmpDepto1 depto=D1(Empregado)
Resultado nomeE,salrio(EmpDepto1)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Unio ()
A unio de duas relaes, R S, o
conjunto das tuplas que esto em R, ou em
S,
ou
em
ambas.
Duplicatas
so
eliminadas.
As relaes R e S tm que ser uniocompatveis, isto , tm que conter as
mesmas colunas.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional
R

A
a
d
c

RS

B
b
a
b

C
c
f
d

A
b
d

B
g
a

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

C
a
f

A
a
d
c
b

B
b
a
b
g

C
c
f
d
a

lgebra Relacional

Exemplo:
Obter a matrcula dos empregados que ganham
mais que 1000,00 ou que trabalham
no
departamento D1.

Emp1000 salrio>1000(Empregado)
EmpDepto1 dep=D1(Empregado)
Resultado matrE(Emp1000)
matrE(EmpDepto1)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Interseo ()
A interseo de duas relaes, R S, o
conjunto das tuplas que esto em R e em
S.
As relaes R e S tm que ser uniocompatveis, isto , tm que conter as
mesmas colunas.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional
R

A
a
d
c

RS

B
b
a
b

C
c
f
d

A
b
d

B
g
a

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

C
a
f

A
d

B
a

C
f

lgebra Relacional

Exemplo:
Obter a matrcula dos empregados que ganham
mais que 1000,00 e trabalham
no
departamento D1.
Emp1000 salrio>1000(Empregado)
EmpDepto1 depto=D1(Empregado)
Resultado matrE(Emp1000) matrE(EmpDepto1)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Diferena (-)
A diferena entre duas relaes, R - S, o
conjunto das tuplas que esto em R mas
no esto em S.
As relaes R e S tm que ser uniocompatveis, isto , tm que conter as
mesmas colunas.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional
R

A
a
d
c

B
b
a
b

C
c
f
d

A
b
d

R-S

B
g
a

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

C
a
f

A
a
c

B
b
b

C
c
d

lgebra Relacional

Exemplo:
Obter a matrcula dos empregados que ganham
mais que 1000,00 e no trabalham
no
departamento D1.
Emp1000 salrio>1000(Empregado)
EmpDepto1 depto=D1(Empregado)
Resultado matrE(Emp1000) - matrE(EmpDepto1)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Produto Cartesiano
O produto cartesiano de duas relaes R X
S combina cada tupla de R com cada tupla
de S.
O
resultado
de
R(A1,A2,...,An)
X
S(B1,B2,...,Bm) uma relao T com n +
m atributos:
T(A1,A2,...,An, B1,B2,...,Bm).

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Exemplo: Para cada empregado do sexo


feminino, obter uma lista dos nomes de
seus dependentes.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Mulher sexo=F(Empregado)

NomesMulheres matrE,nomeE(Mulher)

DependentesMulher1
NomesMulheres X Dependentes
DependentesMulher2
matrE=matrEmp(DependentesMulher1)

ResultadonomeD,nomeE(DependentesMulher2)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Juno
A juno de duas relaes A e B, A |X| B,
produz uma combinao entre as tuplas da
relao A com as tuplas correspondentes
da relao B, sendo em princpio
correspondente a uma seleo pelos
atributos de relacionamento sobre o
produto cartesiano dessas tabelas.
A |X| B = A.chave1=B.chave2(AXB)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Exemplo: Obter o nome do gerente de cada


departamento.
DeptoGer Departamento |X|
matrGer=MatrE
Empregado
NomeGerente nomeD,nomeE(DeptoGer)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Operador de Diviso ()
um operador adicional que produz como
resultado a projeo de todos os elementos
da primeira tabela que se relacionam com
todos os elementos da segunda tabela.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

lgebra Relacional

Exemplo:

R
A
a1
a2
a3
a4
a1
a3
a2
a3
a4
a1
a2
a3

B
b1
b1
b1
b1
b2
b2
b3
b3
b3
b4
b4
b4

S
A
a1
a2
a3

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Captulo 3
Linguagem SQL

Histrico

A linguagem SQL surgiu em meados da


dcada de 70, sendo resultado de um
estudo de E. F. Codd, membro do
laboratrio de pesquisa da IBM em San
Jos, Califrnia, E. U. A. Este estudo tinha
foco em desenvolver uma linguagem que
adaptasse ao modelo relacional. O primeiro
sistema de BD baseado em SQL tornou-se
comercial no final dos anos 70.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Histrico

O sucesso da linguagem foi to grande


que obrigou o ANSI (American National
Standard Institute) a padronizar as
implementaes da linguagem.
Assim, nos dias de hoje, a maior parte
dos BDs seguem criteriosamente esta
padronizao, podendo ter algumas
variaes, mas mesmo assim no
afetando na padronizao global da
linguagem,
tornando
assim
a
portabilidade mais fcil.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Divises da linguagem SQL

A linguagem SQL possui comandos divididos


em trs grupos, que so:
DDL
DML
DCL

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Divises da Linguagem SQL

DDL
(Data
Definition
Language)
ou
Linguagem de Definio de Dados
Permite ao usurio o manuseio de tabelas e
elementos associados, tipo chaves primrias,
chaves estrangeiras, ndices etc.
Normalmente,
est
restrita
aos
Administradores de Base de Dados.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Divises da Linguagem SQL

DML (Data Manipulation Language) ou


Linguagem de Manipulao de Dados
Usada para inserir, modificar, remover ou
consultar dados;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Divises da Linguagem SQL

DCL (Data Control Language) ou Linguagem


de Controle de Dados
Controla os aspectos destinados a autorizao
de dados e licenas de usurios para
manipulao de dados dentro do BD.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Criao de tabelas
Para a criao de tabelas em um banco de
dados, utiliza-se o comando CREATE TABLE.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Forma geral:
CREATE TABLE <nome-da-tabela>
(<campo-1> <tipo de dado-1>,
...
<campo-n> <tipo de dado-n>,
[clusulas adicionais]);

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Tipos de dados:
Integer: valores numricos inteiros;
Number: valores numricos;
Varchar: valores alfanumricos;
Date: datas.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Clusulas adicionais:
Primary Key: chave primria;
Foreign Key: chave estrangeira;
Not null: campos requeridos;
Check: restrio de valores;
Default: valores padro.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Exemplos de criao de tabelas:


Tabela Departamento:
create table depart
(dep_cod integer,
dep_nome varchar(20) not null,
primary key(dep_cod));

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL
Tabela Funcionrio:
create table func
(fun_matr integer,
fun_nome varchar(40) not null,
fun_sexo varchar(1) not null,
fun_dt_adm date not null,
fun_salar number(5,2) default 1000 not null,
dep_cod integer not null,
primary key (fun_matr),
foreign key (dep_cod) references depart(dep_cod),
check (fun_sexo in (M,F)));

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Alterao de tabelas
Para alterar estruturas de tabelas, usa-se o
comando ALTER TABLE.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Forma Geral:
ALTER TABLE <nome-da-tabela>
[add <campo> <tipo-de-dado>
<[clusulas adicionais]>]
ou
[drop <campo>];

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Exemplo1:
Adicionar o campo fun_email na tabela de
funcionrios:
alter table func
add fun_email varchar(30);

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Exemplo 2:
Remover o campo para e-mail na tabela de
funcionrios:
alter table func
drop column fun_email;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Remoo de tabelas
Para remover tabelas, utiliza-se o comando
DROP TABLE.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Forma geral:
DROP TABLE <nome-da-tabela>;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DDL

Exemplo: Remover a tabela de funcionrios.

drop table func;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Divises da Linguagem SQL

DML (Data Manipulation Language)


Conjunto de comandos responsveis pela
atualizao
e
consulta
dos
dados
armazenados em um banco de dados.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Incluso de tuplas

O comando utilizado
operao o INSERT.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

para

este

tipo

de

Comandos DML

Forma geral:
INSERT INTO <nome-da-tabela>
(<campo-1,...,campo-n>)
VALUES
(<contedo-1,...,contedo-n>);

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Exemplo: Incluir uma tupla na tabela de


funcionrios.
insert into func
(fun_matr,fun_nome,fun_sexo,fun_dt_adm,fun_salar,dep_
cod,car_cod)
values
(123,Paulo Santos,M,10/05/1998,1000,05,01);

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

O mesmo exemplo, porm omitindo-se o


nome das colunas.
insert into func
values
(123,Paulo Santos,M,10/05/1998,1000,05,01);

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

O mesmo exemplo, porm omitindo-se o


nome das colunas.
Insert into func
values
(123,Paulo Santos,M,10/05/1998,1000,05);
Nesse caso, os valores devem ser fornecidos na
mesma ordem em que as colunas foram definidas na
criao da tabela.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

O mesmo exemplo, porm omitindo-se o


nome de algumas colunas e mudando-se a
ordem.
insert into func
(fun_nome,fun_sexo,fun_dt_adm,dep_cod,fun_matr,car_cod)
values
(Paulo Santos,M,10/05/1998,05,123,01);

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

O mesmo exemplo, porm omitindo-se o


nome de algumas colunas e mudando-se
a ordem.
insert into func
(fun_nome,fun_sexo,fun_dt_adm,dep_cod,fun_matr)
values
(Paulo Santos,M,10/05/1998,05,123);
Nesse caso, as colunas omitidas recebem o valor
NULL ou o valor definido na clusula DEFAULT.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Alterao de tuplas

Para modificar alguma informao existente


em alguma tupla, utiliza-se o comando
UPDATE.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Forma geral:
UPDATE <tabela>
SET <coluna>=<valor>
[WHERE <condies>];

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Exemplo 1: Alterar o valor do salrio de todos


os funcionrios para 1500,00.
update func
set fun_salar = 1500;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Exemplo 2: Alterar o valor do salrio de todos


os funcionrios lotados no departamento 03
para 1800,00.
update func
set fun_salar = 1800
where dep_cod = 03;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Remoo de tuplas

Para este tipo de operao, o


utilizado o DELETE.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

comando

Comandos DML

Forma geral:
DELETE
FROM <tabela>
[WHERE <condies>];

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Exemplo 1: Remover todas as informaes de


funcionrios.
delete
from func;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Comandos DML

Exemplo 2: Remover todas as informaes de


funcionrios lotados no departamento 11.
delete
from func
where dep_cod = 11;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Exerccios

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: lgebra Relacional e a Linguagem SQL

Potrebbero piacerti anche