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

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

Daniel Paulo dptsalvador@hotmail.com SQL 2014 - Módulo I Daniel Paulo dptsalvador@hotmail.com.

Apresentações semelhantes


Apresentação em tema: "Daniel Paulo dptsalvador@hotmail.com SQL 2014 - Módulo I Daniel Paulo dptsalvador@hotmail.com."— Transcrição da apresentação:

1 Daniel Paulo dptsalvador@hotmail.com
SQL Módulo I Daniel Paulo

2 Capítulo 4 - Consultando Dados
Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname =‘PEDIDOS’, @filename1=‘c:\dados\pedidos_tabelas.mdf’, @filename2=‘c:\dados\pedidos_indices.ndf’, @filename3=‘c:\dados\pedidos_log.ldf’ Obs: Os modelos estão nos arquivos STRUCT_EMPREGADOS.jpg e STRUCT_PEDIDOS.jpg

3 Capítulo 4 - Consultando Dados
Consultando todas as colunas SELECT * FROM <nome da tabela> Consultar todas as colunas da tabela Empregados do banco de dados Pedidos USE PEDIDOS; SELECT * FROM EMPREGADOS

4 Capítulo 4 - Consultando Dados
Consultando colunas Específicas SELECT <coluna1> , <coluna2> , .. FROM <nome da tabela> Consultar as colunas CODFUN, NOME E SALARIO da tabela Empregados SELECT CODFUN, NOME, SALARIO FROM EMPREGADOS;

5 Capítulo 4 - Consultando Dados
Redefinindo os indentgificadores de coluna com uso de alias SELECT <coluna1> [[AS] <nome_alias>], <coluna2> [[AS] <nome_alias>] FROM <tabela>

6 Capítulo 4 - Consultando Dados
-- Apelido contendo caracteres especiais (espaço) SELECT CODFUN AS Codigo, NOME AS Nome, SALARIO AS Salario, DATA_ADMISSAO AS [Data de Admissão] FROM EMPREGADOS; -- Campo calculado SELECT CODFUN AS Codigo, NOME AS Nome, SALARIO AS Salario, SALARIO * 1.10 [Salário com 10% de Aumento]

7 Capítulo 4 - Consultando Dados
Laboratório 1 página 190

8 Capítulo 4 - Consultando Dados
Ordenando Dados -- Ordenando os dados na ordem ascendente SELECT * FROM EMPREGADOS ORDER BY NOME SELECT * FROM EMPREGADOS ORDER BY NOME ASC SELECT * FROM EMPREGADOS ORDER BY SALARIO SELECT * FROM EMPREGADOS ORDER BY SALARIO ASC SELECT * FROM EMPREGADOS ORDER BY DATA_ADMISSAO -- Ordenando os dados na ordem decrescente SELECT * FROM EMPREGADOS ORDER BY NOME DESC SELECT * FROM EMPREGADOS ORDER BY SALARIO DESC SELECT * FROM EMPREGADOS ORDER BY DATA_ADMISSAO DESC Obs: Caso não seja especificado ASC ou DESC o padrão é ASC

9 Capítulo 4 - Consultando Dados
-- Ordenando por nome da coluna SELECT CODFUN AS Codigo, NOME AS Nome, SALARIO AS Salario, SALARIO * 1.10 [Salário com 10% de Aumento] FROM EMPREGADOS ORDER BY 4;

10 Capítulo 4 - Consultando Dados
-- Ordenando várias colunas SELECT COD_DEPTO, NOME, DATA_ADMISSAO, SALARIO FROM EMPREGADOS ORDER BY COD_DEPTO, SALARIO -- ORDER BY COD_DEPTO DESC, SALARIO

11 Capítulo 4 - Consultando Dados
ORDER BY com TOP O resultado é selecionado a partir do conjunto ordenado -- Lista os 5 primeiros empregados de acordo com a chave -- primária SELECT TOP 5 * FROM EMPREGADOS -- Lista os 5 empregados mais antigos ORDER BY DATA_ADMISSAO

12 Capítulo 4 - Consultando Dados
-- Lista os 5 empregados mais novos SELECT TOP 5 * FROM EMPREGADOS ORDER BY DATA_ADMISSAO DESC -- Lista os 5 empregados que ganham menos ORDER BY SALARIO -- Lista os 5 empregados que ganham mais ORDER BY SALARIO DESC

13 Capítulo 4 - Consultando Dados
ORDER BY com TOP WITH TIES -- Listar os 7 funcionários que ganham mais SELECT TOP 7 CODFUN, NOME, SALARIO FROM EMPREGADOS ORDER BY SALARIO DESC -- Listar os 7 funcionários que ganham mais inclusive os que possuem mesmo valor SELECT TOP 7 WITH TIES CODFUN, NOME, SALARIO -- Mostrar 10% das linhas da tabela Empregados SELECT TOP 10 PERCENT WITH TIES * FROM EMPREGADOS

14 Capítulo 4 - Consultando Dados
Filtrando consultas Cláusula para a definição de critérios de com o objetivo de filtrar o resultado de uma consulta. Obs: Neste capítulo a funcionalidade do WHERE é demonstrada apenas para filtragem de dados

15 Capítulo 4 - Consultando Dados
Consultando com operadores de comparação de string = (igual) <> ou != (desigual) > (maior que) < (menor que) >= (maior que ou igual) <= (menor que ou igual)

16 Capítulo 4 - Consultando Dados
-- Seleciona todos os Empregados que recebem menos de SELECT * FROM Empregados WHERE SALARIO < 1000 ORDER BY SALARIO -- Seleciona todos os Empregados que recebem mais de WHERE SALARIO > Seleciona todos os Empregados que estão alocados nos -- departamento com código menor e igual a 3 WHERE COD_DEPTO <= 3 ORDER BY COD_DEPTO

17 Capítulo 4 - Consultando Dados
-- Seleciona os empregados do código de departamento = 2 SELECT * FROM Empregados WHERE COD_DEPTO = 2 ORDER BY COD_DEPTO -- Seleciona os empregados do código de departamento -- diferente de 2 WHERE COD_DEPTO <> 2

18 Capítulo 4 - Consultando Dados
Consultando com Operadores Lógicos AND - Operador que combina duas expressões e exige que sejam verdadeira, ou seja, TRUE OR - Verifica se uma ou ambas expressões retornam TRUE NOT - Avalia se no resultado, se a primeira expressão é TRUE e a segunda FALSE

19 Capítulo 4 - Consultando Dados
-- Seleciona os empregados do código de -- departamento 2 e que ganham mais de 5000 SELECT * FROM EMPREGADOS WHERE COD_DEPTO = 2 AND SALARIO > departamento 2 ou que ganham mais de 5000 WHERE COD_DEPTO = 2 OR SALARIO > 5000

20 Capítulo 4 - Consultando Dados
-- Execute a consulta abaixo e apresente o resultado SELECT * FROM Empregados WHERE COD_DEPTO = 2 AND COD_DEPTO = 5

21 Capítulo 4 - Consultando Dados
/* Na consulta abaixo nenhum valor retornará, pois é impossível, no modelo atual, um empregado ser ter o código de departamento 2 e 5 ao mesmo tempo */ SELECT * FROM Empregados WHERE COD_DEPTO = 2 AND COD_DEPTO = 5 -- O correto neste caso é utilizar o operador OR WHERE COD_DEPTO = 2 OR COD_DEPTO = 5

22 Capítulo 4 - Consultando Dados
-- Mais Exemplos SELECT * FROM EMPREGADOS WHERE SALARIO >= 3000 AND SALARIO <= 5000 ORDER BY SALARIO -- WHERE SALARIO < 3000 OR SALARIO > 5000 WHERE NOT (SALARIO >= 3000 AND SALARIO <= 5000)

23 Capítulo 4 - Consultando Dados
Consultando um intervalo de valores A cláusula BETWEEN filtra dados com base em uma faixa de valores -- Pesquisar intervalo ENTRE dois valores SELECT * FROM EMPREGADOS WHERE SALARIO >= 3000 AND SALARIO <= 5000 ORDER BY SALARIO -- OU WHERE SALARIO BETWEEN 3000 AND 5000

24 Capítulo 4 - Consultando Dados
-- Seleciona os empregados com data de -- admissão de 01/01/2000 até 31/12/2000, -- ordenando pela Data de admissão SELECT * FROM Empregados WHERE DATA_ADMISSAO BETWEEN ' ' AND ' ' ORDER BY DATA_ADMISSAO

25 Capítulo 4 - Consultando Dados
-- Pesquisar valores FORA do intervalo SELECT * FROM EMPREGADOS WHERE SALARIO < 3000 OR SALARIO > 5000 ORDER BY SALARIO -- OU WHERE SALARIO NOT BETWEEN 3000 AND 5000

26 Capítulo 4 - Consultando Dados
Laboratório 2 página 191

27 Capítulo 4 - Consultando Dados
Consultando com base em strings de caractere Operador Like – Comparar cadeias de caracteres. Utiliza o caracter % como curinga.  -- Seleciona todos Empregados que possuam nomes que -- começando por MARIA SELECT * FROM EMPREGADOS WHERE NOME LIKE 'MARIA%' -- Seleciona empregados que possuam nomes que -- começando por MA WHERE NOME LIKE 'MA%’

28 Capítulo 4 - Consultando Dados
-- Seleciona empregados que possuam nomes que começando por M SELECT * FROM EMPREGADOS WHERE NOME LIKE 'M%' -- Nomes terminando por MARIA SELECT * FROM EMPREGADOS WHERE NOME LIKE '%MARIA’ -- Nomes terminando por SOUZA SELECT * FROM EMPREGADOS WHERE NOME LIKE '%SOUZA‘ -- Nomes terminando por ZA SELECT * FROM EMPREGADOS WHERE NOME LIKE '%ZA' -- Nomes contendo MARIA SELECT * FROM EMPREGADOS WHERE NOME LIKE '%MARIA%' -- Nomes contendo SOUZA SELECT * FROM EMPREGADOS WHERE NOME LIKE '%SOUZA%' -- Nomes contendo ZA SELECT * FROM EMPREGADOS WHERE NOME LIKE ‘%ZA%'

29 Capítulo 4 - Consultando Dados
Outro caractere coringa é o ( _ ) que representa apenas um caractere -- Nomes que comecem por qualquer caractere e o segundo seja a letra A SELECT * FROM Empregados WHERE NOME LIKE '_A%‘ -- Nomes cuja penúltima letra seja Z SELECT * FROM Empregados WHERE NOME LIKE '%Z_' -- Nomes que terminem com LU seguido de 3 letras quaisquer SELECT * FROM Empregados WHERE NOME LIKE '%LU___'

30 Capítulo 4 - Consultando Dados
Fornecendo várias opções para um determinado caractere -- Nomes contendo SOUZA ou SOUSA SELECT * FROM EMPREGADOS WHERE NOME LIKE '%SOU[SZ]A%' -- Nomes contendo José ou Jose SELECT * FROM EMPREGADOS WHERE NOME LIKE '%JOS[EÉ]%'

31 Capítulo 4 - Consultando Dados
Operador NOT LIKE -- Nomes que não contenham a palavra MARIA SELECT * FROM EMPREGADOS WHERE NOME NOT LIKE '%MARIA%' -- Nomes que não contenham a sílaba MA WHERE NOME NOT LIKE '%MA%'

32 Capítulo 4 - Consultando Dados
Consultando valores pertencentes ou não a uma lista de elementos -- Operador IN com valores numéricos SELECT * FROM EMPREGADOS WHERE COD_DEPTO IN (1,3,4,7) ORDER BY COD_DEPTO -- Operador IN com caracteres SELECT NOME, ESTADO FROM CLIENTES WHERE ESTADO IN ('AM', 'PR', 'RJ', 'SP') -- Listar todos os estado que Não estão na lista WHERE ESTADO NOT IN ('AM', 'PR', 'RJ', 'SP')

33 Capítulo 4 - Consultando Dados
Lidando com valores nulos Causas do aparecimento de valores nulos Criação de linhas sem configuração de valores Criação de colunas com a palavra chave SPARSE no intuito de conservar espaço Considerações Nulo não é um valor zero Retorna um valor desconhecido Não é uma string vazia Em cálculos, retorna um valor desconhecido

34 Capítulo 4 - Consultando Dados
-- Seleciona os empregados com código de departamento -- igual a Nulo SELECT * FROM Empregados WHERE COD_DEPTO IS NULL -- Seleciona os empregados com data de nascimento nula WHERE DATA_NASCIMENTO IS NULL -- Seleciona os empregados que possuem data de nascimento WHERE DATA_NASCIMENTO IS NOT NULL

35 Capítulo 4 - Consultando Dados
Substituindo valores nulos Função ISNULL SELECT CODFUN, NOME, ISNULL(COD_DEPTO,-1) AS DEPTO, ISNULL(SALARIO,-1) AS RENDA FROM Empregados -- SELECT CODFUN, NOME, ISNULL(DATA_NASCIMENTO,' ') AS DATA_NASC

36 Capítulo 4 - Consultando Dados
FUNÇÂO COALESCE SELECT CODCLI, NOME, COALESCE(EST_COB,ESTADO,'NC') AS EST_COBRANCA FROM CLIENTES ORDER BY 3

37 Capítulo 4 - Consultando Dados
Laboratório 3 páginas 192

38 Capítulo 4 - Consultando Dados
Manipulando campos do tipo DATETIME SET DATEFORMAT – Utilizado para determinar a ordem Dia, Mês e ano de um valor datetime SET DATEFORMAT (ordem) mdy dmy ymd ydm Myd dym SET DATEFORMAT YMD

39 Capítulo 4 - Consultando Dados
GETDATE() - retorna a data e hora atual do sistema SELECT GETDATE() AS DATA_ATUAL; -- Qual será a data que o SQL vai retornar ? SELECT GETDATE() A quantos dias cada funcionário foi admitido? SELECT CODFUN, NOME, CAST(GETDATE() - DATA_ADMISSAO AS INT) AS DIAS_NA_EMPRESA FROM EMPREGADOS

40 Capítulo 4 - Consultando Dados
-- Extraindo partes da data -- Dia SELECT * FROM EMPREGADOS WHERE DAY(DATA_ADMISSAO) = 1 -- Mês WHERE MONTH(DATA_ADMISSAO) = 12 -- Ano WHERE YEAR(DATA_ADMISSAO) = 2000 -- Ano e Mês WHERE YEAR(DATA_ADMISSAO) = 2000 AND MONTH(DATA_ADMISSAO) = 1

41 Capítulo 4 - Consultando Dados
DATEPART – Retorna um inteiro da porção especificada no argumento SELECT * FROM EMPREGADOS WHERE DATEPART(YEAR, DATA_ADMISSAO) =2000 AND DATEPART(MONTH, DATA_ADMISSAO) = 12 * Argumentos na pág 107

42 Capítulo 4 - Consultando Dados
DATENAME() – Retorna uma string caractere que representa uma porção da data e hora, conforme argumento. SELECT CODFUN, NOME, DATA_ADMISSAO, DATENAME(WEEKDAY,DATA_ADMISSAO) AS DIA_SEMANA, DATENAME(MONTH,DATA_ADMISSAO) AS MES FROM EMPREGADOS WHERE DATEPART(WEEKDAY, DATA_ADMISSAO) = 6

43 Capítulo 4 - Consultando Dados
DATEADD() – Adição com data e hora -- Hoje mais 45 dias SELECT DATEADD( DAY, 45, GETDATE()) -- Hoje mais 6 meses SELECT DATEADD( MONTH, 6, GETDATE()) -- Hoje mais 2 anos SELECT DATEADD( YEAR, 2, GETDATE())

44 Capítulo 4 - Consultando Dados
DATEDIFF – Diferença entre datas -- Quantos dias eu vivi SELECT DATEDIFF( DAY, ' ', GETDATE()) -- Quantos meses eu vivi SELECT DATEDIFF( MONTH, ' ', GETDATE()) -- Quantos anos eu vivi SELECT DATEDIFF( YEAR, ' ', GETDATE()) -- A diferença em anos ou meses não retorna um valor exato -- Retorna 1, mas a diferença somente seria 1 em 20/2 SELECT DATEDIFF( MONTH, ' ', ' ') -- Retorna 1, mas a diferença somente seria 1 em 20/6/2009 SELECT DATEDIFF( YEAR, ' ', ' ')

45 Capítulo 4 - Consultando Dados
DATEFROMPARTS() – Retorna uma data a partir de valores inteiros -- Retorna a data 25/12/2013 SELECT DATEFROMPARTS (2013,12,25); TIMEFROMPARTS() – Retorna um horário a partir de valores inteiro -- Retorna o horário 10:25:15 SELECT TIMEFROMPARTS (10,25,15,0,0);

46 Capítulo 4 - Consultando Dados
DATETIMEFROMPARTS() – Retorna data e hora -- Retorna a data 15/09/ :00: SELECT DATETIMEFROMPARTS (2013,9,15,14,0,15,0); DATETIME2FROMPARTS() – Retorna um valor do tipo datetime2 a partir dos parâmetros ano, mês, dia, hora, minuto, segundo, fração de segundo e a precisão da fração de segundo

47 Capítulo 4 - Consultando Dados
SMALLDATETIMEFROMPARTS() – Retorna data e hora no tipo smalldatetime; DATETIMEOFFSETFROMPARTS() – Retorna data e hora no tipo datetimeoffset.

48 Capítulo 4 - Consultando Dados
EOMonth() Esta função retorna o último dia do mês a partir dos parâmetros Sintaxe: EOMONTH (data_início [, adicionar_mês]); SELECT EOMONTH (GETDATE());

49 Capítulo 4 - Consultando Dados
Alterando a configuração de idioma a partir do SSMS, página 176

50 Capítulo 4 - Consultando Dados
Teste seus conhecimentos página 182 à 187 Laboratório 4, página 193


Carregar ppt "Daniel Paulo dptsalvador@hotmail.com SQL 2014 - Módulo I Daniel Paulo dptsalvador@hotmail.com."

Apresentações semelhantes


Anúncios Google