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

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

Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados.

Apresentações semelhantes


Apresentação em tema: "Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados."— Transcrição da apresentação:

1 Linguagem de Manipulação de Dados

2 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados (Cláusula Where)  Ordenação  Junção de Tabelas  Funções de Agregação  Cláusulas Group By e Having  Subpesquisas  Uniões

3 Linguagem de Manipulação de Dados 3 Introdução ao SQL Linguagem Standard para manipulação de dados  É reconhecida por qualquer SGBD  Serve de interface entre o utilizador e o Sistema Gestor (como SQL Server, MS Access, Oracle, etc.) Os comando SQL correspondem a instruções que visam manipular ou aceder aos dados existentes na Base de Dados

4 Linguagem de Manipulação de Dados 4 Características da Linguagem SQL Com a linguagem SQL é possível:  Criar, Alterar e Remover tabelas, chaves, índices, views, etc;  Inserir, Alterar e Apagar dados;  Interrogar a Base de Dados (Pesquisar dados);  Controlar o acesso dos utilizadores;  Obter a garantia da consistência e integridade dos dados.

5 Comando SELECT A interrogação de qualquer Base de Dados Relacional faz-se sempre utilizando o comando SELECT Em seguida é apresentada a sintaxe do comando onde:  Parêntesis rectos indicam que o componente é opcional;  Chavetas indicam que o utilizador terá que escolher um dos valores colocados entre as chavetas;  Palavras maiúsculas representam as palavras reservadas. Linguagem de Manipulação de Dados 5

6 Comando SELECT SELECT Campo1, Campo2, …, CampoN, * FROM Tabela1, …, TabelaK [ WHERE Condição] [ GROUP BY …] [ HAVING …] [ ORDER BY …] Linguagem de Manipulação de Dados 6

7 Pesquisas Simples Aplicação simplificada do comando SELECT SELECT Campo1, Campo2, …, CampoN, * FROM Tabela1, …, TabelaK Em seguida são apresentados alguns exemplos de pesquisas simples. Linguagem de Manipulação de Dados 7

8 Pesquisas Simples Tendo em conta a seguinte tabela: Seleccione todos os registos da tabela SELECT BI, Nome FROM Empregado ou SELECT * FROM Empregado ou SELECT empregado.BI, empregado.Nome FROM Empregado Linguagem de Manipulação de Dados 8

9 Pesquisas Simples Para as pesquisas que se seguem vamos assumir a seguinte tabela: Linguagem de Manipulação de Dados 9

10 Pesquisas Simples Seleccionar todos os nomes registados (sem repetições de nomes) SELECT DISTINCT Nome FROM Empregado Renomear Colunas e Tabelas SELECT BI, Salario [AS] Ordenado FROM Empregado [AS] Emp ou SELECT Emp.BI, Emp.Salario AS Ordenado FROM Empregado Emp Linguagem de Manipulação de Dados 10

11 Pesquisas Simples Apresentar o ordenado real (líquido) dos empregados (Salário - Descontos) SELECT BI, Nome, Salario - Descontos AS Ordenado FROM Empregado Apresentar os empregados com o ordenado líquido superior a 500 SELECT BI, Nome, Salario-Descontos AS Ord FROM Empregado WHERE Salario - Descontos > 500 Linguagem de Manipulação de Dados 11

12 Cláusula WHERE Permite restringir o número de linhas a apresentar. Para se restringir o conjunto de registos é necessário enviar uma condição ao comando SELECT SELECT … FROM.. WHERE Condição Linguagem de Manipulação de Dados 12

13 OperadorDescrição =Igual a >Maior que <Menor que >=Maior ou Igual que <=Menor ou Igual que <>Diferente Linguagem de Manipulação de Dados 13 Operadores Relacionais OperadorExemplo ANDCond1 AND Cond2 ORCond1 OR Cond2 NOTNOT Condição Operadores Lógicos Operadores

14 Linguagem de Manipulação de Dados 14 OperadorDescriçãoExemplo BETWEENEntre dois valoresBETWEEN Valor1 AND Valor2 INPertencente a um conjunto de valores Campo IN (val1, val2, valN) ISTratamento de Nulos. Permite verificar se um campo está vazio. Campo IS NULL LIKEComparação de Strings. Permite fazer comparações de partes da string através de WildCards. Campo LIKE ‘T*’ AccessOutros SGBDSignificado *%Qualquer string ?_ (underscore) Um carácter qualquer Wildcards Outros operadores

15 Cláusula ORDER BY A resposta a uma pergunta pode ser ordenada segundo uma ou mais colunas. Para proceder à ordenação usa-se a cláusula ORDER BY seguido das colunas que queremos ordenar. Por defeito as colunas são ordenadas ascendentemente. Podemos mudar a direcção da ordenação usando as partículas ASC e DESC. Linguagem de Manipulação de Dados 15

16 Esta cláusula, se existir, aparece sempre no final do comando SELECT SELECT Campo1, Campo2, …, CampoN, * FROM Tabela1, …, TabelaK [WHERE Condição] [GROUP BY …] [HAVING …] [ORDER BY Campo1 [ASC|DESC], Campo2 [ASC|DESC], …] Linguagem de Manipulação de Dados 16 Cláusula ORDER BY

17 Pesquisas Simples Apresentar os empregados ordenados pelo salário de forma decrescente SELECT BI, Nome, Salario FROM Empregado ORDER BY Salario DESC Apresentar todos os nomes registados (sem repetições de nomes) de forma ordenada SELECT DISTINCT Nome FROM Empregado ORDER BY Nome Linguagem de Manipulação de Dados 17

18 Suponha as seguintes tabelas Linguagem de Manipulação de Dados 18 NumEmpNomePostoNumSeccao 1AnaProgramador10 2NunoEngenheiro70 CodSeccaoSeccao 10Fabrico 20Comercial 70Recursos Humanos Empregado = {NumEmp, Nome, Posto, NumSeccao} Seccao = {CodSeccao, Seccao} Pesquisa com Várias Tabelas

19 Apresente todos os empregados e nome da secção a que pertencem. SELECT * FROM Empregado, Seccao Linguagem de Manipulação de Dados 19 NumEmpNomePostoNumSeccaoCodSeccaoSeccao 1AnaProgramador10 Fabrico 2NunoEngenheiro7010Fabrico 1AnaProgramador1020Comercial 2NunoEngenheiro7020Comercial 1AnaProgramador1070Recursos Humanos 2NunoEngenheiro70 Recursos Humanos Resultado Incorrecto! Pesquisa com Várias Tabelas

20 O comando anterior juntou as duas tabelas efectuando o produto cartesiano.  Ou seja, associou a cada linha da tabela Empregado o conjunto das linhas da tabela Seccao.  Como a tabela Empregado contém 2 registos e a tabela Seccao contém 3 registos o resultado final foi de 2*3=6 registos. Linguagem de Manipulação de Dados 20

21 Ora o que se pretende é obter a informação existente nas duas tabelas, mas estas estão relacionadas através dos campos NumSeccao (tab. Empregado) e CodSeccao (tab. Seccao). Portanto interessa visualizar o registo da tabela Seccao que tem o CodSeccao igual. Isto é, em que NumSeccao=CodSeccao. Linguagem de Manipulação de Dados 21 Pesquisa com Várias Tabelas

22 Ou seja: SELECT * FROM Empregado, Seccao WHERE NumSeccao=CodSeccao Resultado Linguagem de Manipulação de Dados 22 NumEmpNomePostoNumSeccaoCodSeccaoSeccao 1AnaProgramador10 Fabrico 2NunoEngenheiro70 Recursos Humanos

23 Pesquisa com Várias Tabelas O comando: SELECT * FROM Empregado, Seccao WHERE NumSeccao = CodSeccao É equivalente a: SELECT * FROM Empregado INNER JOIN Seccao ON NumSeccao=CodSeccao Podendo ainda ser traduzido em: SELECT e.*, s.* FROM Empregado e INNER JOIN Seccao s ON e.NumSeccao=s.CodSeccao Linguagem de Manipulação de Dados 23

24 Como se está a pesquisar dados em tabelas que estão relacionadas entre si, é aconselhável utilizar os operadores próprios para realizar essas junções. Deste modo separam-se as selecções e as junções de uma forma clara. Uma junção normal em SQL é chamada de junção interna (INNER JOIN). Após a indicação da junção é necessário referir as colunas responsáveis pela junção (cláusula ON). Linguagem de Manipulação de Dados 24 Junções de Tabelas (JOIN)

25 Existem várias variantes do JOIN:  INNER JOIN - apenas aparecem os que fazem match;  LEFT JOIN – além dos registos que fazem match, os registos da tabela esquerda que não existam na direita também aparecem.  RIGHT JOIN – além dos registos que fazem match, aparecem todos os restantes registos da tabela direita que não existam na esquerda. No LEFT JOIN e RIGHT JOIN (Outer Joins) quando o registo não existe numa das tabelas (não existe match) os valores aparecem a NULL. Linguagem de Manipulação de Dados 25 Junções de Tabelas (JOIN)

26 Sintaxe do JOIN Tabela1 JUNÇÃO Tabela2 CLÁUSULA Traduzindo para SQL Tabela1 [INNER|LEFT|RIGHT] JOIN Tabela2 ON Tabela1.Campo=Tabela2.Campo Linguagem de Manipulação de Dados 26

27 Referências DAMAS, Luís: SQL, FCA Linguagem de Manipulação de Dados 27


Carregar ppt "Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados."

Apresentações semelhantes


Anúncios Google