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:
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:
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.
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.
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 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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Curso de SQL. - Macoratti
Usando SQL com ADO - Macoratti
SQL Server - T-SQL Para Iniciantes - Macoratti
SQl - Selecionando dados com SQL - Macoratti
SQL - Consultas T-SQL Básicas - Macoratti
SQL Server - Realizando Consultas SQL - Macoratti