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

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

Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)

Apresentações semelhantes


Apresentação em tema: "Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)"— Transcrição da apresentação:

1 Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)

2 SELECT Seleciona específicas colunas de uma relação. Sintaxe: SELECT, FROM ; Ex: SELECT Nome, Preco FROM Produto;

3 SELECT (Exemplo) Seleção de todas os campos (colunas) da tabela de Produto. Resp.: SELECT * FROM Produto; O exemplo utiliza o coringa "*" para selecionar as colunas na ordem em que foram criadas. A instrução From nos indica a necessidade de pesquisarmos tais dados apenas na tabela Produto.

4 WHERE A cláusula "where" corresponde ao operador seleção da álgebra relacional. Contém a condição que as tuplas devem obedecer a fim de serem listadas. Operadores lógicos: – = igual a; – > maior que; – >= maior que ou igual a; – < menor que; – <= menor que ou igual a.

5 WHERE Sintaxe: –SELECT FROM WHERE ; Exemplo: –SELECT Nome, País FROM Cliente WHERE Pais = ’Brasil’; –SELECT Nome, Ramal FROM Funcionario WHERE Sexo = ‘M';

6 Uso de Expressões Em uma consulta você pode mostrar não somente os campos mais também expressões sobre os campos. Sintaxe: SELECT, FROM ; Exemplo: SELECT Nome, Salario * 12 FROM Funcionario WHERE Salario > 1000;

7 Exemplo (Cont.) seleciona todos os produtos cujo valor seja maior que R$ 100.000; Apresente o Nome destes produtos e o preço total de 12 peças; Valor de 12 peças = valor unitário multiplicado por 12.

8 Rotular Campos No Select você pode nomear campos e expressões com outros nomes. Ex.: SELECT Nome, Salario * 12 AS ‘Salário Anual’ FROM Funcionario WHERE Salario > 1000; Apresenta a instrução anterior alterando na consulta o nome para ‘nome C/ Salário maior q/ 1.000’.

9 DISTINCT A cláusula Distinct elimina duplicidades, significando que somente relações distintas serão apresentadas como resultado de uma pesquisa. Ex.: SELECT DISTINCT Pais FROM Cliente; O exemplo apresenta todos os Países que existe cliente cadastrado, porém omite eventuais duplicidades.

10 Demais Operadores between... and... → seleciona as linhas que os valores do campo estão entre dois valores (inclusive); in (.... ) → seleciona as linhas que os valores (do campo) estão contidos em uma lista de valores; Like → com um padrão de caracteres; is null → seleciona as linhas com valor nulo.

11 IS NULL Verifica se um campo tem valor nulo na seleção. Exemplo: seleciona os funcionários que tem valor nulo no campo salário; SELECT Nome, Ramal FROM Funcionario WHERE Salario IS NULL;

12 between... and... Verifica se um campo tem valor entre dois valores pré-definido; Exemplo: Seleciona os funcionários contratados entre 01/01/95 e 12/31/96; SELECT Nome, Sexo, salario FROM Funcionario WHERE DataAdmissao BETWEEN ‘01/01/95’ AND ‘12/31/96’;

13 IN Verifica se um campo está contido em uma lista de valores. Exemplo: seleciona os funcionários que trabalhão no departamento 10 e 30; SELECT Nome, Ramal FROM Funcionario WHERE CodDepartamento IN (10, 30);

14 LIKE Verifica se um campo tem o dado(string) começando por %; Exemplo: Seleciona os funcionários com o nome que comece com F; SELECT Nome, Ramal FROM Funcionario WHERE Nome LIKE 'F%'; Obs.: Em alguns bancos de dados o símbolo é o *

15 Operadores Negativos → diferente not nome_coluna = → diferente da coluna; not nome_coluna > → não maior que; not between → não entre dois valore; not in → não existente em uma lista; not like → diferente dos caracteres informado; is not null → não é um valor nulo.

16 Condições Múltiplas Consultas que necessitam de mais de um critério dentro da clausula WHERE. Utilizar os operadores "AND" (E) e "OR" (OU). Sintaxe: SELECT FROM WHERE AND|OR ;

17 Ordenação (ORDER BY) O comando Order by ordena os campos de retorno de uma seleção (consulta). Sem a clausula "order by" as linhas serão exibidas na seqüência que o SGBD determinar. Sintaxe: SELECT [,, …] FROM ORDER BY, [Campo2,..] [ASC|DESC];

18 Ordenação (ORDER BY) A ordenação pode ser feita por mais de um campo e em ordem diferente para cada campo. Exemplo: SELECT Nome, Ramal FROM Funcionario ORDER BY Nome, Ramal DESC;

19 Concatenando Colunas O operador ‘+’ serve para concatenar apenas textos ou colunas do tipo texto da seleção Ex.: SELECT Nome + ‘ Sexo:’ + Sexo FROM Funcionario;

20 Funções Agregadas (Agrupamento) Avg – Retorna á média do valores de um campo, ignorando nulos; Count – Retorna o número de linhas em que existe valo no campo, ignora os valores nulos; Max – Retorna o maior valor do campo; Min(expr) – Retorna o menor valor do campo;

21 Funções Agregadas (Agrupamento) Sum – Retorna a soma dos valores do campo ignorando os valores nulos. Ex.: SELECT Avg(Salario), Max(Salario), Min(Salario), Sum(Salario), Count(Salario) FROM Funcionario;

22 Agrupamento As funções de grupo operam sobre grupos de tuplas(linhas). Retornam resultados baseados em grupos de tuplas em vez do resultado por tupla individual. A cláusula "group by" do comando "select" é utilizada para dividir tuplas em grupos menores.

23 Agrupamento As funções de grupo devolvem uma informação sumarizada para cada grupo. Sintaxe: Select,, From Group BY, ; Ex.: SELECT CodFornecedor, COUNT(CodProduto) FROM ProdutoFornecedor GROUP BY CodFornecedor;

24 Exemplo (Cont.) O exemplo ele vai retornar a quantidade de produtos fornecidas por cada fornecedor; Qualquer coluna ou expressão, que não for uma função agregada, deverá constar da clausula "group by".

25 Having Como Qualquer coluna ou expressão na lista de seleção, que não for uma função agregada, deverá constar da cláusula "group by", é errado tentar impor uma "restrição" do tipo agregada na cláusula Where.

26 Having A cláusula "HAVING" pode ser utilizada para especificar quais grupos deverão ser exibidos, portanto restringindo-os. Sintaxe: Select, From Group by Having = ;

27 Exemplo Ex.: SELECT CodDepartamento, AVG(Salario) FROM Funcionario GROUP BY CodDepartamento HAVING CodDepartamento = 10;

28 Junções de tabelas Um comando SELECT também pode fazer uma consulta que traz dados de duas ou mais tabelas. Esse é um processo chamado de junção [join]. As tabelas têm uma coluna em comum que é usado para fazer as junções. A junção é possível apenas quando tivermos definido de forma adequada a chave estrangeira de uma tabela e sua referência (a chave primária).

29 Junções de tabelas Sintaxe: Select Colunas From, Where ; Condição de Junção: esta condição de junção é feita utilizando os campos da chave primaria e chave estrangeira das tabelas. Sintaxe:Tabela1.CampoEstrangeiro1=Ta belaN.CampoChave

30 Junções de tabelas Exemplo: O exemplo seguinte seleciona o nome do fornecedor e o código do produto que ele fornece. Select Nome, CodProduto From ProdutoFornecedor, Fornecedor Where Fornecedor.CodFornecedor = ProdutoFornecedor.CodFornecedor;

31 Junções de tabelas Observemos que um campo está na tabela Fornecedor e outro na Tabela ProdutoFornecedor. Deveremos então acessar os dados restringindo convenientemente as relações existentes entre as tabelas. Sabemos que CodFornecedor é chave primária da tabela de Fornecedor e também é chave estrangeira da Tabela de ProdutoFornecedor. Este campo será o responsável pela junção.

32 Junções de tabelas Esta junção trabalha com a idéia de juntar todas as tuplas de ProdutoFornecedor com todas as tuplas de Fornecedor logo está junção gera ( ProdutoFornecedor * Fornecedor ) Tuplas sendo restringido pela junção.

33 Junções de tabelas O SQL Server aceita duas sintaxes diferentes para junção de tabelas. Uma delas, mostrada anteriormente. A outra forma de sintaxe que pode ser usada é a sintaxe do padrão ANSI SQL Exemplo: Select Nome, CodProduto From ProdutoFornecedor inner join Fornecedor on Fornecedor.CodFornecedor = ProdutoFornecedor.CodFornecedor;

34 Bibliografia HEUSER Carlos A., Projeto de Banco de Dados, Ed. Sagra&Luzzatto, 4ª Edição.


Carregar ppt "Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)"

Apresentações semelhantes


Anúncios Google