SQL Server - Realizando 10 Consultas SQL básicas - II


 No artigo de hoje vou mostrar como realizar algumas consultas SQL no banco de dados SQL Server (estou usando a versão 2012 Express ) de uma forma sucinta, prática  e objetiva.

Vamos continuar com as consultas SQL que iniciamos na primeira parte deste artigo.

6 - Redefinindo a semente na coluna Identity

Imagine agora que por algum motivo você tenha que redefinir o valor da semente do campo identity de uma tabela no SQL Server.

Isso significa que os valores da coluna definida como identity, geralmente o campo Id, deverão iniciar com um novo valor definido.

Vamos supor que eu queira redefinir a semente da coluna Id para 20, de forma que os novos registros inseridos tenham valores iguais a 21, 22, 23 e assim por diante.

Para poder fazer isso devemos usar a instrução T-SQL DBCC CHECKIDENT.

A sintaxe usada é :

DBCC CHECKIDENT 
 ( 
    nome_tabela
        [, { NORESEED | { RESEED [, novo_valor_semente ] } } ]
)

A instrução DBCC CHECKIDENT verifica o valor da identidade atual para a tabela especificada no SQL Server e, se for necessário, altera o valor de identidade.

Você também pode usar esta instrução T-SQL para definir manualmente um novo valor de identidade atual para a coluna do tipo identity.

Vamos aplicar a instrução e definir o novo valor da semente como igual a 20 e a seguir incluir um novo registro na tabela Funcionarios:

use Teste
DBCC checkident (Funcionarios, RESEED, 20)

Abaixo vemos o resultado da inclusão de um novo registro na tabela Funcionarios :

Insert Into Funcionarios(Nome,Sobrenome,Salario,Sexo,Cidade) values ('Xavier','de Toledo',2500,'M','Jundiai')
Select
* from
funcionarios

Nota : Você precisa ser o dono(own) da tabela e/ou ser um membro de sysadmin, db_owner ou db_ddladmin.

7 - Copiando dados de uma tabela para outra

Podemos copiar dados de uma tabela para outra usando a instrução INSERT INTO SELECT .

A tabela de destino deve existir e possuir uma estrutura onde as colunas a serem copiadas possuam uma correspondência com as colunas da tabela de origem.

Vamos então criar uma nova tabela chamada FunciTemp no banco de dados Teste:

CREATE TABLE FunciTemp
(
    Nome
Nvarchar(50) Not NUll,
    Salario
Int Not Null,
    Cidade
Nvarchar(50) Not Null
)

Agora para copiar informações da tabela Funcionarios para a tabela FunciTemp fazemos assim:

Use Teste

INSERT INTO FunciTemp (Nome, Salario ,Cidade)
SELECT
Nome, Salario, Cidade
FROM
Funcionarios

select * from FunciTemp

Podemos agrupar valores usando as cláusulas GROUP BY.

8 - Usando o operador LIKE

O operador LIKE é usado em uma cláusula WHERE e permite que você faça uma consulta em uma coluna baseada em um critério padrão muito flexível.

Sintaxe:

SELECT nome_coluna(s)
FROM nome_tabela
WHERE nome_coluna LIKE criterio;

As vezes os dados que você está desejando filtrar não têm uma ocorrência exata, ou você pretende realizar uma busca mais irrestrita.

Para isso o operador LIKE é muito versátil pois podemos definir o critérios usando um coringa ou caractere universal como % que pode ser usado para substituir qualquer outro caractere em uma string.

Supondo que desejamos filtrar todos os funcionários que tenham o nome começado pelos caracteres Mar.

Através do operador LIKE podemos definir o critério usando o caractere % e a SQL fará uma busca parcial pela string informada:

SELECT nome FROM Funcionarios WHERE nome LIKE "Mar%"

Note que usamos o caractere (%) que funciona como um coringa, substituindo os demais caracteres. Podemos fazer outras combinações como: '%ar%' , etc.

Outro caractere muito usado para definir o critério é o caractere ( _ ) que pode substituir um único caractere.

Como exemplo vamos listar os registros cuja cidade contenha a sequência '_ant_s': (onde no caractere _ podemos ter qualquer outro caractere)

use Teste
SELECT
* FROM Funcionarios Where Cidade Like
'_ant_s'

Aqui o caractere _ substitui qualquer caractere.

9 - Usando o operador Between

O operador BETWEEN pode ser usado para selecionar valores em um intervalo. Os valores podem ser números, texto e datas.

Sintaxe:

SELECT nome_coluna(s)
FROM nome_tabela
WHERE nome_coluna BETWEEN valor AND valor2;

Vamos selecionar os funcionários com salários entre 2000 e 4000:

use Teste
SELECT
* FROM Funcionarios Where Salario BETWEEN 2000 AND 4000
order
by
salario

O operador NOT BETWEEN seleciona os valores fora do intervalo definido.

Para o exemplo vamos agora selecionar os funcionários com salários fora do intervalo 2000 e 4000.

use Teste
SELECT
* FROM Funcionarios Where Salario NOT BETWEEN 2000 AND 4000
order
by
salario

10 - Valores NULL

Por padrão, uma coluna de tabela pode conter valores nulos.

Os valores NULL representam ausência de dados desconhecidos.

Assim, se uma coluna em uma tabela é opcional, podemos inserir um novo registro ou atualizar um registro existente, sem acrescentar um valor para esta coluna. Isto significa que o campo será salvo com um valor NULL.

Valores NULL são tratados de forma diferente de outros valores onde NULL é usado como um espaço reservado para valores desconhecidos ou inaplicáveis.

Nota: Não é possível comparar NULL e 0; elas não são equivalentes.

Na nossa tabela Funcionarios não existem colunas opcionais, ou seja, todas as colunas são Not Null e assim temos que informar um valor para esta coluna ao incluir dados.

Vamos alterar a estrutura da tabela definindo agora a coluna Cidade como Allow Null ou seja permitindo valores NULL.

Agora vamos incluir dois registros onde não vamos informar o nome da cidade:

Insert Into Funcionarios(Nome,Sobrenome,Salario,Sexo) values ('Yuri','Rodrigues',3250,'M')
Insert
Into Funcionarios(Nome,Sobrenome,Salario,Sexo) values ('Vanessa','Borges',2800,'F'
)

Select * from Funcionarios

Note que não informamos o valor para a coluna Cidade e que a tabela agora possui o valor NULL para estes dois registros inseridos nesta coluna.

Vamos agora selecionar os registros cuja cidade possui o valor NULL.  Para isso usamos o operador IS NULL.

Agora vamos fazer o inverso,  ou seja, selecionar os registros que não  possui valores NULL. Para isso usamos o operador IS NOT NULL.

Além desses operadores temos também as funções ISNULL()., NVL(), IFNULL() e COALESCE() que podemos usar para tratar valores NULL.

Mas isso é assunto para outro artigo.

Concluímos assim um resumo sobre 10 consultas SQL aplicadas ao banco de dados SQL Server.

Disse-lhe Jesus: Estou há tanto tempo convosco, e não me tendes conhecido, Filipe? Quem me vê a mim vê o Pai; e como dizes tu: Mostra-nos o Pai?
João 14:9

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

     Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti