DML

Propaganda
Universidade de Passo Fundo
SQL – DML
Prof. Alexandre Tagliari Lazzaretti
[email protected]
vitoria.upf.tche.br/~lazzaretti
SQL
Linguagens
– DDL (Data Definition Language)
– DML (Data Manipulation Language)
- Possui 2 categorias:
- DML atualizações
- insert
- update
- delete
- DML consultas
- junção
- agregação
2
SQL

Comando insert:
insere uma ou mais tuplas em tabelas no banco de
dados
Sintaxe:
insert into <tabela> [<coluna(s)>] values <valores>
Exemplos:
1) insert into cidades values (1, ‘Casca’, ‘RS’)
2) insert into cidades (cod_cid, nome_cid) values (1, ‘Casca’)
3) insert into cidades (nome_cid, cod_cid) values (‘Casca’, 1)
3
SQL

Comando delete:
remove uma ou mais tuplas de uma tabela
Sintaxe:
delete from <tabela> where <condição>
Exemplos:
1)
2)
3)
delete from cidades where cidades.uf=‘RS’
Delete from cidades
Delete from cidades where codigo>=1 and codigo<=10
4
SQL

Comando update:
atualiza os dados de uma ou mais tuplas de uma tabela
Sintaxe:
UPDATE <tabela> SET <coluna(s)=‘valor’> WHERE
<condição>
Exemplos:
1) Update cidades set cidades.uf=‘PR’ where cidades.codigo=1
2) Update pessoas set salario=100, adicional=20 where
categoria=1
5
EXERCÍCIO
 Crie um banco de dados chamado CADDAT.FDB
baseado no modelo lógico abaixo:
CLIENTES
#codigo integer not null
Nome varchar(50) not null
@ cidade integer not null
@ bairro integer not null
BAIRROS
#codigo integer not null
descricao varchar(50) not null
CIDADES
#codigo integer not null
nome varchar(50) not null
Uf varchar(2) not null
6
Exercício - continuação
 Insira 5 tuplas em cada tabela através do
comando insert. Sendo que os códigos de chaves
primárias começam no 1 e terminam no 5
 Atualize o nome da pessoa de código = 2 para
´Maria Aparecida’
 Delete as tuplas de código 4 e 5 da tabela bairros
7
SQL

Consultas

Estrutura básica de uma consulta
SELECT campos
FROM tabelas
[WHERE condição]
[GROUP BY camposdeagrupamento
[HAVING condiçãodogrupo]]
[ORDER BY listadecampos]
8
SQL
SELECT campos
FROM tabelas
[WHERE condição]
[GROUP BY camposdeagrupamento
[HAVING condiçãodogrupo]]
[ORDER BY listadecampos]
Onde:
SELECT – indica os campos que serão mostrados, resultado da consulta
FROM – indica as tabelas que fazem parte da consulta
WHERE – pode-se especificar condições e realizar junções
GROUP BY – indica os campos que serão agrupados
HAVING – pode-se estabelecer uma condição sobre os campos que serão
agrupados
ORDER BY – indica a ordem de que será mostrado o resultado da
consulta
9
SQL

Exemplos:
1)
SELECT * FROM CIDADES
2)
SELECT CODIGO, NOME FROM CIDADES
3)
SELECT CODIGO, NOME FROM CIDADES ORDER BY NOME
4)
SELECT NOME FROM CIDADES WHERE UF=‘RS’ ORDER BY
NOME
10
SQL

Consultas junção



A junção existe quando necessita-se buscar dados
em mais de uma tabela, por exemplo, deseja-se
mostrar o nome do cliente (tabela CLIENTES ) e o
nome da cidade onde ele mora (tabela CIDADES)
A junção é sempre entre os campos que são chave
primária em uma tabela em relação aos campos que
são chave estrangeira em outra tabela, ou viceversa.
Caso as tabelas possuam o mesmo nome de campo,
deve-se colocar o nome da tabela antes do nome do
campo que será mostrado na cláusula SELECT

Exemplo: SELECT cidades.nome, clientes.nome, uf...
11
SQL
EXEMPLOS DE CONSULTAS JUNÇÃO:
select cidades.nome, clientes.nome, uf
from cidades,clientes
where cidades.codigo=clientes.cidade
Order by clientes.nome
Select clientes.nome, cidades.nome, bairros.descricao
From cidades, bairros, clientes
Where clientes.cidade=cidades.codigo and
bairros.codigo=clientes.bairro
Order by bairros.descricao, clientes.nome
12
SQL - DML
 Definindo “apelidos”
Select cli.nome as nomecli, cid.nome
From clientes cli, cidade cid
where cli.cidade=cid.codigo
Order by cli.nome
- cli e cid são os “apelidos” das tabelas
- as nomecli define um nome para o campo
13
SQL

Consultas agregação


São criadas quando deseja-se agregar valores por
determinados campos
Exemplo: baseado no modelo abaixo deseja-se mostrar o
nome da cidade e calcular a quantidade de pessoas que
moram nesta cidade, qual seria o resultado da consulta?
CIDADES
Codigo | Nome | UF
1
| Marau | RS
2
| Sertão | RS
RESULTADO
NOME | CONT
Marau | 2
Sertão | 1
PESSOAS
Codigo | Nome
100 | Pedro
102 | Maria
103 | José
| Cidade
|
1
|
1
|
2
14
SQL
CONSULTA:
SELECT CIDADES.NOME, COUNT(*) AS CONT
FROM CIDADES, PESSOAS
WHERE PESSOAS.CIDADE=CIDADES.CODIGO
GROUP BY CIDADES.NOME --- AGRUPAMENTO
ORDER BY CIDADES.NOME
Considerações:
•
Deverão aparecer na cláusula GROUP BY os campos que
não possuem função
•
Se colocar o código da pessoa na cláusula select, qual
seria o resultado da consulta?
15
SQL
Funções sobre grupos:





count: contagem de linhas
sum: soma de linhas
max: máximo
mim: mínimo
avg: média

Exemplos:
1.
2.
select count(*) from cidades
Select nome, sum (qtde*valor) as total
from clientes, vendas, vendas_itens
where clientes.codigo=vendas.cliente and
vendas.codigo=vendas_itens.venda
group by nome
16
Download