Universidade de Passo Fundo SQL DML Prof Alexandre

  • Slides: 16
Download presentation
Universidade de Passo Fundo SQL – DML Prof. Alexandre Tagliari Lazzaretti lazzaretti@upf. br vitoria.

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

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

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

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 where codigo>=1 and codigo<=10 4

SQL Ö Comando update: atualiza os dados de uma ou mais tuplas de uma

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 o Crie um banco de dados chamado CADDAT. FDB baseado no modelo lógico

EXERCÍCIO o 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 o Insira 5 tuplas em cada tabela através do comando insert.

Exercício - continuação 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

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

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

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

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

SQL EXEMPLOS DE CONSULTAS JUNÇÃO: select cidades. nome, clientes. nome, uf from cidades, clientes

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 o Definindo “apelidos” Select cli. nome as nomecli, cid. nome From

SQL - DML o 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

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

SQL CONSULTA: SELECT CIDADES. NOME, COUNT(*) AS CONT FROM CIDADES, PESSOAS WHERE PESSOAS. CIDADE=CIDADES.

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: Ö Ö Ö 1. 2. count: contagem de linhas sum:

SQL Funções sobre grupos: Ö Ö Ö 1. 2. 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_itens where clientes. codigo=vendas. cliente and vendas. codigo=vendas_itens. venda group by nome 16