SQL - Consultas SQL Básicas no SQL Server - I

Neste artigo vou apresentar as consultas básicas mais usadas no SQL Server.

      

Este artigo será essencialmente prático e vai usar o banco de dados SQL Server 2012 para exibir as principais consultas usadas no SQL Server.

Nota: O funcionamento nos demais bancos de dados relacionais pode ser diferente incluindo o MS Access.

Atualmente, o SQL é usado principalmente por programadores que usam comandos SQL com sua linguagem para construir aplicativos que acessam dados em um banco de dados.

Existem quatro operações fundamentais que se aplicam a qualquer banco de dados:

- Ler os dados - SELECT
- Inserir novos dados - INSERT
- Atualizar dados existentes - UPDATE
- Remover dados - DELETE

Essas operações são conhecidas como CRUD (Create, Read, Update, Delete).

Vamos usar o Server Explorer, um recurso disponível no Visual Studio 2017, para realizar as operações com o banco de dados SQL Server.

Para exibir o Server Explorer clique no menu View -> Server Explorer

Você verá a janela do Server Explorer exibindo os banco de dados, servidores e conexões existentes:

1- Criando um banco de dados

Abra o Server Explorer e clique com o botão direito sobre o item Data Connections;

No menu suspenso clique em Create New SQL Server Database...

Na próxima janela informe o nome do servidor, escolha o tipo de autenticação e informe o nome do banco de dados que deseja criar.

Abaixo temos os dados usados neste artigo:

Ao final você verá o banco de dados criado na janela do Server Explorer:

2- Criando a tabela Funcionarios

Clique com o botão direito do mouse sobre o item Tables e selecione a opção : Add New Table

Na janela do descritor da tabela informe as o nome das colunas e o Data Type conforme mostra a figura abaixo:

Para definir a coluna Id como do tipo Identity, selecione a coluna e clique com o botão direito do mouse e abra a janela Properties. A seguir em Identity Specification informe o valor True.

Nota: Voce pode usar o script gerado para criar a tabela diretamente no SQL Server Management Studio.

Para criar a tabela informe o nome Funcionarios e clique em Update no canto superior esquerdo da janela do descritor e a seguir clique no botão : Update Database

Após atualizar a exibição você verá na janela Server Explorer a tabela Funcionarios com as colunas criadas :

3- Inserindo dados na tabela

Para inserir dados em uma tabela usamos a instrução SQL INSERT INTO.

Sintaxe :

INSERT INTO NOME_TABELA (coluna1, coluna2, coluna3,...colunaN)] VALUES (valor1, valor2,...valorN);

Você não precisa especificar o nome das colunas na consulta SQL se estiver adicionando valores para todas as colunas da tabela. Tenha apenas a certeza de que a ordem dos valores esteja na mesma ordem das colunas na tabela. A sintaxe SQL INSERT INTO, neste caso, seria a seguinte:

INSERT INTO NOME_TABELA VALUES (valor1,valor2,valor3,...valorN);

Para incluir dados na tabela clique com o botão sobre a tabela Funcionarios e a seguir clique em New Query.

Na janela de consultas inclua a consulta SQL para incluir dados conforme abaixo:

Para executar clique no ícone Execute no canto superior esquerdo; se tudo deu certo você verá uma mensagem : (1 row(s) affected) indicando que os dados foram incluidos na tabela.

Observe que na consulta eu não informei a coluna Id pois ela é do tipo identity e é icrementada automaticamente.

Podemos informar mais de uma instrução SQL INSERT INTO na janela de consultas:

4- Consultando dados com SELECT

Podemos consultar os dados de uma tabela usando a instrução SELECT.

Sintaxe:

SELECT coluna1, coluna2, colunaN FROM nome_tabela;

Aqui, coluna1, coluna2 ... são os campos de uma tabela cujos valores você deseja buscar.

Se você quiser buscar todos os campos disponíveis no campo, poderá usar a seguinte sintaxe:

SELECT * FROM nome_tabela;

Para exibir todos os registros da tabela Funcionarios temos a seguinte consulta:

Vemos que temos 5 linhas na tabela ou 5 registros.

5- Selecionando valores distintos com SELECT DISTINCT

Podemos usar a instrução SELECT DISTINCT para retornar somente colunas com valores diferentes. Havendo colunas com valores duplicados podemos exibir somente os valores distintos.

Para o exemplo vamos exibir somente as colunas Idade com valores diferentes:

Note que exibimos apenas 4 linhas pois existem dois registros com a coluna Idade com valor igual a 28.

Para saber o número de linhas com valores distintos usamos COUNT(DISTINCT COLUNA) :

6- Ordenando a exibição com ORDER BY

Podemos ordernar a exibição da consulta com SELECT incluindo a cláusula ORDER BY.

Por padrão é usada a ordem Ascendente(ASC) para aplicar a ordem descendente use a palavra-chave DESC:

Podemos realizar a ordenação com mais de uma coluna : ODERB BY Coluna1, Coluna2, etc...

7- Filtrando registros com a cláusula WHERE

Usamos a cláusula WHERE para filtrar registros. Ela é usada para extrair apenas os registros que atendem a uma condição especificada podendo se usada com as instruções SELECT, UPDATE, etc.

Sintaxe:

SELECT coluna1, coluna2, ...
FROM nome_tabela
WHERE condição; 

Como exemplo vamos filtrar os funcionários com idade superior a 30 anos:

Ao definir a condição da cláusula WHERE quando a coluna for uma string devemos incluir o valor entre aspas simples : Ex: Select * from Funcionarios WHERE Nome='Macoratti'

Podemos usar outros operadores além do operador de igualdade(=).  Abaixo temos uma relação dos principais operadores usados com a cláusula WHERE :

Operador Descrição
=  Igual
<>  Não Igual (Outra notação usada !=)
>  Maior que
<  Menor que
>=  Maior que ou Igual
<=  Menor que ou Igual
BETWEEN  Entre um intervalo
LIKE  Procura por um critério definido
IN  Para especificar valores múltiplos para uma coluna

Além desses operadores podemos usar os operadores AND, OR e NOT.

Os operadores AND e OR são usados para filtrar registros com base em mais de uma condição:

  • O operador AND exibe um registro se todas as condições separadas por AND forem verdadeiras.
  • O operador OR exibe um registro se alguma das condições separadas por OR for TRUE.
  • O operador NOT exibe um registro se as condições não forem verdadeiras.

Sintaxe AND:

SELECT coluna1, coluna2, ...
FROM nome_tabela
WHERE condição1 AND condição2 AND condição3 ...;

Sintaxe OR :

SELECT coluna1, coluna2, ...
FROM nome_tabela
WHERE condição1 OR condição2 OR condição3 ...;

Sintaxe NOT:

SELECT coluna1, coluna2, ...
FROM nome_tabela
WHERE NOT condição;

Como exemplo vamos listar os funcionários cuja idade não é igual a 28.

Outro exemplo de consulta mostra os registros dos funcionários com idade entre 18 e 40 anos usando o operador BETWEEN:

Além destes operadores temos o operador LIKE.

O operador LIKE é usado em uma cláusula WHERE para procurar um padrão especificado em uma coluna.

Existem dois curingas usados em conjunto com o operador LIKE:

  •      %  :  O sinal de porcentagem representa zero, um ou vários caracteres;
  •      _   :  O sublinhado representa um único caractere;

Nota:  No MS Access o curinga _ é substituido por ?.

.Sintaxe:

SELECT coluna1, coluna2, ...
FROM nome_tabela
WHERE colunaN LIKE criterio;

Nota: Podemos ainda combinar este operador com os operadores AND e OR.

A seguir temos alguns exemplo mostrando diferentes operadores LIKE com curingas '%' e '_':

LIKE Descrição
WHERE Nome LIKE 'a%' Encontra qualquer valor que iniciam com "a"
WHERE Nome LIKE '%a' Encontra qualquer valor que termina com "a"
WHERE Nome LIKE '%an%' Encontra qualquer valor que tem "an" em qualquer posição
WHERE Nome LIKE '_r%' Encontra qualquer valor que tem "r" na segunda posição
WHERE Nome LIKE 'a_%_%' Encontra valores que iniciam com "a" e possui no mínimo um tamanho de 3 caracteres
WHERE Nome LIKE 'a%o' Encontra valores que iniciam com "a" e termina com "o"

Como exemplo temos  uma consulta que encontra os registros de funcionários cujos nomes possuem 'ar' em qualquer posição da coluna Nome:

8- A cláusula TOP

A cláusula TOP é usada com a cláusula SELECT para limitar o número de registros retornados por uma consulta SQL e são usadas para otimizar a consulta.

  • SELECT TOP é usada para definir o número de registros a serem retornados

Sintaxe:

SELECT TOP numero|percentual coluna(s)
FROM nome_Tabela
WHERE condição;

Como exemplo temos a consulta que retorna apenas 2 registros de funcionários com idade maior que 25.

A próxima consulta seleciona os primeiros 60% dos registros da tabela Funcionarios:

9- Usando as funções MIN() e MAX()

Podemos usar as funções MIN() e MAX() com a cláusula SELECT.

  • A função MIN() retorna o menor valor da coluna selecionada.
  • A função MAX() retorna o maior valor da coluna selecionada.

Sintaxe:

 SELECT MIN(coluna)
 FROM nome_tabela
 WHERE condição;
 SELECT MAX(coluna)
 FROM nome_tabela
 WHERE condição;

Como exemplo vamos retornar a menor idade com o valor MenorIdade:

Para retornar a maior idade basta usar a consulta: Select MAX(Idade) AS MaiorIdade from Funcionarios

10- Usando as funções COUNT(), AVG() e SUM()

As funções de agregação COUNT(), AVG() e SUM() processam um conjunto de valores em uma única coluna e retorna um único valor como resultado.

  • A função COUNT() retorna o número de linhas que corresponde a um critério especificado.
  • A função AVG() retorna o valor médio de uma coluna numérica.
  • A função SUM() retorna a soma total de uma coluna numérica.

A função COUNT pode receber como parâmetro o nome da coluna ou um asterisco. Ao informar o nome de uma coluna, valores do tipo null são ignorados, quando informado * ,  todas as linhas serão computadas.

Como exemplo temos uma consulta que retorna o total de funcionários com salário maior que R$ 2.000,00 :

No exemplo a seguir a consulta retorna a soma dos salários para os funcionários com idade superior a 30 anos:

Na próxima consulta estamos retornando a média salarial dos funcionários:

Essas são as consultas SQL básicas mais utilizadas no dia a dia de um desenvolvedor.

"Disse-lhe Jesus: Eu sou o caminho, e a verdade e a vida; ninguém vem ao Pai, senão por mim."
João 14:6

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