Você está na página 1de 39

Introdução ao SQL Avançado

Introdução as consultas, manipulação


e a filtragem de dados com a linguagem SQL

Prof. MSc. Hugo Vieira L. Souza


Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo ou quaisquer partes do documento, em especial a
interpretação de tradução, reprodução, distribuição ou comercialização física ou na Web do conteúdo contido nos slides, estão sujeitas a
autorização prévia pelo autor.

© Hugo Vieira Lucena de Souza, 2015

Documento reproduzido e atualizado com base no formato do texto original, em sua primeira versão, sob a autorização da autora.
© Renata F. Viegas, 2008

Todos os textos, nomes, marcas e figuras de outras publicações e autores contidos neste documento estão devidamente referenciados através
de suas obras originais e protegidos pelas leis de propriedades intelectuais ©.
Agenda
❑Introdução ao SQL Avançado
❑Fundamentos da sintaxe Structured Query Language [SQL]
❑Consultas simples
❑Cláusulas adicionais
❑Manipulação de expressões
❑ Funções matemáticas
❑ Funções de caracteres
❑ Funções de data e hora
❑ Funções de conversão
❑Filtragem e ordenação de dados
❑Filtragem utilizando Listas
❑Filtragem com valores nulos
❑Filtragem usando strings
❑Funções agregadas
❑Referências
Introdução ao SQL Avançado
Revisando a sintaxe SQL:

SELECT, UPDATE, INSERT, DELETE

• Manipulando expressões – Funções matemáticas, etc;

• Condições de Pesquisa• Funções de Agregação e Agrupamento;

• Junção de tabelas;

• Sub-consultas e tabelas temporárias;


Introdução ao SQL Avançado
Principais características:
• Linguagem não-procedural que requer do usuário qual dado é necessário
sem a possibilidade especificar como obtê-lo;

• Poupa o tempo de programação, mas exige um determinado treino para


se dominar;

• Suporte ao modelo Cliente-Servidor;

• Controle de Acesso ao Banco e dos Usuários


Introdução ao SQL Avançado
Principais características:
• Busca garantir a Integridade dos Dados;

• É independente em um contexto de padronização e fabricação: está


incorporada em quase todos os SGBDs em seu padrão ANSI, com
extensões proprietárias de cada fabricante;
Introdução ao SQL Avançado
Sintaxe básica:
Introdução ao SQL Avançado
Cláusulas adicionais:
• INTO: especifica uma nova tabela que conterá o resultado da
consulta;
• ORDER BY: classifica o resultado da consulta;
• GROUP BY: agrupa as linhas das consultas com base nos valores de
uma ou mais colunas;
• HAVING: especifica as condições usadas para filtrar um agrupamento
de dados no resultado da consulta. Só deve ser utilizado com o
GROUP BY
Introdução ao SQL Avançado
Exemplo 01: exibir todos os dados de todos os clientes:

Exemplo 02: exibir código, nome e telefones de todos os clientes:


Introdução ao SQL Avançado
Exemplo 03: exibir código, nome e telefone dos vinte primeiros
clientes cadastrados na empresa:
Introdução ao SQL Avançado
Exemplo 04: exibir código, nome e preço de venda dos dez porcento
primeiros produtos cadastrados:
Introdução ao SQL Avançado
Exemplo 05: exibir código, nome e uma coluna contendo classificado
para todos os clientes:
Introdução ao SQL Avançado
Exemplo 06: exibir código, nome e uma coluna contendo classificado
com o cabeçalho Classificação para todos os clientes:
Introdução ao SQL Avançado
Exemplo 07: exibir número, descrição e preço de um produto
renomeado a coluna número para código:
Manipulação de expressões
• Um comando SELECT também pode retornar como coluna de resultado
um valor calculado;
Exemplo 08: exibir código, quantidade em estoque, preço de venda e
valor total [quantidade * preço da venda] para cada produto
Manipulação de expressões
• Além de operadores aritméticos, podemos usar funções matemáticas de
acordo com o SGBD:
• ROUND: [valor, n]: arredonda o valor para n casas decimais;
• POWER: [valor, p]: retorna o valor elevado à potência p;

Exemplo 09: exibir o código, preço e o valor arredondado do preço de


cada produto para uma casa decimal:
Manipulação de expressões
Exemplo 10: exiba o preço do produto elevado a terceira potência:

• As funções de caracteres também são muito úteis para manipular os


dados do tipo caractere. Os principais tipos estão descritos como:
• SUBSTRING: [Exp, inicio, tam]: extrai uma parte de uma strings
desde o início e com o tamanho de caracteres;
• LOWER: [Exp]: converte para minúsculo;
Manipulação de expressões
Exemplo 11: exiba os dez primeiros caracteres do título de um livro em
minúsculo e seu preço de tabela livros:
Manipulação de expressões
• As funções de data e hora podem ser implementadas em colunas do
tipo datetime, que armazenam data e hora. A nomenclatura para a
implementaçãoo segue o padrão:
• DatePart[parte,data]: retorna a parte especificada da data.
Manipulação de expressões
Exemplo 12: exiba o nome e mês de aniversário de todos os
funcionários
Manipulação de expressões
• GetDate(): retorna a data e hora atuais

Exemplo 13: exiba a data de aniversário e o dia atual para todos os


funcionários:
Manipulação de expressões
• A função de conversão é implementada quando é realizada a conversão
de um tipo de dado em outro. A sintaxe segue o padrão:

CONVERT [Tipo de dado, valor]

Exemplo 14: exiba o preço de um produto convertido para string


apenas no select
Manipulação de expressões
• Com valores datetime, converte pode ter um parâmetro a mais que
especifica o formato da data a ser usado.

Exemplo 15: exiba a data de hoje no formato brasileiro:


Manipulação de expressões
• Quer enriquecer suas expressões com o SQL? Pesquise as seguintes
funções no SQL Server:
• Funções de caracteres:
• Upper(), Ltrim(), Rtrim(), Space(), Str();
• Funções de data e hora:
• DateAdd(), DateDiff(), DateName();
Manipulação de expressões
• Uma vantagem que podemos aprender é a acerca da eliminação da
duplicação de linhas. A sintaxe para este comando pode ser escrita: da
seguinte forma:

Exemplo 16: exibir o código de todos os clientes que já fizeram


pedidos na empresa
Filtragem e ordenação de dados
• A ordenação dos dados pode seguir um conjunto de regras que
delimitam como os dados deverão estar apresentados ao usuário. A
sintaxe básica para ordenar informações de um banco de dados pode
ser descrita:

Exemplo 17: exibir o código, nome e telefone de todos os clientes,


ordenando pelo nome do cliente de forma ascendente:
Filtragem e ordenação de dados
• Outra cláusula de ordenação tem como foco a filmagem dos dados. A
sintaxe é simples, baseada na seguinte regra:

Exemplo 19: exibir todos os nomes dos funcionários que nasceram a


partir de 1950:
Filtragem e ordenação de dados
• Sintaxe:

Exemplo 20: exibir todos os dados de produtos cujo estoque esteja


entre dez e trinta unidades, ordenados pelo nome do produto
Filtragem e ordenação de dados
Exemplo 21: exibir todos os dados de funcionários que nasceram na
década de sessenta, ordenados pela data de nascimento em ordem
descendente, e pelo nome do funcionário em ordem ascendente;
Filtragem e ordenação de dados
• Sintaxe:

Exemplo 22: exibir todos os dados dos funcionários que residam no


Bessa ou Manaíra ordenados pelo nome;
Filtragem e ordenação de dados
Exemplo 23: exibir todos os produtos que não sejam do tipo dois ou do
tipo quatro, ordenados pelo tipo em ordem descendente;
Filtragem e ordenação de dados
• Sintaxe:

• Significado:
• Valores não formatados ou desconhecidos;
Filtragem e ordenação de dados
Exemplo 24: exibir os dados dos funcionários que não tenham e-mail

Exemplo 25: exibir os dados dos funcionários cujo o número do


telefone seja conhecido;
Filtragem e ordenação de dados
• Você acha que as linhas com valores NULL serão retornadas de acordo
com o select abaixo?
Filtragem e ordenação de dados
• Sintaxe:

• Significado:
• Casamento de padrão: uma strings contendo caracteres que podem
ser combinados com outra parte da strings;
• % [porcentagem]: sequencia de caracteres;
• _ [sublinhado]: combina com um único caractere;
Filtragem e ordenação de dados
• Outras combinações:
• [] [colchetes]: combina uma faixa de caracteres;
• ^ [circunflexo]: significa negação;

• Como encontrar todos nomes que começam com A ou B?


• Usar LIKE `[AB]%`
• Como encontrar todos os nomes que começam com letras de A até E?
• Usar LIKE `[A-E]%`
• E todos os nomes que não iniciam com V?
• Usar `[^V]%`
Funções agregadas
• COUNT[]: conta o número de valores de uma coluna;
• SUM []: soma os valores de uma coluna de dados numéricos;
• AVG[]: calcula a média de uma coluna de dados numéricos;
• MAX[]: determina o maior valor de uma coluna;
• MIN[]: determina o menor valor de uma coluna;
• Obs.: A cláusula DISTINCT pode ser usada como parte do argumento para eliminar
linhas repetidas antes da aplicação da função;
Exemplo 26: exibir a quantidade de produtos vendidos com preço acima de dez reais:
Funções agregadas
• Sintaxe:

• Para que serve?


• Gerar totalizadores que aparecem como colunas adicionais resumo
no final do conjunto resultado
• O que devo fazer?
• Pesquisar três exemplos práticos desta cláusula;
Referências
VIEGAS, Renata F.; Material institucional de Banco de Dados Avançados do Centro Universitário de João
Pessoa. 2008;

Você também pode gostar