A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SQL Álvaro Vinícius de Souza Coêlho

Apresentações semelhantes


Apresentação em tema: "SQL Álvaro Vinícius de Souza Coêlho"— Transcrição da apresentação:

1 SQL Álvaro Vinícius de Souza Coêlho

2 SQL Sigla de Structured Query Language Desenvolvida no hoje Centro de Pesquisa Almadem (IBM) Início dos anos 70 1 o Produto comercial, Oracle RDBMS (Oracle Co), o Padrão publicado pelo Ansi em 1986

3 SQL Estrutura básica Select a1, a2,... an From r1, r2, …, rn Where P

4 SQL Mostrar as agências onde há depósito select agencia_nome from deposito

5 SQL Para suprimir as repetições Select distinct agencia_nome From deposito

6 SQL Mostrar a cidade e o nome dos clientes com empréstimo em alguma agência select distinct cliente.cliente_nome, cliente_cidade from empréstimo, cliente where cliente.cliente_nome = empréstimo.cliente_nome

7 SQL O nome da tabela na cláusula From é desnecessário quando não há ambigüidade Pode-se substituir o nome da tabela por variáveis tipo tupla... from empréstimo e, cliente c where c.cliente_nome = e.cliente_nome

8 SQL O nome das colunas é desnececssário quando todas as colunas forem selecionadas. Usa-se o * select * from agencia

9 SQL Os conectores lógicos são and, or e not Mostrar o nome e a cidade dos clientes com empréstimo na agência Cruzeiro select distinct c.cliente_nome, c.cliente_cidade from empréstimo e, cliente c where e.cliente_nome = c.cliente_nome and e.agencia_nome = Cruzeiro

10 SQL Pode-se usar os comparadores =, <>, >, >=, <, <=, like e between Mostrar as contas com saldo entre e select conta_numero from deposito where saldo >= and saldo <=

11 SQL O operador between simplifica consultas deste tipo:... where saldo between and

12 SQL MetaCaracteres Substituição de cadeias de caracteres: % e _ % substitui uma seqüência qualquer de caracteres _ substitui um único caractere

13 SQL like Santo% aceita qualquer nome começado assim Santos, Santo Estêvão, Santo André, etc. like Dom Pedro _ aceita qualquer caractere (logo não pode formar Dom Pedro II) Usa-se o comparador like

14 SQL Mostre o nome de todos os clientes começados com a letra A (sic) select cliente_nome from clientes where cliente_nome like A%

15 SQL Comparação de conjuntos: IN Mostrar todas as agências que ficam em Ilhéus ou em Itabuna select agencia_nome from agencia where agencia_cidade in (Ilhéus, Itabuna)

16 SQL Pode-se usar in para verificar a pertinência em conjuntos formados a partir de outras consultas (subquery) Característica de SQL não presente em QBE ou Quel

17 SQL Mostrar as agências com ativos maiores que algum dos ativos de Ilhéus select agencia_nome from agencia where ativos > Some (select ativos from agencia where agencia_cidade = Ilhéus)

18 SQL Mostrar as agências com ativos maiores do que qualquer agência no Ilhéus select agencia_nome from agencias where ativos > All (select ativos from agencia where agencia_cidade = Ilhéus)

19 SQL Some: algum. All: qualquer (todos) Poderia-se usar, conforme será mostrado, Min e Max. Qual a diferença?

20 SQL Exists: Mostre os clientes e as cidades que possuem pelo menos uma conta em Cruzeiro Select distinct cliente_nome, cliente_cidade From cliente c Where exists (select cliente_nome from depositos Where agencia_nome = Cruzeiro)

21 SQL Exists pára a verificação e retorna TRUE se algum elemento surge na seleção, ou segue até o fim caso contrário.

22 SQL Ordenação - order by: Mostre os clientes em ordem alfabética Select cliente_nome From cliente Order by cliente_nome

23 SQL O SQL Ordena, por padrão, em ordem crescente. Caso se deseje ordenação inversa, usa-se desc após o nome da coluna

24 SQL Pode-se ordenar mais de uma coluna: Mostrar os clientes em ordem crescente, com os respectivos saldos de conta em ordem decrescente Select cliente_nome, saldo From depósitos Order by cliente_nome, saldo desc

25 SQL Agregação O SQL contém as funções de agregação AVG, MIN, MAX, SUM e COUNT Mostrar a média dos saldos em Cruzeiro select avg(saldo) from deposito where agencia_nome – Cruzeiro

26 SQL Mostrar também quantas contas tem a agência Cruzeiro select avg(saldo), count(distinct conta_numero) from deposito where agencia_nome = Cruzeiro

27 SQL Agrupamento: Group by Mostre a media dos saldos e o número de contas de todas as agências select agencia_nome,avg(saldo), count(distinct conta_numero) from deposito group by agencia_nome

28 SQL Caso se desejasse ordenar pelo nome da agência, era necessário acrescentar Order by agencia_nome

29 SQL Condicionando grupos: having Having é como um where, mas serve para as funções de agrupamento.

30 SQL Mostrar a média dos saldos e o número de contas de todas as agências com média inferior a 1200 select agencia_nome,avg(saldo), count(distinct conta_numero) from deposito group by agencia_nome having avg(saldo) < 1200 order by agencia_nome

31 SQL DML em SQL Exclusão: Delete Delete r Where p Remover todos os empréstimos cadastrados delete emprestimo

32 SQL Remover os depositos da cidade de Ilhéus delete depósitos where agencia_nome in (select agencia_nome from agencias where agencia_cidade = Ilhéus)

33 SQL Inclusão: Insert Insert into t (a1, a2,..., an) Values (v1, v2, … vn)

34 SQL A lista (a1, a2, …, an) pode ser dispensada se todas as colunas forem valoradas e a ordem dos dados for a mesma da estrutura da tabela

35 SQL Incluir o depósito de 1200 em nome de Sandra na agência Cruzeiro, conta número 9732 insert into deposito values (Cruzeiro, 9732, Sandra, 1200)

36 SQL Incluir o depósito em nome de Sandra na agência Cruzeiro, conta número Não especificar valor insert into deposito (agencia_nome, conta_numero, cliente_nome) values (Cruzeiro, 2997, Sandra)

37 SQL Incluir a partir de outras tabelas – O velho exemplo: Incluir um depósito de 200 para clientes de Cruzeiro, com número da conta igual ao número do empréstimo Insert into deposito Values (select Cruzeiro, e.emp_numero, e.cliente_nome, 200 From empréstimos e Where e.agencia_nome = Cruzeiro)

38 SQL Atualização. Update Update t Set c1 = u1, c2 = u2,..., cn = un Where P

39 SQL Pagar juros de 5% a todas as contas update deposito set saldo = 1.05*saldo Pagar juros de 5% às contas com saldo inferior a e 6% às demais – duas operações (não esquecer: a ordem é relevante).

40 SQL update depósitos set saldo = 1.06*saldo where saldo > update depósitos set saldo = 1.05*saldo where saldo <= 10000

41 SQL Recursos adicionais Teste de nulo (is null) ou não nulo (is not null)... where saldo is (not) null

42 SQL Visões: create view Create view v as (consulta) Caso seja necessária uma visão com todos os clientes cujas contas tem saldo sem valor (nulo):

43 SQL Create view Cliente_Conta as ( Select cliente_nome From depósitos Where saldo is null Order by cliente_nome)

44 SQL Uma consulta a esses clientes agora pode ser feita assim: Select Cliente_Nome from Cliente_Conta

45 O que são Bancos de Dados. FIM! Melhor cair em contradição do que cair do oitavo andar Barão de Itararé Escher


Carregar ppt "SQL Álvaro Vinícius de Souza Coêlho"

Apresentações semelhantes


Anúncios Google