4326_sintaxet_sql
DESCRIPTION
4326_SintaxeT_SQLTRANSCRIPT
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.