Universidade de Passo Fundo

16
Universidade de Passo Fundo SQL – DML Prof. Alexandre Tagliari Lazzaretti [email protected] vitoria.upf.tche.br/~lazzaretti

description

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 - PowerPoint PPT Presentation

Transcript of Universidade de Passo Fundo

Page 1: Universidade de Passo Fundo

Universidade de Passo Fundo

SQL – DML

Prof. Alexandre Tagliari [email protected]

vitoria.upf.tche.br/~lazzaretti

Page 2: Universidade de Passo Fundo

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

Page 3: Universidade de Passo Fundo

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)

Page 4: Universidade de Passo Fundo

4

SQL Comando delete:

remove uma ou mais tuplas de uma tabela

Sintaxe:delete from <tabela> where <condição>

Exemplos:1) delete from cidades where cidades.uf=‘RS’2) Delete from cidades3) Delete from cidades where codigo>=1 and codigo<=10

Page 5: Universidade de Passo Fundo

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=12) Update pessoas set salario=100, adicional=20 where categoria=1

Page 6: Universidade de Passo Fundo

6

EXERCÍCIO Crie um banco de dados chamado CADDAT.FDB

baseado no modelo lógico abaixo:

CLIENTES#codigo integer not nullNome varchar(50) not null@ cidade integer not null@ bairro integer not null

BAIRROS#codigo integer not nulldescricao varchar(50) not null

CIDADES#codigo integer not nullnome varchar(50) not nullUf varchar(2) not null

Page 7: Universidade de Passo Fundo

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

Page 8: Universidade de Passo Fundo

8

SQL Consultas

Estrutura básica de uma consulta

SELECT camposFROM tabelas[WHERE condição][GROUP BY camposdeagrupamento

[HAVING condiçãodogrupo]][ORDER BY listadecampos]

Page 9: Universidade de Passo Fundo

9

SQLSELECT camposFROM tabelas[WHERE condição][GROUP BY camposdeagrupamento

[HAVING condiçãodogrupo]][ORDER BY listadecampos]

Onde:SELECT – indica os campos que serão mostrados, resultado da consultaFROM – indica as tabelas que fazem parte da consultaWHERE – pode-se especificar condições e realizar junçõesGROUP BY – indica os campos que serão agrupadosHAVING – pode-se estabelecer uma condição sobre os campos que serão

agrupadosORDER BY – indica a ordem de que será mostrado o resultado da consulta

Page 10: Universidade de Passo Fundo

10

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

Page 11: Universidade de Passo Fundo

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

Page 12: Universidade de Passo Fundo

12

SQLEXEMPLOS DE CONSULTAS JUNÇÃO:

select cidades.nome, clientes.nome, uf from cidades,clientes where cidades.codigo=clientes.cidadeOrder by clientes.nome

Select clientes.nome, cidades.nome, bairros.descricaoFrom cidades, bairros, clientesWhere clientes.cidade=cidades.codigo and

bairros.codigo=clientes.bairroOrder by bairros.descricao, clientes.nome

Page 13: Universidade de Passo Fundo

13

SQL - DML

Definindo “apelidos”

Select cli.nome as nomecli, cid.nomeFrom clientes cli, cidade cidwhere cli.cidade=cid.codigoOrder by cli.nome

- cli e cid são os “apelidos” das tabelas- as nomecli define um nome para o campo

Page 14: Universidade de Passo Fundo

14

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?

CIDADESCodigo | Nome | UF 1 | Marau | RS 2 | Sertão | RS

PESSOASCodigo | Nome | Cidade 100 | Pedro | 1 102 | Maria | 1 103 | José | 2

RESULTADONOME | CONTMarau | 2Sertão | 1

Page 15: Universidade de Passo Fundo

15

SQLCONSULTA:

SELECT CIDADES.NOME, COUNT(*) AS CONTFROM CIDADES, PESSOASWHERE PESSOAS.CIDADE=CIDADES.CODIGOGROUP BY CIDADES.NOME --- AGRUPAMENTOORDER 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?

Page 16: Universidade de Passo Fundo

16

SQLFunções sobre grupos:

count: contagem de linhas sum: soma de linhas max: máximo mim: mínimo avg: média

Exemplos:1. select count(*) from cidades2. Select nome, sum (qtde*valor) as total

from clientes, vendas, vendas_itenswhere clientes.codigo=vendas.cliente and

vendas.codigo=vendas_itens.venda group by nome