4326_sintaxet_sql

32
Tecnologias e Linguagens para Banco de Dados II Prof or : Gilberto Braga de Oliveira Nome ___________________________________________ Número: _____ Série ___________________ Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340 Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115 E-mail: [email protected] Site: http://www.etecfran.com.br/ 1 4326: Transact SQL com Microsoft® SQL Server TM 2005 Competências: Compreender a arquitetura cliente-servidor, aplicando-as em bancos de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados; Bases Tecnológicas: Ambientes/ferramentas de gerenciamento de bancos de dados. Descrição: Analizar como a arquitetura cliente/servidor funciona, e examinar vários bancos de dados e regras de negócio que podem ser usadas com os componentes Microsoft SQL Server 2005. Também serão executadas consultas com bancos de dados SQL Server 2005 usando as ferramentas de consulta T-SQL, abordando o básico da linguagem T-SQL, sua sintaxe e como administrar scripts T- SQL. Este curso também prepara o aluno para obter a certificação no exame 70-431. Elementos da sintaxe T-SQL T-SQL é usado naturalmente para escrever consultas e não está limitada a DML, DDL e DCL. T-SQL consiste em vários elementos sintáticos como operadores, funções, variáveis, expressões e declarações condicionais. Esses elementos sintáticos ajudam a fazer transações e consultas no banco de dados. Tipos de operadores Os operadores especificam uma ação a ser executada em uma ou mais expressões. SQL Server 2005 suporta várias categorias de operadores como os aritméticos, os de comparação, os de String e concatenação, os lógicos e os binários. Esses operadores são executados em uma ordem de precedência, de um nível maior para um menor. Veja a seguir os operadores e suas funções: Operadores Aritméticos Operadores aritméticos executam operações matemáticas em duas expressões com dados que pertencem a cadegoria de dados numéricos. Observe:

Upload: lenon-eduardo-azevedo

Post on 21-Dec-2015

3 views

Category:

Documents


0 download

DESCRIPTION

4326_SintaxeT_SQL

TRANSCRIPT

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Nome ___________________________________________ Número: _____ Série ___________________

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

1

4326: Transact SQL com Microsoft® SQL ServerTM 2005 Competências: Compreender a arquitetura cliente-servidor, aplicando-as em bancos de

dados; Habilidades: Implementar as estruturas modeladas usando banco de dados; Bases Tecnológicas: Ambientes/ferramentas de gerenciamento de bancos de dados.

Descrição: Analizar como a arquitetura cliente/servidor funciona, e examinar vários bancos de dados e regras de negócio que podem ser usadas com os componentes Microsoft SQL Server 2005. Também serão executadas consultas com bancos de dados SQL Server 2005 usando as ferramentas de consulta T-SQL, abordando o básico da linguagem T-SQL, sua sintaxe e como administrar scripts T-SQL. Este curso também prepara o aluno para obter a certificação no exame 70-431.

Elementos da sintaxe T-SQL

T-SQL é usado naturalmente para escrever consultas e não está limitada a

DML, DDL e DCL. T-SQL consiste em vários elementos sintáticos como operadores,

funções, variáveis, expressões e declarações condicionais. Esses elementos sintáticos

ajudam a fazer transações e consultas no banco de dados.

Tipos de operadores

Os operadores especificam uma ação a ser executada em uma ou mais

expressões. SQL Server 2005 suporta várias categorias de operadores como os

aritméticos, os de comparação, os de String e concatenação, os lógicos e os binários.

Esses operadores são executados em uma ordem de precedência, de um nível maior

para um menor. Veja a seguir os operadores e suas funções:

Operadores Aritméticos

Operadores aritméticos executam operações matemáticas em duas expressões

com dados que pertencem a cadegoria de dados numéricos. Observe:

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

2

Tipo de Operador

Operação

+ Soma - Subtração * Multiplicação / Divisão % Módulo

Tabela 1 - Operadores Aritméticos

Obs: + e – também podem ser usados para operações com valores datetime e

smalldatetime.

Operadores de comparação

Os operadores de comparação são usados para comparar duas expressões.

Estes operadores podem ser usados em todas as expressões, exceto text, ntext e

image. Observe os operadores de comparação suportados pelo T-SQL:

Tipo de Operador Operação = Igual > Maior que < Menor que

>= Maior ou igual a <= Menor ou igual a <> Diferente

Tabela 2 - Operadores de comparação.

Obs: Os operadores de comparação !=, !< e !> devem ser evitados pois não

obedecem ao padrão ANSI SQL-92.

Operadores de string e concatenação

O operador de string e concatenação é o + que permite concatenar texto.

Operadores Lógicos

Operadores lógicos testam se uma condição é verdadeira e retora um

valor booleano, verdadeiro, falso ou desconhecido. Os operadores lógicos suportados

pelo T-SQL são os listados a seguir:

Tipo de Operador

Operação

ALL Retorna verdadeiro se todas as

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

3

expressões de uma condição forem verdadeiras;

AND Retorna verdadeiro se ambas as expressões de uma condição forem verdadeiras;

ANY Retorna verdadeiro se uma das expressões de uma condição forem verdadeiras;

BETWEEN Retorna verdadeiro se o valor estivar entre os limites definidos na expressão;

EXISTS Retorna verdadeiro se uma sub-consulta tiver ao menos uma linha;

IN Retorna verdadeiro se o valor for igual a um dos valores da expressão contida em uma lista;

LIKE Retorna verdadeiro se o valor tiver um par correspondente;

NOT Retorna o oposto do valor de uma expressão booleana;

OR Retorna verdadeiro se uma das expressões booleanas são verdadeiras;

SOME Retorna verdadeiro se uma de uma lista de comparações for verdadeira;

Tabela 3 - Operadores Lógicos.

Operadores binários

Os operadores binários efetuam manipulações de bit entre duas expressões de

tipos de dados que pertencem a categiria integer ou string binary. Entretanto, o tipo

de dado image de uma categoria string binary não é suportado. A seguir os operadores

suportados pelo T-SQL:

Tipo de Operador Operação

& (e binário): Usado para operações “e” binárias de dois valores inteiros;

| (ou binário): Usado para operações de “ou” binário de dois valores inteiros;

^ (ou exclusivo binário) Usado para operações de “ou exclusivo” binário de dois valores inteiros.

Tabela 4 - Operadores binários.

Os operadores são organizados em uma ordem hierarquica de precedência. É

possível escrever uma operação complexa que usa multiplos operadores. Será possível

observar que a ordem de precedência irá determinar a seqüência em que as operações

são executadas. A ordem de execução pode afetar significativamente o valor dos

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

4

resultados. Também é possível que sejam escritas expressões com operadores que

estejam no mesmo nível de prescedência e neste caso eles serão avaliados da

esquerda para a direita, na ordem em que aparecem na expressão. Observe a ordem

de prescedência dos operadores na tabela a seguir:

Nível Operadores 1 + (positivo), - (negativo) e ~ (não binário) 2 * (multiplicação), / (divisão) e % (módulo)

3 + (soma e concatenação), - (subtração) e & (e binário)

4 =, <, >, <=, >=, <>, !=, !>, !< (operadores de comparação)

5 ^ (ou exclusivo binário) e | (ou binário) 6 NOT 7 AND 8 ALL, ANY, BETWEEN, IN, LIKE, OR e SOME 9 = (Atribuição)

Tabela 5 – Ordem de precedência de operadores

Ordem de precedência de operadores

Quando uma expressão complexa tem multiplos operadores a precedência de

operadores determina a sequencia em que as operações serão executadas. É

importante lembrar que a ordem de execução pode afetar os resultados de maneira

significativa.

Quando dois operadores em uma expressão tiverem a mesma ordem de

precedência, eles serão avaliados da esquerda para a direita com base na posição em

que aparecem na expressão. Por exemplo na expressão usada a seguir, o operador de

subtração é avaliado antes do de adição.

DECLARE @N int

/*Avalia (5 - 3) que é 2, depois avalia (4 + 2) que é 6 e

avalia 2 * 6, que resulta em 12*/

SET @N = 2 * (4 + (5 - 3))

PRINT @N

/*Avalia NOT (@N > 12 AND @N = 0) o que resulta em verdadeiro e

avalia @N = 12 que é verdadeiro, portanto as duas expressõs são

verdadeiras,

logo a "Primeira expressão será verdadeira!" */

IF @N = 12 AND NOT (@N > 12 AND @N = 0)

BEGIN

PRINT 'Primeira condição é Verdadeira!'

END

ELSE

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

5

BEGIN

PRINT 'Primeira condição é Falsa!'

END

/* Avalia @N = 0 que é falso, depois avalia NOT @N > 12 o que é

verdadeiro

finalmente avalia, da esquerda para a direita as expressões com AND

o que resulta em falso*/

IF @N = 12 AND NOT @N > 12 AND @N = 0

BEGIN

PRINT 'Primeira condição é Verdadeira!'

END

ELSE

BEGIN

PRINT 'Primeira condição é Falsa!'

END

Obs: Se uma expressão tem parênteses aninhados, os parênteses mais

internos são avaliados primeiro.

Funções nativas SQL Server

Funções são elementos cuja sintaxe exige zero, um ou mais valores de entreda

e retornam um valor escalar ou uma lista de valores. Em SQL Server 2005, as funções

deterministras sempre retornam o mesmo resultado para uma lista específica de

valores de entrada. Funções não deterministas retornam valores diferentes quando são

chamadas repetidas vezes com os mesmos valores de entrada. As funções SQL

também podem ser categorizadas com base nos tipos de entradas que a função aceita.

Funçõs de String

Usadas para executar operações com caracteres e strings binárias.

SUBSTRING: Retorna a parte de uma string.

Exemplo USE AdventureWorks;

GO

-- Seleciona Christ de Christopher

SELECT SUBSTRING(FirstName, 1, 6) AS [Primeiro Nome]

FROM Person.Contact

WHERE ContactID = 17870;

GO

UPPER e LOWER: Converte um caractere minúsculo em maiúsculo e vice

versa.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

6

Exemplo USE AdventureWorks;

GO

-- Seleciona HUNTER de Hunter

SELECT UPPER(FirstName) AS 'Primeiro Nome'

FROM Person.Contact

WHERE ContactID = 5276;

GO

STUFF: Apaga um tamanho específico de caracteres e insere outros em um

local específico.

LTRIM: Elimina os primeiros espaços de uma string.

RTRIM: Remove os espaços finais em uma string.

REPLACE: Substitue todas as ocorrências de uma string específica em uma

dada string por outra.

Funções de Data/Hora

Essas funções efetuam operações com entradas de data e hora e retornam uma

string, um valor do tipo número ou um valor do tipo data e hora.

GETDATE: Função não determinista que retorna a data e hora corrente no

sistema.

DATEDIFF: Função determinista que retorna um número que representa a

diferença entre duas datas específicas.

Exemplo: USE ADVENTUREWORKS;

GO

-- Diferença entre a data em que foi feito o pedido e a data atual.

SELECT DATEDIFF(MONTH, OrderDate, GETDATE()) AS 'Tempo em Meses'

FROM Sales.SalesOrderHeader

WHERE SalesOrderID = 43660;

GO

DATEADD: Função determinista que retorna uma nova data/hora baseado na

adição de uma intervalo a uma data especifica.

Exemplo USE ADVENTUREWORKS;

GO

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

7

-- Alocação de funcionário por três anos.

SELECT DATEADD(YEAR, 3, HireDate) AS '3 Anos de Alocação'

FROM HumanResources.Employee

WHERE EmployeeID = 30;

GO

DATEPART: Função determinista exceto quando usada como DATEPART (dw,

date). Onde dw, é o dia da semana, dependendo do valor de SET DATEFIRST, que

define o primeiro dia da semana. Retorna um número inteiro que representa a data

especificada.

Exemplo USE ADVENTUREWORKS;

GO

-- Dia do aniversário do funcionário 20.

SELECT DATEPART(DAY, BirthDate) AS 'Dia do Aniversário'

FROM HumanResources.Employee

WHERE EmployeeID = 20;

GO

DATENAME: Função não determinista que retorna um caractere ou string que

representa a data especificada.

DAY, MONTH, e YEAR: Função determinista que retorna um inteiro que

representa o dia, mês ou ano, respectivamente.

GETUTCDATE: Função não determinista que retorna o valor de data e hora que

representa a hora atual universal do merediano de Greenwich UTC (Coordinated

Universal Time ou Greenwich Mean Time).

Funções Matemáticas

Funções matemáticas executam operações matemáticas com expressões

numéricas e retornam o resultado da operação. Elas também incluem funções

trigonométricas.

ABS: Retorna o valor absoluto, valor positivo de um número.

Exemplo -- Usando ABS.

SELECT ABS(-1.0), ABS(0.0), ABS(1.0);

GO

COS e SIN: Retorna o cosseno e o seno de um dado ângulo, respectivamente.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

8

POWER: Retorna o valor de uma potência específica de uma dada expressão.

Exemplo -- Usando POWER para executar 3 elevado a 4 e 5 elevado a 2.

SELECT POWER(3,4), POWER(5,2);

GO

ROUND: Retorna uma expressão numérica, arredondada para um tamanho

específico.

SQRT e SQUARE: Retorna a raiz quadrada e um número elevado ao quadrado

respectivamente.

Funções de conversão

São funções que convertem um tipo de dado de uma expressão em outro tipo

de dado.

As funções de conversão são CAST e CONVERT. Elas convertem

explicitamente uma expressão de um tipo de dado em outro tipo de dado. A

diferença entre elas é que CAST é padrão ANSI e CONVERT não. Além disso,

CONVERT tem parâmetros de estilo opcionais.

Exemplos --Converte uma string em SMALLDATETIME com CAST

SELECT CAST('19700930' AS SMALLDATETIME);

GO

--Converte uma string em SMALLDATETIME com CONVERT

SELECT CONVERT(SMALLDATETIME, '19700930');

GO

--Converte a data atual em string e formata dd/mm/aa

SELECT CONVERT(VARCHAR(MAX), GETDATE(), 3);

GO

--Converte a data atual em string e formata mm/dd/yyyy

SELECT CONVERT(VARCHAR(MAX), GETDATE(), 103);

GO

Funções de sistema

Executa operações que retornam informações sobre valores, objetos e

configurações.

HOST_NAME Função não determinista que retorna o nome da estação de

trabalho, muito útil para fins de auditoria de sistemas.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

9

XACT_STATE Função não determinista que retorna o estado da transação de

uma seção, indicando quando a seção tem uma transação ativa e indicando quando a

transação pode ser efetivada.

SYSTEM_USER Função não determinista que permite informar o login atual a

ser inserido em uma tabela quando não existe um valor padrão especificado.

CURRENT_TIMESTAMP Função não determinista que retorna a data e hora

atual do sistema.

CURRENT_USER Função não determinista que retorna o nome do usuário atual

como um nome de sistema.

Exemplo --Resultado: O usuário atual é: dbo

SELECT 'O usuário atual é: ' + CONVERT(VARCHAR(MAX), CURRENT_USER);

GO

DATALENGTH Função determinista que retorna o número de bytes usados

para representar qualquer expressão.

SUSER_SNAME Função não determinista que retorna o nome de identificação

do login de um número de identificação de segurança do usuário.

Funções de metadados

Retornam informações sobre o banco de dados e os seus objetos.

DB_NAME Retorna o nome do banco de dados;

OBJECT_ID Retorna o número identificador do objeto do banco de dados atual;

OBJECT_NAME Retorna o nome do objeto do banco de dados

Exemplo --Dados de objeto

USE AdventureWorks;

GO

DECLARE @ObjId INT

SET @ObjId = (SELECT OBJECT_ID('Sales.Customer', 'U'));

SELECT NAME, OBJECT_ID, Type_desc

FROM sys.objects

WHERE NAME = OBJECT_NAME(@ObjId);

GO

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

10

Funções para Nulos (NULL)

Executa operações sobre valores nulos nas tabelas.

ISNULL: Substitui nulo com outro valor definido.

NULLIF: Retorna nulo se as duas expressões dadas forem equivalentes;

COALESCE: Retorna a primeira expressão não nula entre os seus argumentos.

Exemplo /*Retorna a média dos pesos dos produtos, substituindo

os valores nulos por cinqüênta */

USE AdventureWorks;

GO

SELECT AVG(ISNULL(Weight, 50)) AS 'Peso Médio'

FROM Production.Product;

GO

Variáveis

Uma variável é um “lugar” de um determinado nome usado para armazenar

dados. É possível declarar variáveis no corpo de um procedimento de lote usando

o comando DECLARE. É possível atribuir valores às variáveis usando um comando

SET ou SELECT. Após as declarações, todas as variáveis são inicializadas com NULL.

Variáveis Locais

Uma variável local é um objeto que pode reter um único valor de dados de um

determinado tipo. Ao contrário, uma tabela variável é usada para armazenar uma

quantidade de registros.

Sintaxe para declarar uma variável local: DECLARE @nome_variavel AS <tipo_de_dado>

É possível usar declarações SET e SELECT para atribuir valores às variáveis. A

diferença fundamental entre as declarações SET e SELECT são que o SELECT permite

que seja atribuido um valor a mais de uma variável de uma vez. A outra diferença é

que o SET é padrão ANSI para atribuir valores às variáveis e o comando SELECT não.

Obs: Se for usado o comando SELECT para atribuir valor a uma variável, é

preciso se certificar que ele retorne apenas um valor. De qualquer forma, quando a

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

11

expressão for o nome de uma coluna, ela poderá retornar mais de um valor. Se

retornar mais de um valor, a variável é atribuída com o ultimo valor retornado.

Exemplo --Declaração de variáveis

DECLARE @V1 AS INT, @V2 AS INT

--Inicializando variáveis com SELECT

SELECT @V1 = 1, @V2 = 2

PRINT 'V1: ' + CONVERT(CHAR(1), @V1)

PRINT 'V2: ' + CONVERT(CHAR(1), @V2)

--Atribuindo valores às variáveis com SET

SET @V1 = 3

SET @V2 = 4

PRINT 'V1: ' + CONVERT(CHAR(1), @V1)

PRINT 'V2: ' + CONVERT(CHAR(1), @V2)

Tabelas Variáveis

As Tabelas Variáveis surgiram como alternativa para Tabelas Temporárias no

sentido de armazenar uma lista de registros. Tabelas variáveis proporcionam muitas

vantagens quando comparadas com as tabelas temporárias.

As Tabelas Variáveis podem ser usadas para armazenar um resultado listado

em SQL Server, ao invés de Tabelas Temporárias que requerem a declaração e limpeza

do código.

Tabelas Variáveis usam menos recursos que uma tabela temporária, por causa

do seu escopo bem definido.

Tabelas Variáveis podem ser usada para transações porque elas são

atualizadas de maneira mais dinâmica que as tabelas temporárias. Assim existe menos

travamento e falhas de login quando comparadas com Tabelas Temporárias.

Tabelas Variáveis requerem menos recompilações quando comparadas com

Tabelas Temporárias. Quando são armazenadas Tabelas Temporárias em uma stored

procedure pode-se precisar executar recompilações adicionais da stored procedure.

Exemplo USE AdventureWorks;

GO

--Declaração de tabela variável

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

12

DECLARE @ProdutoTotal TABLE

(

CodProduto INT,

Receita MONEY

)

--Preenchimento da tabela

INSERT INTO @ProdutoTotal(CodProduto, Receita)

SELECT ProductID, SUM(UnitPrice * OrderQty)

FROM Sales.SalesOrderDetail

GROUP BY ProductID;

GO

Expressões

Expressão é uma combinação de identificadores, valores e operadores

que o SQL Server pode avaliar para obter um resultado. Expressões podem ser parte

de um dado a ser consultado a partir de uma Query. É possível usar expressões em

uma busca condicional a fim de encontrar um dado específico.

Uma expressão pode ser uma: � Constante;

� Função;

� Nome de coluna;

� Variável;

� Sub consulta;

� Declarações NULLIF, COALESCE e CASE.

Exemplos de uso de expressões:

É possível construir expressões combinando esses elementos com operadores.

Por exemplo, na clausula SELECT a seguir o caractere literal ‘B%’ é usado junto com

a clausula LIKE e deve estar entre aspas simples.

USE AdventureWorks;

GO

SELECT LastName, FirstName

FROM Person.Contact

WHERE LastName LIKE 'B%';

GO

Coloque caracteres do tipo Data envolvidos em aspas simples, conforme o

exemplo:

USE AdventureWorks;

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

13

GO

SELECT *

FROM HumanResources.Employee

WHERE BirthDate = '1972 May 15';

GO

No exemplo a seguir, mais de uma expressão é usada:

USE AdventureWorks;

GO

SELECT ProductID, (UnitPrice * OrderQty) AS Total, (ReceivedQty + 10) AS

Recebido

FROM Purchasing.PurchaseOrderDetail;

GO

Conversões implícitas e explicitas

Os tipos de dados definem os dados a serem acondicionados nos objetos de

dados como colunas, variáveis e parâmetros. Os dois tipos de conversão de tipos de

dados são o tipo implícito e o explícito. Quando é declarado um tipo de dado para

um objeto o compilador obtem informações necessárias para que seja feita a maioria

das conversões. Essas conversões podem ser úteis para o trabalho com os valores

armazenados em outros objetos do banco de dados. Quando o compilador faz a

conversão desses dados automáticamente é usada uma conversão implícita. Quando

o administrador do banco de dados faz esse converção ela é uma converção

explícita. Evite conversões implícitas sempre que possível.

Tipos de declarações condicionais

Uma declaração condicional é uma expressão que precisa ser formulada para

avaliar uma condição específica, que pode resultar em verdadeiro, falso ou

desconhecido. Então, dependendo do resultado, é possível decidir a ação a ser

executada. O T-SQL suporta declarações condicionais, e permite extensões procedurais

para SQL que oferece várias estruturas de controle de fluxo.

BEGIN... END

Encapsula uma série de declarações T-SQL que pode ser executada como um

bloco. O BEGIN e o END são palavras chave para linguagens de controle de fluxo.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

14

Sintaxe: BEGIN

{

Declaracao_TSQL|BlocoTSQL

}

END

Exemplo: USE AdventureWorks;

GO

BEGIN TRANSACTION;

GO

IF @@TRANCOUNT = 0

BEGIN

SELECT *

FROM Person.Contact

WHERE LastName = 'Adams';

ROLLBACK TRANSACTION

PRINT 'Desfazer uma transação duas vezes pode causar erro!'

END

ROLLBACK TRANSACTION

PRINT 'Desfazendo a transação!';

GO

IF... ELSE

Impõe condições durante a execução de uma declaração T-SQL. A declaração T-

SQL ou bloco após a palavra reservada IF é executado somente se a condição for

satisfeita e a expressão booleana retornar Verdadeiro.

Sintaxe: IF Expressoa_Booleana

BEGIN

{ Declaracao_TSQL|Bloco_TSQL }

END

[ELSE

BEGIN

{ Declaracao_TSQL|Bloco_TSQL }

END]

Exemplo: IF (SUSER_SNAME() = 'sa')

BEGIN

PRINT 'Parabéns, você é SA neste sistema!'

END

ELSE

BEGIN

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

15

PRINT 'Você não é SA neste sistema!'

END;

GO

De outra forma, a declaração ou bloco seguinte a palavra reservada ELSE será

executado. Mas é sempre melhor incluir declarações BEGIN...END ao usar IF...ELSE.

WILE...

Estabelece uma condição para a repetição de uma declaração ou bloco T-SQL,

enquanto a condição específicada for avaliada como verdadeira. As declarações BREAK

e CONTINUE em um laço WHILE ajudam a parar ou reinicializar a execução do laço.

Sintaxe: WHILE Expressao_Booleana

BEGIN

[BREAK]

{ Declaracao_TSQL | Bloco_TSQL }

[CONTINUE]

END

Exemplo: DECLARE @Mes INT, @DtInteira VARCHAR(30), @Linha VARCHAR(250)

SELECT @Mes = 1

WHILE (@Mes <= 12)

BEGIN

--Cria a data inteira

SELECT @DtInteira = '1/' + RTRIM(CONVERT(CHAR(2), @Mes)) + '/09'

--Incrementa uma variável para o mês

SELECT @Mes = @Mes + 1

--Gera a linha de saída

SELECT @Linha = 'Processado em: ' + @Dtinteira

--Imprime a saída

PRINT @Linha

END;

GO

CASE...

Avalia uma lista de condições e executa uma das expressões possíveis.

Sintaxe: CASE Expressao_Entrada

WHEN Expressao_When1 THEN Expressao_Resultante1

WHEN Expressao_When2 THEN Expressao_Resultante2

[...]

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

16

WHEN Expressao_WhenN THEN Expressao_ResultanteN

[ELSE Expressao_Resultante_ELSE]

END

Exemplo: USE AdventureWorks;

GO

SELECT EmployeeID, DepartmentID, Periodo =

CASE ShiftID

WHEN 1 THEN 'Matutino'

WHEN 2 THEN 'Vespertino'

WHEN 3 THEN 'Noturno'

END

FROM HumanResources.EmployeeDepartmentHistory

ORDER BY EmployeeID;

GO

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

17

Usando Scripts T-SQL

Trabalhando com scripts T-SQL

Scripts T-SQL são uma série de declarações T-SQL que podem ser armazenadas

em um arquivo, que pode ser usado como entrada para o SQL Query Analyzer ou SQL

Management Studio. Estes utilitários podem executar os scripts SQL para gerar uma

saída desejada. Um script T-SQL tem um ou mais lotes que controlam como o SQL

Server irá executar os scripts. Eles são tipicamente armazenados como copias

permanentes de segurança para criar e popular bancos de dados em um servidor ou

como um mecanismo de backup.

Diretivas de lote

Uma diretiva de lote contem uma ou mais declarações SQL, separados por um

ponto e virgula, construído em uma string simples. Lotes podem ser mais eficientes do

que submeter declarações separadamente, pois o tráfego na rede é reduzido. O código

T-SQL é executado em lotes. Por isso, devem ser usadas diretivas de lote em

instruções que o SQL Server seja capaz de agrupar e executar, todas em um único

lote.

GO

Esta diretiva sinaliza o final de um lote de declarações T-SQL para utilitários

SQL Server. Esses utilitários interpretam o GO como um sinal para enviar o lote de

declarações para o SQL Server executar. GO não é um comando T-SQL mas é um

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

18

comando reconhecido pelo SQL Management Studio e pelos utilitários SQLCMD. Os

utilitário SQLCMD permitem a entrada de declarações T-SQL, procedimentos de

sistema, e arquivos de script no prompt de comando.

Exemplo do uso da diretiva de lote GO:

USE AdventureWorks;

GO

DECLARE @TesteGo AS VARCHAR(50)

SELECT @TesteGo = CAST((SELECT Title FROM HumanResources.Employee WHERE

EmployeeID = 7) AS VARCHAR(50));

GO

--A variável @TesteGo não é válida após o lote terminado por GO na linha

acima

--Portanto haverá um erro na continuação da execução do código nas

próximas linhas

PRINT @TesteGo;

GO

EXEC

Esta diretiva executa uma função, um procedimento de sistema, uma stored

procedore, ou uma extended stored procedure, em lote T-SQL. Ela também suporta a

execução de declarações T-SQL dinâmicas criadas pela concatenação de strings literais

e strings variáveis. Suporta também a execução de um caractere string em lote.

Exemplo do uso da diretiva EXEC

USE AdventureWorks;

GO

--Criação da Procedure com auxilio da diretiva EXEC

CREATE PROC SelecionaTabela

@Tabela sysname

AS

EXEC ('SELECT * FROM ' + @Tabela);

GO

--Execução da Procedure criada com EXEC

EXEC SelecionaTabela 'Production.Product';

GO

; (Ponto e Vírgula)

É um terminador opcional em declarações T-SQL. Uma declaração é

considerada completa apenas quando o ponto e virgula é colocado no final. Quando

uma declaração SQL ocupa muitas linhas em um script ou quando ela é digitada como

uma linha de conamdo, é preciso usar o ponto e virgula para indicar que a declaração

está completa.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

19

Observe o exemplo:

SELECT *

FROM HumanResources.Employee

WHERE EmployeeID = 3;

GO

SET

Esta diretiva altera a forma como uma determinada informação de uma sessão

especificada é obtida. A declaração SET é agrupada nas categorias a seguir

� Data e Hora

� Proteção

� Execução de consulta

� Configuração SQL-92

� Estatísticas

� Transações

� Miscelânea

Exemplo:

SET ROWCOUNT

SET DATEFORMAT

SET TRANSACTION ISOLATION LEVEL

Adicionando comentários a um código T-SQL

É fundamental documentar o código adicionando comentários apropriados

porque isso ajuda àqueles que farão a manutenção do código a entender o seu

propósito. Além do mais, quando um número de linhas de código em uma aplicação

aumenta, o próprio desenvolvedor pode sentir dificuldade em se lembrar do propósito

de cada linha. De qualquer forma, o código comentado ajuda a identificar facilmente

blocos com comandos críticos. Também é importante manter o histórico das

manutenções de código para ajudar com problemas recorrentes. Em SQL Server

existem duas formas de adicionar comentários em declarações T-SQL.

Comentário de linha (--):

Comentários de linha são comentários que abrangem apenas uma linha, e

podem ser inseridos em um linha separada, aninhados no final de uma linha de

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

20

comando T-SQL, ou contido em uma declaração T-SQL. Dois hifens (--) são o padrão

SQL–92 indicado para comentários. Veja a seguir um exemplo de comentário de linha:

-- Seleciona todas as colunas e todas as linhas

SELECT * FROM HumanResources.Employee; GO

Comentários de Bloco (/* ... */)

Comentários de bloco são usados quando é necessário inserir blocos de

declarações como comandos. Deve ser inserido o comentário entre /* e */. O código a

seguir contem um exemplo de comentário de bloco.

/* Seleciona todas as colunas e todas as linhas

a partir da tabela HumanResource.Employee */

SELECT * FROM HumanResources.Employee;

GO

Obs: Código comentado não é executado pelo servidor

Melhores práticas para escrever código T-SQL

Para facilitar a leitura do código escrito é preciso seguir algumas das melhores

práticas recomendadas. Estas práticas facilitam uma performance melhorada para as

aplicações.

Formatação

Formate o código T-SQL com as palavras reservadas todas maiúsculas e

identificando as declarações de código. Essa prática certifica a definição correta de

blocos e a seqüência de código.

Exemplo de formatação:

DECLARE @Var INT

BEGIN

SET @Var = 1

END;

GO

Nomeando objetos

Uma das melhores e mais simples práticas a serem seguidas quando os objetos

são nomeados é;

Alocar objetos em colchetes. Exemplo: [Clientes];

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

21

Manter as primeiras letras maiúsculas nos nomes das tabelas, assim como os

nomes dos bancos de dados DetalhePedido;

Incluir nomes de schemas nos nomes dos objetos. Exemplo: Vendas.Clientes;

Observe os exemplos a seguir:

USE AdventureWorks;

SELECT SalesOrderID

FROM Sales.SalesOrderDetail;

GO

Usando ponto e virgula (;)

Use ponto e virgula para indicar o final de uma declaração extensa. O uso do

ponto e virgula é muito útil ao executar comandos em utilitários de linha de comando.

Diversos outros bancos de dados exigem o uso de ponto e virgula. Além do mais, usar

ponto e virgula com SQL facilita qualquer necessidade futura de migração do banco de

dados.

Observe o exemplo a seguir:

USE AdventureWorks;

GO

SELECT SalesOrderID, ProductID, OrderQty

FROM AdventureWorks.Sales.SalesOrderDetail

WHERE SalesOrderID>50000;

GO

Usando o padrão ANSI SQL

A maioria dos desenvolvedores usam o padrão ANSI-SQL quando não há

diferença de execução e funcionalidade por que é mais confiável para todos os tipos de

banco de dados. Por exemplo, é preciso usar SET ao invés de SELECT sempre que

possível.

USE AdventureWorks;

GO

DECLARE @Var INT;

SET @Var = CAST((SELECT TaxRate

FROM [Sales].[SalesTaxRate]

WHERE SalesTaxRateID = 23)AS INT)

PRINT @Var;

GO

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

22

Comentando código

Adicione comentários apropriados ao código e ele se tornará mais fácil de ser

revisado.

Exemplo de comentário de código

/*Seleciona todos os registros cujo campo SalesOrderID são maiores que

50000

*/

SELECT SalesOrderID, ProductID, OrderQty

FROM AdventureWorks.Sales.SalesOrderDetail

WHERE SalesOrderID > 50000;

GO

Em síntese, considere também as práticas a seguir como um complemento das

melhores práticas para escrever código T-SQL:

� Não use a declaração SELECT * em pesquisas. Sempre especifique o nome das colunas a serem consultadas.

� Use SQL avançado, views, ou tabelas SQL Server 2000 quando processar dados. De outra forma uma tabela temporária é criada durante o processamento de dados e isso envolve muitas operações de entrada e saída de dados em disco.

� Use a declaração SET NOCOUNT ON no inicio dos lotes SQL, stored procedures e triggers em ambiente de produção. Isso certifica que as menssagens padrão não aparecerão após a execução.

� Evite usar declarações SQL dinâmicas sempre que possível, pois sempre durante a execução, o SQL Server deve criar um plano de execução. Portanto, a execução torna-se mais lenta que as declarações SQL estáticas.

� Use convenções próprias de notação para obter uniformidade e melhorar a capacidade de leitura do código. Por exemplo, quando nomear stored procedures, use sp como um prefixo. Da mesma forma, quando definir variáveis integer e char, prefixe as variáveis com i e c respectivamente.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

23

Ferramentas de pesquisa T-SQL

Em SQL Server 2005, é possível pesquisar bancos de dados usando várias

ferramentas como o SQL Server Management Studio, o Business Intelligence

Development Studio, o SQLCMD, e o Visual Studio .NET Designers. Ao usar o

SQL Server Management Studio, é possível criar uma solução de banco de dados e

executar uma query. Também é possível executa uma query SQL Server em outras

aplicações clientes como o Microsoft Office Access e o Microsoft Office Excel. Além

disso, ao conectar o SQL Server é possível executar queries a partir de outras

aplicações clientes que usam o Open Database Connectivity (ODBC), o Object Linking

and Embedding Database (OLEDB) e o SQL Native Access Client (SNCLI).

Ferramentas de pesquisa em bancos de dados SQL Server 2005

Observe a seguir as ferramentas de desenvolvimento em SQL Server 2005 com

o foco no SQL Server Management Studio. Existem várias ferramentas para

desenvolvimento no Ambiente de Desenvolvimento SQL Server.

SQL Server Management Studio

É o ambiente de desenvolvimento principal para o SQL Server 2005. Ele pode

ser usado para criar, executar, e salvar scripts associados a um banco de dados

específico. Pode ser usado também para criar soluções de banco de dados contendo

todos os scripts e aplicações de bancos de dados graficamente. Além disso, o SQL

Server Managemnet Studio oferece o Query Builder, que pode ser usado para criar e

rodar queries.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

24

Business Intelligence Development Studio

É um ambiente de desenvolvimento para SQL Server 2005. Pode ser usado para

criar e manter soluções de BI ponto-a-ponto. O Business Intelligence Development

Studio também é usado para desenvolver aplicações SSAS.

SQLCMD

É uma nova ferramenta de pesquisa em linha de comando do SQL Server 2005

que substitui os utilitários isql e o osql. O SQLCMD funciona como uma alternativa para

a interface gráfica do SQL Server Management Studio. Podem ser executadas

pesquisas interativas em SQLCMD, assim como poderiam ser executadas com o isql e

o osql. Além disso, o SQLCMD pode ser usado para automatizar scripts T-SQL que são

evocados pelos arquivos de lote ou outras aplicações que não precisam ser

programadas na API do SQL Server.

Visual Studio .NET Designers

SQL Server 2005 proporciona muitas extensões para o Microsoft Visual Studio

.NET environment. Isso torna fácil a construção de recursos SQL Server 2005 como

relatórios e objetos de banco de dados.

Obs: Também podem ser usados os produtos do pacote Office como Microsoft

Office Access e Microsoft Office Excel para acessar bancos de dados SQL Server e

apresentar os resultados em seus respectivos ambientes. Usuários também executam

pesquisas usando consultas T-SQL em ambiente SQL Server Management Studio. Após

exeutar suas consultas eles copiam e colam o código em suas respectivas aplicações.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

25

Executando uma query em MS Excel

Figura 1 - Menu Dados, Importar dados externos, Criar nova consulta a banco de dados.

É possível pesquisar o banco de dados AdventureWorks, importar e exportar

dados necessários, de um banco de dados para o MS Excel. Para importar dados

externos de uma fonte de dados específica no MS Excel, a partir do menu

Dados, aponte para Importar Dados Externos, e clicar em Criar nova consulta a

banco de dados.... A caixa de diálogo Escolher a fonte de dados será exibida.

Verifique se a opção Usar o assistente de consulta para criar/editar consultas

está marcada. Especifique o nome da fonte de dados, o driver para conexão

específica. Para isso na guia banco de dados, na caixa de diálogo Escolha a fonte

de dados, verifique se a opção Nova fonte de dados está selecionada e clique em

OK. A caixa de diálogo Criar nova fonte de dados é exibida.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

26

Figura 2 - Caixa de diálogo Escolher a fonte de dados.

Especifique o nome da fonte de dados, na caixa de texto, informe qual é o

nome da fonte de dados. Após nomear a fonte de dados, especifique o nome do

driver baseado no tipo de banco de dados. O banco de dados AdventureWorks é um

banco de dados SQL Server, assim, na caixa de listagem Selecionar um driver para

o banco de dados, selecione SQL Server. Para conectar ao banco de dados

AdventureWorks, clique em conectar. A caixa de diálogo de Login SQL Server será

exibida. Na lista de servidores, especifique o servidor a ser usado.

Figura 3 - Caixa de diálogo: Criar nova fonte de dados

Verifique se a caixa de checagem Usar conexão confiável está selecionada.

Na região opções, especifique os detalhes da conexão. Em bancos de dados, clique

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

27

em AdventureWorks; Idioma, clique em English; Em Nome do Aplicativo,

confirme se é a versão do Microsoft Office da sua máquina; Em Identificação da

estação de trabalho, verifique se o servidor específico está selecionado e clique

em OK. A caixa de diálogo Criar uma nova fonte de dados é exibida.

Figura 4 - Caixa de diálogo Logon do SQL Server.

Para selecionar uma tabela padrão para a fonte de dados, clique em Address e

clique em OK. Na caixa de diálogo Escolha a Fonte de Dados que será exibida,

verifique se TesteDSN está selecionado e clique em OK. O Assistente de consulta –

escolher colunas será exibido. Na tabela Address, selecione a coluna City. Clique

em (>) adicionar para adicionar a coluna City na lista de Colunas em sua consulta.

Agora, clique em Avançar. A página filtrar dados do Assistente de consulta será

exibida. Para executar a query e exibir os nomes das cidades diferentes de Newark,

clique na condição diferente de e clique em Newark.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

28

Figura 5 - Caixa de diálogo “Criar nova fonte de dados” completa.

Figura 6 - Caixa de diálogo: Assistente de consulta - escolher colunas

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

29

Figura 7 - Assistente de consulta - filtrar dados

Na página filtrar dados, clique em próximo. Uma página de ordem de

classificação surge. Na opção ordenar por clique em City e clique em próximo. Surge

a página final do assistente de consulta. Para retornar o resultado da query em MS

Excel, selecione a opção Retornar dados ao Microsoft Excel, e clique em Finish.

Figura 8 - Assistente de consulta: ordem de classificação.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

30

Figura 9 - Caixa de diálogo: Assistente de consulta: concluir.

Selecione a coluna onde os dados devem ser exibidos, a linha e coluna onde o

cursor está colocado será a referência padrão para a caixa de diálogo Importar

Dados. Para aceitar o padrão clique em OK. Agora o Microsoft Office Excel está

populado com os nomes de várias cidades, exceto Newark.

Figura 10 - Caixa de diálogo: Importar dados

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

31

Figura 11 - Planilha do Excel populada com dados do SQL Server 2005

Demonstração

1. Abra o Microsoft Office Excel

2. No menu Dados, aponte para Importar e Exportar Dados, e clique em Criar nova consulta a banco de dados.... A caixa de diálogo Escolha a fonte de dados será exibida.

3. Na guia Banco de dados, verifique se Nova Fonte de Dados está selecionada, e clique em Ok. Surgirá a caixa de diálogo Criar nova fonte de dados.

4. Na caixa de texto Qual nome deseja dar à sua fonte de dados?, escreva TesteDSN.

5. Na caixa de lista “Selecione um driver para o tipo de banco de dados que você deseja acessar:”, clique em SQL Server.

6. Na caixa de diálogo Criar um nova fonte de dados, clique em Conectar. A caixa de diálogo Logon do SQL Server surge.

7. Na lista Servidor, escreva o nome do servidor que está sendo usado (Exemplo: GILBERTE-325703). Verifique se a opção Usar conexão confiável está selecionada.

8. Clique em Opções. As opções são exibidas.

9. Na lista de Banco de dados, clique em AdventureWorks.

10. Na lista de Idioma, clique em Inglês.

11. Na caixa de texto Nome do aplicativo, verifique se alguma versão do Microsoft Office está selecionada.

Tecnologias e Linguagens para Banco de Dados II Profor: Gilberto Braga de Oliveira

Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340

Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115

E-mail: [email protected] Site: http://www.etecfran.com.br/

32

12. Na caixa de texto Identificação da estação de trabalho, verifique se está o nome do servidor (GILBERTE-325703), e clique em OK.

13. Na lista Selecione uma tabela padrão para a fonte de dados (opcional): clique em Address e clique em OK.

14. Na caixa de diálogo Criar nova fonte de dados que surge, verifique se TesteDSN está selecionado, e clique em OK. O Assistente de Consulta será exibido.

15. Na lista Tabelas e Colunas disponíveis da página escolher colunas, clique para selecionar City na tabela Address. A tabela Address estará selecionada.

16. Clique em adicionar (>) para adicionar City para a lista de Colunas em sua consulta.

17. Na página escolher colunas, clique em Próximo. A página de filtrar dados será exibida.

18. Clique em City na área Coluna a filtrar. Na lista City da seção Só Incluir linhas onde, clique em desigual, e clique em Newark.

19. Na página filtrar dados, clique em próximo. A página Ordem de classificação será exibida.

20. Na caixa de listagem Classificar por, clique em City, e clique em Próximo, para aceitar as configurações padrão. A caixa de diálogo concluir do Assistente de consulta será exibida.

21. Na página O que gostaria de fazer a seguir?, verifique que a opção Retornar dados ao Microsoft Excel esteja selecionada, e clique em Concluir. A caixa de diálogo de Importar dados será exibida.

22. Clique OK para aceitar as configurações padrão. Os dados da coluna City serão importados para o Microsoft Offce Excel sem a cidade Newark.