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

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

SQL Structured Query Language (continuação). Sub-Consultas Comando SELECT que está encadeado noutro comando SELECT, produzindo resultados intermédios.

Apresentações semelhantes


Apresentação em tema: "SQL Structured Query Language (continuação). Sub-Consultas Comando SELECT que está encadeado noutro comando SELECT, produzindo resultados intermédios."— Transcrição da apresentação:

1 SQL Structured Query Language (continuação)

2 Sub-Consultas Comando SELECT que está encadeado noutro comando SELECT, produzindo resultados intermédios. Uma subconsulta é utilizada quando é necessário seleccionar tuplos de uma tabela com uma condição que dependa de dados da mesma tabela.

3 SELECT MIN(Ordenado) FROM Empregado; Depois devemos encontrar o empregado que ganha esse ordenado: SELECT Nome, Cargo, Ordenado FROM Empregado WHERE Ordenado = (ordenado mínimo); Assim, podemos combinar os dois códigos: SELECT Nome, Cargo, Ordenado FROM Empregado WHERE Ordenado = (SELECT MIN(Ordenado) FROM Empregado); Sub-Consultas (cont.)

4 SELECT Nome, Cargo FROM Empregado WHERE Cargo = (SELECT Cargo FROM Empregado WHERE Nome='Blake'); SELECT Nome, Cod_Depar, Ordenado FROM Empregado WHERE (Ordenado, Cod_Depar)IN(SELECT MIN(Ordenado), Cod_Depar FROM Empregado GROUP BY Cod_Depar); Sub-Consultas (cont.)

5 SELECT Cod_Depar, AVG(Ordenado) FROM Empregado GROUP BY Cod_Depar HAVING AVG(Ordenado) > (SELECT AVG(Ordenado) FROM Empregado WHERE Cod_depar = 30); Sub-Consultas (cont.)

6 JOINS Outra operação a realizar sobre a BD é a junção (join). Uma junção é utilizada quando uma consulta SQL requer extrair dados de mais de uma tabela da BD, com base numa condição de junção. Esta condição de junção depende, geralmente, das colunas comuns que existem entre as tabelas onde se pretende realizar esta operação. Em alguns casos, pode ser necessário efectuar uma junção entre colunas da mesma tabela.

7 Exemplo: Realize uma consulta onde se visualize o nome do empregado, o cargo, e o nome do departamento ao qual o empregado pertence. SELECT Nome, Cargo, Nome_pep FROM Empregado, Departamento WHERE Cod_Depar=Cod_Depart; JOINS (cont.)

8 Exemplo: Apresente o nome, a localidade e o nome do departamento dos empregados cujo ordenado mensal é superior a $, ordenados pelo nome do departamento. SELECT Nome, Localização, Nome_pep FROM Empregado, Departamento WHERE Cod_Depar=Cod_Depart AND Ordenado > JOINS (cont.)

9 Exemplo: Considere que tem uma BD de uma Universidade com informação dos alunos, das disciplinas e das avaliações realizadas. Assim, temos as seguintes tabelas com os respectivos atributos: ALUNOS(Cod_al, Nome_al, Morada) DISCIPLINAS(Cod_dis, Nome_dis, Créditos) AVALIAÇÕES(Cod_al,Cod_dis, Data, Nota) Admita que pretendia visualizar os nomes dos alunos, o nome da disciplina e a nota obtida. JOINS (cont.)

10 SELECT Nome_al, Nome_dis, Nota FROM ALUNOS, DISCIPLINAS, AVALIAÇÕES WHERE ALUNOS.Cod_al = AVALIAÇÕES.Cod_al AND DISCIPLINAS.Cod_dis = AVALIAÇÕES.Cod_dis; JOINS (cont.)

11 Outros tipos de JOINS podem ser definidos. Os exemplos seguintes, apresentados sobre Microsoft ACCESS97 apresentam a forma de se efectuarem: –Right join –Left join JOINS (cont.)

12

13

14

15 SQL e outras linguagens de programação O SQL tem sem dúvida uma perspectiva de utilização interactiva, sendo os comando directamente efectuados no terminal pelo utilizador e as respostas direccionadas ao terminal. Só por si o SQL não possui as funcionalidades necessárias para desenvolver aplicações completas. A solução passa por usar linguagens de programação, nas quais são inseridos os comandos SQL, que efectuam o acesso à base de dados. Mas: A linguagem SQl é set-oriented, podendo numa única operação manipular um número indeterminado de dados e é declarativa; As linguagens de programação usualmente utilizadas (C, COBOL, PASCAL, etc.) são record-oriented e não-declarativas.

16 SQL e outras linguagens de programação (cont.) Esta situação implica: Conhecer 2 linguagens inerentemente diferentes; Garantir que o sistema tem alguma interface que permita sincronizar as transferências de dados entre as duas. A esta disfunção dá-se o nome de impedance mismatch e uma das formas de minimizar este problema é problema é utilizar a estruturação de código, inserindo nos blocos código SQL. Ex: EXEC SQL BEGIN DECLARE SECTION;... ... EXEC SQL END DECLARE SECTION; Isto é só um exemplo demonstrativo das potencialidades de interacção SQL <> outras linguagens. Não é representativo.


Carregar ppt "SQL Structured Query Language (continuação). Sub-Consultas Comando SELECT que está encadeado noutro comando SELECT, produzindo resultados intermédios."

Apresentações semelhantes


Anúncios Google