Daniel Paulo [email protected]. Para este capítulo é necessário incluir o Banco de dados...
-
Upload
irene-ramires-gesser -
Category
Documents
-
view
212 -
download
0
Transcript of Daniel Paulo [email protected]. Para este capítulo é necessário incluir o Banco de dados...
![Page 1: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/1.jpg)
Daniel [email protected]
![Page 2: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/2.jpg)
Para este capítulo é necessário incluir o Bancode dados PEDIDO localizado no C:\dadosEXEC 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
![Page 3: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/3.jpg)
Consultando todas as colunas
SELECT * FROM <nome da tabela>
Consultar todas as colunas da tabela Empregados dobanco de dados Pedidos
USE PEDIDOS;
SELECT * FROM EMPREGADOS
![Page 4: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/4.jpg)
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;
![Page 5: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/5.jpg)
Redefinindo os indentgificadores de coluna com uso de alias
SELECT <coluna1> [[AS] <nome_alias>], <coluna2> [[AS] <nome_alias>]
FROM <tabela>
![Page 6: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/6.jpg)
-- 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 calculadoSELECT CODFUN AS Codigo, NOME AS Nome, SALARIO AS Salario, SALARIO * 1.10 [Salário com 10% de Aumento]FROM EMPREGADOS;
![Page 7: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/7.jpg)
Laboratório 1 página 190
![Page 8: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/8.jpg)
Ordenando Dados-- Ordenando os dados na ordem ascendenteSELECT * FROM EMPREGADOS ORDER BY NOMESELECT * FROM EMPREGADOS ORDER BY NOME ASCSELECT * FROM EMPREGADOS ORDER BY SALARIOSELECT * FROM EMPREGADOS ORDER BY SALARIO ASCSELECT * FROM EMPREGADOS ORDER BY DATA_ADMISSAO-- Ordenando os dados na ordem decrescenteSELECT * FROM EMPREGADOS ORDER BY NOME DESCSELECT * FROM EMPREGADOS ORDER BY SALARIO DESCSELECT * FROM EMPREGADOS ORDER BY DATA_ADMISSAO DESC
Obs: Caso não seja especificado ASC ou DESC o padrão é ASC
![Page 9: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/9.jpg)
-- Ordenando por nome da colunaSELECT CODFUN AS Codigo, NOME AS Nome, SALARIO AS Salario, SALARIO * 1.10 [Salário com 10% de Aumento]FROM EMPREGADOSORDER BY 4;
![Page 10: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/10.jpg)
-- Ordenando várias colunasSELECT COD_DEPTO, NOME, DATA_ADMISSAO,
SALARIO FROM EMPREGADOS ORDER BY COD_DEPTO, SALARIO--SELECT COD_DEPTO, NOME, DATA_ADMISSAO,
SALARIO FROM EMPREGADOS ORDER BY COD_DEPTO DESC, SALARIO
![Page 11: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/11.jpg)
ORDER BY com TOP O resultado é selecionado a partir do conjunto ordenado
-- Lista os 5 primeiros empregados de acordo com a chave -- primáriaSELECT TOP 5 * FROM EMPREGADOS
-- Lista os 5 empregados mais antigosSELECT TOP 5 * FROM EMPREGADOS ORDER BY DATA_ADMISSAO
![Page 12: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/12.jpg)
-- Lista os 5 empregados mais novosSELECT TOP 5 * FROM EMPREGADOS ORDER BY DATA_ADMISSAO DESC
-- Lista os 5 empregados que ganham menosSELECT TOP 5 * FROM EMPREGADOS ORDER BY SALARIO
-- Lista os 5 empregados que ganham maisSELECT TOP 5 * FROM EMPREGADOS ORDER BY SALARIO DESC
![Page 13: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/13.jpg)
ORDER BY com TOP WITH TIES-- Listar os 7 funcionários que ganham maisSELECT TOP 7 CODFUN, NOME, SALARIOFROM EMPREGADOS ORDER BY SALARIO DESC-- Listar os 7 funcionários que ganham mais inclusive os que
possuem mesmo valorSELECT TOP 7 WITH TIES CODFUN, NOME, SALARIOFROM EMPREGADOS ORDER BY SALARIO DESC-- Mostrar 10% das linhas da tabela EmpregadosSELECT TOP 10 PERCENT WITH TIES * FROM EMPREGADOS ORDER BY SALARIO DESC
![Page 14: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/14.jpg)
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
![Page 15: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/15.jpg)
Consultando com operadores de comparação de string= (igual)<> ou != (desigual)> (maior que)< (menor que)>= (maior que ou igual)<= (menor que ou igual)
![Page 16: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/16.jpg)
-- Seleciona todos os Empregados que recebem menos de 1.000SELECT * FROM Empregados WHERE SALARIO < 1000ORDER BY SALARIO-- Seleciona todos os Empregados que recebem mais de 5.000SELECT * FROM Empregados WHERE SALARIO > 5000ORDER BY SALARIO-- Seleciona todos os Empregados que estão alocados nos-- departamento com código menor e igual a 3SELECT * FROM Empregados WHERE COD_DEPTO <= 3ORDER BY COD_DEPTO
![Page 17: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/17.jpg)
-- Seleciona os empregados do código de departamento = 2SELECT * FROM Empregados WHERE COD_DEPTO = 2ORDER BY COD_DEPTO-- Seleciona os empregados do código de departamento -- diferente de 2SELECT * FROM Empregados WHERE COD_DEPTO <> 2ORDER BY COD_DEPTO
![Page 18: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/18.jpg)
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
![Page 19: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/19.jpg)
-- Seleciona os empregados do código de -- departamento 2 e que ganham mais de 5000
SELECT * FROM EMPREGADOS WHERE COD_DEPTO = 2 AND SALARIO > 5000-- Seleciona os empregados do código de -- departamento 2 ou que ganham mais de 5000SELECT * FROM EMPREGADOSWHERE COD_DEPTO = 2 OR SALARIO > 5000
![Page 20: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/20.jpg)
-- Execute a consulta abaixo e apresente o resultado
SELECT * FROM EmpregadosWHERE COD_DEPTO = 2 AND COD_DEPTO = 5
![Page 21: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/21.jpg)
/* 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 EmpregadosWHERE COD_DEPTO = 2 AND COD_DEPTO = 5-- O correto neste caso é utilizar o operador ORSELECT * FROM EmpregadosWHERE COD_DEPTO = 2 OR COD_DEPTO = 5
![Page 22: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/22.jpg)
-- Mais ExemplosSELECT * FROM EMPREGADOSWHERE SALARIO >= 3000 AND SALARIO <= 5000ORDER BY SALARIO--SELECT * FROM EMPREGADOSWHERE SALARIO < 3000 OR SALARIO > 5000ORDER BY SALARIO--SELECT * FROM EMPREGADOSWHERE NOT (SALARIO >= 3000 AND SALARIO <= 5000)ORDER BY SALARIO
![Page 23: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/23.jpg)
Consultando um intervalo de valoresA cláusula BETWEEN filtra dados com base em uma faixa de
valores-- Pesquisar intervalo ENTRE dois valoresSELECT * FROM EMPREGADOSWHERE SALARIO >= 3000 AND SALARIO <= 5000ORDER BY SALARIO-- OUSELECT * FROM EMPREGADOSWHERE SALARIO BETWEEN 3000 AND 5000ORDER BY SALARIO
![Page 24: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/24.jpg)
-- Seleciona os empregados com data de -- admissão de 01/01/2000 até 31/12/2000, -- ordenando pela Data de admissão
SELECT * FROM EmpregadosWHERE DATA_ADMISSAO BETWEEN '2000.1.1' AND '2000.12.31'ORDER BY DATA_ADMISSAO
![Page 25: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/25.jpg)
-- Pesquisar valores FORA do intervaloSELECT * FROM EMPREGADOSWHERE SALARIO < 3000 OR SALARIO > 5000ORDER BY SALARIO-- OUSELECT * FROM EMPREGADOSWHERE SALARIO NOT BETWEEN 3000 AND 5000ORDER BY SALARIO
![Page 26: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/26.jpg)
Laboratório 2 página 191
![Page 27: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/27.jpg)
Consultando com base em strings de caractereOperador Like – Comparar cadeias de caracteres.
Utiliza o caracter % como curinga. -- Seleciona todos Empregados que possuam nomes que -- começando por MARIASELECT * FROM EMPREGADOSWHERE NOME LIKE 'MARIA%' -- Seleciona empregados que possuam nomes que -- começando por MASELECT * FROM EMPREGADOSWHERE NOME LIKE 'MA%’
![Page 28: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/28.jpg)
-- Seleciona empregados que possuam nomes que começando por MSELECT * FROM EMPREGADOS WHERE NOME LIKE 'M%' -- Nomes terminando por MARIASELECT * FROM EMPREGADOS WHERE NOME LIKE '%MARIA’-- Nomes terminando por SOUZASELECT * FROM EMPREGADOS WHERE NOME LIKE '%SOUZA‘-- Nomes terminando por ZASELECT * FROM EMPREGADOS WHERE NOME LIKE '%ZA'-- Nomes contendo MARIA SELECT * FROM EMPREGADOS WHERE NOME LIKE '%MARIA%'-- Nomes contendo SOUZASELECT * FROM EMPREGADOS WHERE NOME LIKE '%SOUZA%'-- Nomes contendo ZASELECT * FROM EMPREGADOS WHERE NOME LIKE ‘%ZA%'
![Page 29: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/29.jpg)
Outro caractere coringa é o ( _ ) que representaapenas um caractere-- Nomes que comecem por qualquer caractere e o segundo
seja a letra ASELECT * FROM Empregados WHERE NOME LIKE '_A%‘-- Nomes cuja penúltima letra seja ZSELECT * FROM Empregados WHERE NOME LIKE '%Z_'-- Nomes que terminem com LU seguido de 3 letras
quaisquerSELECT * FROM Empregados WHERE NOME LIKE '%LU___'
![Page 30: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/30.jpg)
Fornecendo várias opções para um determinado caractere
-- Nomes contendo SOUZA ou SOUSASELECT * FROM EMPREGADOSWHERE NOME LIKE '%SOU[SZ]A%'
-- Nomes contendo José ou JoseSELECT * FROM EMPREGADOS WHERE NOME LIKE '%JOS[EÉ]
%'
![Page 31: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/31.jpg)
Operador NOT LIKE
-- Nomes que não contenham a palavra MARIASELECT * FROM EMPREGADOSWHERE NOME NOT LIKE '%MARIA%'
-- Nomes que não contenham a sílaba MASELECT * FROM EMPREGADOSWHERE NOME NOT LIKE '%MA%'
![Page 32: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/32.jpg)
Consultando valores pertencentes ou não a uma lista de elementos-- Operador IN com valores numéricosSELECT * FROM EMPREGADOS WHERE COD_DEPTO IN (1,3,4,7)ORDER BY COD_DEPTO-- Operador IN com caracteresSELECT NOME, ESTADO FROM CLIENTESWHERE ESTADO IN ('AM', 'PR', 'RJ', 'SP')-- Listar todos os estado que Não estão na listaSELECT NOME, ESTADO FROM CLIENTESWHERE ESTADO NOT IN ('AM', 'PR', 'RJ', 'SP')
![Page 33: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/33.jpg)
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çoConsiderações- Nulo não é um valor zero- Retorna um valor desconhecido- Não é uma string vazia- Em cálculos, retorna um valor desconhecido
![Page 34: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/34.jpg)
-- Seleciona os empregados com código de departamento-- igual a NuloSELECT * FROM EmpregadosWHERE COD_DEPTO IS NULL-- Seleciona os empregados com data de nascimento nula SELECT * FROM EmpregadosWHERE DATA_NASCIMENTO IS NULL-- Seleciona os empregados que possuem data de
nascimento SELECT * FROM EmpregadosWHERE DATA_NASCIMENTO IS NOT NULL
![Page 35: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/35.jpg)
Substituindo valores nulos
Função ISNULLSELECT CODFUN, NOME, ISNULL(COD_DEPTO,-1) AS DEPTO,
ISNULL(SALARIO,-1) AS RENDAFROM Empregados--SELECT CODFUN, NOME,
ISNULL(DATA_NASCIMENTO,'1900.1.1') AS DATA_NASCFROM Empregados
![Page 36: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/36.jpg)
FUNÇÂO COALESCE
SELECT CODCLI, NOME,COALESCE(EST_COB,ESTADO,'NC') AS
EST_COBRANCAFROM CLIENTES ORDER BY 3
![Page 37: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/37.jpg)
Laboratório 3 páginas 192
![Page 38: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/38.jpg)
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 ydmMyd dym
SET DATEFORMAT YMD
![Page 39: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/39.jpg)
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() + 45
-- A quantos dias cada funcionário foi admitido?SELECT CODFUN, NOME, CAST(GETDATE() - DATA_ADMISSAO AS INT) AS DIAS_NA_EMPRESAFROM EMPREGADOS
![Page 40: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/40.jpg)
-- Extraindo partes da data-- DiaSELECT * FROM EMPREGADOSWHERE DAY(DATA_ADMISSAO) = 1-- MêsSELECT * FROM EMPREGADOSWHERE MONTH(DATA_ADMISSAO) = 12-- AnoSELECT * FROM EMPREGADOSWHERE YEAR(DATA_ADMISSAO) = 2000-- Ano e MêsSELECT * FROM EMPREGADOSWHERE YEAR(DATA_ADMISSAO) = 2000 AND MONTH(DATA_ADMISSAO) = 1
![Page 41: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/41.jpg)
DATEPART – Retorna um inteiro da porção especificada no argumento
SELECT * FROM EMPREGADOSWHERE DATEPART(YEAR, DATA_ADMISSAO)
=2000 AND DATEPART(MONTH, DATA_ADMISSAO) = 12
* Argumentos na pág 107
![Page 42: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/42.jpg)
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 MESFROM EMPREGADOSWHERE DATEPART(WEEKDAY, DATA_ADMISSAO) = 6
![Page 43: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/43.jpg)
DATEADD() – Adição com data e hora
-- Hoje mais 45 diasSELECT DATEADD( DAY, 45, GETDATE())-- Hoje mais 6 mesesSELECT DATEADD( MONTH, 6, GETDATE())-- Hoje mais 2 anosSELECT DATEADD( YEAR, 2, GETDATE())
![Page 44: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/44.jpg)
DATEDIFF – Diferença entre datas-- Quantos dias eu viviSELECT DATEDIFF( DAY, '1959.11.12', GETDATE())-- Quantos meses eu viviSELECT DATEDIFF( MONTH, '1959.11.12', GETDATE())-- Quantos anos eu vivi SELECT DATEDIFF( YEAR, '1959.11.12', 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/2SELECT DATEDIFF( MONTH, '2009.1.20', '2009.2.15')-- Retorna 1, mas a diferença somente seria 1 em 20/6/2009SELECT DATEDIFF( YEAR, '2008.6.20', '2009.2.15')
![Page 45: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/45.jpg)
DATEFROMPARTS() – Retorna uma data a partir de valores inteiros
-- Retorna a data 25/12/2013SELECT DATEFROMPARTS (2013,12,25);
TIMEFROMPARTS() – Retorna um horário a partir de valores inteiro
-- Retorna o horário 10:25:15SELECT TIMEFROMPARTS (10,25,15,0,0);
![Page 46: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/46.jpg)
DATETIMEFROMPARTS() – Retorna data e hora-- Retorna a data 15/09/2013 14:00:15.0000SELECT 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
![Page 47: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/47.jpg)
SMALLDATETIMEFROMPARTS() – Retorna data e hora no tipo smalldatetime;
DATETIMEOFFSETFROMPARTS() – Retorna data e hora no tipo datetimeoffset.
![Page 48: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/48.jpg)
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());
![Page 49: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/49.jpg)
Alterando a configuração de idioma a partir do SSMS, página 176
![Page 50: Daniel Paulo dptsalvador@hotmail.com. Para este capítulo é necessário incluir o Banco de dados PEDIDO localizado no C:\dados EXEC sp_attach_db @dbname.](https://reader036.fdocumentos.tips/reader036/viewer/2022070507/570638591a28abb8238fcde4/html5/thumbnails/50.jpg)
Teste seus conhecimentos página 182 à 187
Laboratório 4, página 193