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

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

SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena

Apresentações semelhantes


Apresentação em tema: "SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena"— Transcrição da apresentação:

1 SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
Baseado no capítulo 4 de Sistema de Banco de Dados, H. Korth, et all.

2 Valores Nulos Na definição da tabela podemos definir algumas colunas como nulas. A palavra-chave null como predicado para testar a existência de valores nulos. Select num_emprestimos From emprestimo Where total is null Predicado is not null testa ausencia de valores nulos. O resultado de uma expressao aritmética (+/-/* e /) é nula caso um dos valores de entrada for nulo.

3 Valores Nulos Para as funções agregadas:
Algumas tuplas na relação empréstimo tenham valores nulos para total. Então na seguinte consulta – Select sum(total) From emprestimo O operador SUM ignora os valores nulos de entrada. Todas as funções agregadas, exceto count(*), ignoram os valores nulos de seus conjuntos de valores de entrada.

4 Subconsultas Aninhadas
Mecanismo para aninhamento de subconsultas. É uma expressão select-from-where dentro de outra consulta. Testar membros de conjuntos, comparações de conjuntos e cardinalidade de conjuntos. Select lista_de_seleção From lista de tabelas Where expressao {[not] in | operador de comp. [any | all] } | [not] Exists } (select lista da subconsulta from lista de tabelas where condições ) Consulta externa Subconsulta Entre parenteses

5 Membros de Conjuntos Conectivo IN testa os membros de um conjunto no qual o conjunto é a coleção de valores produzidos pela cláusula select. NOT IN - verifica a ausencia de membros de um conjunto. “ Encontre todos os clientes que tenham tanto conta quanto empréstimo no banco” Select distinct nome_cli From devedor Where nome_cli in (select nome_cli from depositante)

6 Membros de Conjuntos “Encontre todos os clientes que tenham tanto conta quanto um empréstimo na agencia Rio Branco” Select distinct nome_cli From devedor d , emprestimo e Where d.num_emp = e.num_emp and nome_ag = ‘Rio Branco’ And (nome_ag, nome_cli) in (select nome_ag, nome_cli from depitante dep, conta c where dep.num_conta = c.num_conta)

7 Membros de Conjuntos Uso do Not IN
“Encontrar todos os clientes que tenham um emprestimo no banco mas que não tenham uma conta no banco” Select distinct nome_cl From devedor Where nome_cl not in (select nome_cl from depositante) Os operadores IN e NOT IN podem ser usados em conjuntos enumerados Where nome_cl not in (“João Paulo”, “José”)

8 Comparação de Conjuntos
“Encontre os nomes de todas as agências que tenham fundos maiores que ao menos uma agencia localizada na cidade de Caicó” Select nome_ag From agencia Where fundos > some (select fundos from agencia where cidade_ag = “Caicó”) A subconsulta gera conjunto de todos os valores de fundos das agencias de Caicó. A comparação > some é verdadeira se o valor de fundos da tupla for maior que ao menos um membro do conjunto de todos os valores de fundos das agencias de Caicó.

9 Comparação de Conjuntos
<some / <=some / >=some / = some / <> some =some é identico a IN e <>some não é a mesma coisa que not in “ Encontre os nomes de todas as agencias que tenham fundos maiores que cada uma das agencias de Caicó” Select nome_ag From agencia Where fundos > all (select fundos from agencia where cidade_ag = “Caicó”) <all / <=all / >=all / = all / <> all (semelhante ao NOT IN)

10 Comparação de Conjuntos
“Encontre a agencia que tem o maior saldo médio” Você não pode fazer max (avg(...)) Select nome_ag From conta Group by nome_ag Having avg(saldo) > = all (select avg(saldo) from conta group by nome_agencia)

11 Verificação de Relações Vazias
Forma de testar se o resultado de uma sub-consulta possui alguma tupla. O construtor EXISTS retorna true se o argumento de uma subconsulta é não vazio. Ex. “Encontre todos os clientes que tenham tanto conta quanto empréstimo no banco” Select nomecli From devedor dev Where exists (select * from depositante d where d.nomecl=dev.nomecli)

12 Verificação de Relações Vazias
Testar a não existência de tuplas na subconsulta por meio do construtor NOT EXISTS. Retorna verdadeiro quando a subconsulta não retorna linhas Ex.: “Encontre os nomes de editoras que não publicam livros da area de “computação” Select edit_nome From editores Where not exists (select * from titulos where edit_id = editores.edit_id and type = “computação”)

13 Testar Tuplas duplicadas
O construtor UNIQUE retorna o valor true caso o argumento da subconsulta não possua nenhuma tupla repetida. “Encontre todos os clientes que tenham somente uma conta na agencia Rio Branco” Select t.nomecli From depositante as d1 Where unique (select d2.nomecli From conta, depositante as d2 Where d1.nomecl = d2.nomecl and d2.numconta = conta.numconta and Conta.nomeagencia = “Rio Branco”)

14


Carregar ppt "SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena"

Apresentações semelhantes


Anúncios Google