1 / 16

Universidade de Passo Fundo

Universidade de Passo Fundo. SQL – DML Prof. Alexandre Tagliari Lazzaretti lazzaretti@upf.br vitoria.upf.tche.br/~lazzaretti. SQL. Linguagens – DDL (Data Definition Language) – DML (Data Manipulation Language) - Possui 2 categorias: - DML atualizações - insert - update - delete

kolina
Download Presentation

Universidade de Passo Fundo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Universidade de Passo Fundo SQL – DMLProf. Alexandre Tagliari Lazzarettilazzaretti@upf.brvitoria.upf.tche.br/~lazzaretti

  2. 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

  3. 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)

  4. SQL • Comando delete: remove uma ou mais tuplas de uma tabela Sintaxe: delete from <tabela> where <condição> Exemplos: • delete from cidades where cidades.uf=‘RS’ • Delete from cidades • Delete from cidades where codigo>=1 and codigo<=10

  5. 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

  6. 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

  7. 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

  8. SQL • Consultas • Estrutura básica de uma consulta SELECT campos FROM tabelas [WHERE condição] [GROUP BY camposdeagrupamento [HAVING condiçãodogrupo]] [ORDER BY listadecampos]

  9. 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

  10. SQL • Exemplos: • SELECT * FROM CIDADES • SELECT CODIGO, NOME FROM CIDADES • SELECT CODIGO, NOME FROM CIDADES ORDER BY NOME • SELECT NOME FROM CIDADES WHERE UF=‘RS’ ORDER BY NOME

  11. 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 vice-versa. • 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...

  12. 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

  13. 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

  14. RESULTADO NOME | CONT Marau | 2 Sertão | 1 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 PESSOAS Codigo | Nome | Cidade 100 | Pedro | 1 102 | Maria | 1 103 | José | 2

  15. 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?

  16. SQL Funções sobre grupos: • count: contagem de linhas • sum: soma de linhas • max: máximo • mim: mínimo • avg: média • Exemplos: • 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

More Related