programando no sql server.pdf

5
7/21/2019 Programando no SQL Server.pdf http://slidepdf.com/reader/full/programando-no-sql-serverpdf 1/5 Programando no SQL Server Neste artigo veremos os conceitos, sintaxes e exemplos práticos sobre os comandos utilizados para programar no SQL Server. Introdução –  O uso da programação no SQL Server envolve a criação e uso de variáveis, o uso de elementos de controle de fluxo e também o uso de Stored Procedures (que serão abordados no próximo artigo do curso). Assim conseguimos incluir uma determinada lógica em nossas querys. Variáveis de Usuário – Uma variável local do Transact SQL é um objeto nos scripts e batches que mantém um valor de dado. Através do comando DECLARE, podemos criar variáveis locais, sendo feito isso no corpo de uma procedure ou batch. Podemos ver abaixo, na Listagem 01 , dois exemplos de declarações de variáveis, ambos estão corretos, depende do programador qual irá utilizar.  Listagem 01 – Declaração de Variáveis Locais  --Exemplo 1 DECLARE @IdUsuario AS INT, @Nome AS VARCHAR(50), @Idade AS SMALLINT --Exemplo 2 DECLARE @IdUsuario AS INT DECLARE @Nome AS VARCHAR(50) DECLARE @Idade AS SMALLINT Em ambos os exemplos temos o uso do caractere coringa @ antes da variável. Este é um padrão para declarar variáveis e deve ser seguido pelos programadores. Podemos notar ainda que cada variável declarada tem seu datatype atribuído. Obs.: Lembrando que o AS é um alias e seu uso é opcional. É possível atribuir valores para cada uma das variáveis. Para isso, usamos o comando SET  ou o SELECT , como vemos no exemplo da Listagem 02 .  Listagem 02 – Atribuindo valores para as variáveis declaradas DECLARE @IdUsuario AS INT, @Nome AS VARCHAR(50), @Idade AS SMALLINT SET @IdUsuario = 1 SELECT @Nome = ColunaNome FROM Tabela @Idade = ColunaIdade FROM Tabela

Upload: carlos-carlos

Post on 05-Mar-2016

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programando no SQL Server.pdf

7/21/2019 Programando no SQL Server.pdf

http://slidepdf.com/reader/full/programando-no-sql-serverpdf 1/5

Programando no SQL Server

Neste artigo veremos os conceitos, sintaxes e exemplos

práticos sobre os comandos utilizados para programar

no SQL Server.

Introdução –  O uso da programação no SQL Server envolve a criação e uso devariáveis, o uso de elementos de controle de fluxo e também o uso de StoredProcedures (que serão abordados no próximo artigo do curso). Assim conseguimosincluir uma determinada lógica em nossas querys.

Variáveis de Usuário – Uma variável local do Transact SQL é um objeto nos scriptse batches que mantém um valor de dado. Através do comando DECLARE, podemoscriar variáveis locais, sendo feito isso no corpo de uma procedure ou batch.

Podemos ver abaixo, na Listagem 01, dois exemplos de declarações de variáveis,ambos estão corretos, depende do programador qual irá utilizar.

 Listagem 01 – Declaração de Variáveis Locais 

--Exemplo 1

DECLARE @IdUsuario AS INT, @Nome AS VARCHAR(50), @Idade AS SMALLINT

--Exemplo 2

DECLARE @IdUsuario AS INT

DECLARE @Nome AS VARCHAR(50)

DECLARE @Idade AS SMALLINT

Em ambos os exemplos temos o uso do caractere coringa @ antes da variável. Este éum padrão para declarar variáveis e deve ser seguido pelos programadores. Podemosnotar ainda que cada variável declarada tem seu datatype atribuído.

Obs.: Lembrando que o AS é um alias e seu uso é opcional. 

É possível atribuir valores para cada uma das variáveis. Para isso, usamos o comando

SET ou o SELECT, como vemos no exemplo da Listagem 02.

 Listagem 02 – Atribuindo valores para as variáveis declaradas 

DECLARE @IdUsuario AS INT, @Nome AS VARCHAR(50), @Idade AS SMALLINT

SET @IdUsuario = 1

SELECT @Nome = ColunaNome FROM Tabela @Idade = ColunaIdade FROM Tabela

Page 2: Programando no SQL Server.pdf

7/21/2019 Programando no SQL Server.pdf

http://slidepdf.com/reader/full/programando-no-sql-serverpdf 2/5

 Seja com SET ou SELECT, conseguimos atribuir valor as variáveis, depende danecessidade de cada desenvolvedor.

Controle de Fluxo – Assim como muitas linguagens de programação utilizamoperadores de condição, o SQL não poderia ficar de fora. Ele trabalha com esseselementos, também denominado de controle de fluxo, permitindo assim ao

desenvolvedor criar lógicas para as mais variadas situações e regras de negócio de seusistema. Os elementos de controle de fluxo que iremos ver são, nessa ordem,BEGIN/END, IF/ELSE, CASE/WHEN/THEN/END, WHILE e o TRY...CATCH.

BEGIN/END –  Os elementos BEGIN e END tem o objetivo de iniciar e finalizar,respectivamente, um bloco de comandos, de maneira que este possa ser posteriormenteexecutado. Podemos aninhar blocos de comando utilizando estes elementos.

Caso seja executado um bloco de comandos logo após a realização de um teste decondição, os elementos BEGIN e END, são usados logo após um comando IF ouWHILE. Veremos mais a frente exemplos com o uso destes elementos.

IF/ELSE –  Os elementos IF e ELSE são usados para testar condições quando umcomando Transact-SQL é executado. O IF e ELSE funcionam similarmente aoscomandos de mesmo nome usados em linguagens como C# por exemplo, para testarcondições de execução de comandos.

Confira abaixo a sintaxe do IF e ELSE no SQL:

IF Expressao_Booleana

{ comando_sql | bloco_comando }

[ ELSE

{ comando_sql | bloco_comando } ]

Sendo que o argumento Expressao_Booleana pode retornar TRUE ou FALSE. Se naexpressão booleana houver um comando SELECT, ele deve ser colocado entre

 parênteses. Já o comando_sql | bloco_comando representa um comando Transact-

SQL ou um agrupamento de comandos.

 Na Listagem 03 temos um exemplo com os elementos BEGIN/END em conjunto comIF/ELSE.

 Listagem 03 – Exemplo com IF/ELSE e BEGIN/END IF @IdUsuario > 0

BEGIN

SELECT IdUsuario

FROM Clientes

Page 3: Programando no SQL Server.pdf

7/21/2019 Programando no SQL Server.pdf

http://slidepdf.com/reader/full/programando-no-sql-serverpdf 3/5

  WHERE IdUsuario = @IdUsuario

END

ELSE

BEGIN

SELECT TOP 1 @IdUsuario = IdUsuario

FROM Clientes

END

CASE/WHEN/THEN/END – O elemento CASE é utilizado para conferir uma listade condições e, então, retornar uma entre várias expressões de resultado possíveis.CASE, que é usado em conjunto com o comando SELECT, é útil quando a intençãoé a de evitar que sejam criados comandos IF aninhados. Ele é considerado como

uma alternativa ao IF. Dois formatos podem ser designados ao comando CASE: afunção simples e a função pesquisada. Com a primeira, o resultado é obtido pormeio da comparação de uma expressão com uma série de expressões simples. Nasegunda função, é obtido um resultado específico a partir de um conjunto deexpressões booleanas.

 Na Listagem 04 pode ser visto um exemplo prático de uso do CASE.

 Listagem 04 – Exemplo de uso do elemento CASE em um SELECT  

SELECT IdProduto, Nome, Tipo =

CASE

WHEN 'A' THEN 'Produto Nacional'

WHEN 'B' THEN 'Produto dos Estados Unidos'

WHEN 'C' THEN 'Produto da China'

ELSE 'Produto de outros países'

END AS [Tipo do Produto]

FROM Produtos

WHILE –  Assim como o IF/ELSE, o comando WHILE funciona da mesma forma

que nas linguagens de programação: ele faz com que um comando ou bloco decomandos SQL seja executado repetidamente, ou seja, é criado um loop o comando ou bloco de comandos, que será executado enquanto a condição especificada forverdadeira.

A Listagem 05 nos dá um exemplo prático do uso do WHILE.

 Listagem 05 – Exemplo de uso do comando WHILE  

Page 4: Programando no SQL Server.pdf

7/21/2019 Programando no SQL Server.pdf

http://slidepdf.com/reader/full/programando-no-sql-serverpdf 4/5

 DECLARE @Contador AS SMALLINT

SET @Contador = 1

WHILE @Contador <= 10

BEGIN

SELECT @Contador

SET @Contador = @Contador + 1

END

 No exemplo acima inicializamos a variável @Contador e atribuímos a ela o valor 1.Logo após é especificado um loop onde dentro dele a variável será incrementada em 1 acada “passada” do laço. Esse incremento será feito até que o valor da variável chegue a10.

Utilizando os comandos BREAK  e CONTINUE, que serão apresentados a seguir, é possível controlar de dentro do loop a execução dos comandos do WHILE.

WHILE com BREAK –  Podemos usar o WHILE com BREAK  quando desejamosinterromper o loop em um determinado ponto. O BREAK  também pode ser usado parafinalizar a execução de um loop dentro de um comando IF/ELSE.

Vemos na Listagem 06 um exemplo com o uso do BREAK .

 Listagem 06 – Exemplo do comando BREAK em conjunto com o WHILE  

DECLARE @Contador AS SMALLINT

SET @Contador = 1

WHILE @Contador <= 10

BEGIN

SELECT @Contador

IF @Contador = 5

BREAK

SET @Contador = @Contador + 1

END

Com a execução do código acima será exibido em tela os números de 1 a 5. Ao chegarao número 5, o loop será interrompido pelo BREAK .

WHILE com CONTINUE –  Com o CONTINUE é possível reiniciar a execução deum loop executado pelo WHILE e interrompido pelo BREAK . Da mesma forma que o

Page 5: Programando no SQL Server.pdf

7/21/2019 Programando no SQL Server.pdf

http://slidepdf.com/reader/full/programando-no-sql-serverpdf 5/5

BREAK , o CONTINUE geralmente é iniciado por uma condição explicitada pelo IF.Havendo comandos após o CONTINUE, eles serão ignorados.

Podemos ver um exemplo com o CONTINUE na Listagem 07.

 Listagem 07 – Exemplo do comando CONTINUE em conjunto com o WHILE  

DECLARE @Contador AS SMALLINT

SET @Contador = 1

WHILE @Contador <= 10

BEGIN

SELECT @Contador

IF @Contador <= 5

BEGIN

SET @Contador = @Contador + 1

CONTINUE

END

BREAK

END

Fonte de Consulta: Apostila de SQL Server, da Impacta Tecnologia. 

Leia mais em: Programando no SQL Server  http://www.devmedia.com.br/programando-no-sql-server/22770#ixzz3B3oVWBt8