- Criando um banco de dados:
CREATE DATABASE [SUCOS_VENDAS]
GO
OBS: O uso de [ ] permite que o nome da tabela e das colunas tenham espaços e caracteres especiais.
- Criando uma tabela no banco:
CREATE TABLE [dbo].[TABELA DE PRODUTOS](
[CODIGO DO PRODUTO] [varchar](10) NULL,
[NOME DO PRODUTO] [varchar](50) NULL,
[EMBALAGEM] [varchar](20) NULL,
[TAMANHO] [varchar](10) NULL,
[SAVBOR] [varchar](20) NULL,
[PREÇO DE LISTA] [smallmoney] NULL
)
GO
- Excluindo uma tabela no banco:
DROP TABLE DB_TB_COND_FRETE_ATRIB_PROD
GO
- Inserindo dados em uma tabela:
INSERT INTO [TABELA DE PRODUTOS]
([CODIGO DO PRODUTO], [NOME DO PRODUTO],[EMBALAGEM],[TAMANHO], [SABOR], [PREÇO DE LISTA])
VALUES
('04012501','LIGHT','LATA', '350 mL','MELANCIA', 4.56)
GO
- Alterando dados de uma tabela:
UPDATE [TABELA DE PRODUTOS]
SET [EMBALAGEM] = 'PET', [PREÇO DE LISTA] = 3.15
WHERE [CODIGO DO PRODUTO] = '04012501'
GO
- Excluindo dados de uma tabela:
DELETE FROM [TABELA DE PRODUTOS]
WHERE [CODIGO DO PRODUTO] = '04012501'
- Adicionando Primary Key em uma tabela:
ALTER TABLE [TABELA DE PRODUTOS]
ADD CONSTRAINT PK_PRODUTOS
PRIMARY KEY CLUSTERED([CODIGO DO PRODUTO])
GO
- Adicionando colunas na tabela:
ALTER TABLE [TABELA DE VENDEDORES]
ADD [DATA ADMISSÃO] DATE NULL, [DE FÉRIAS] BIT NULL
GO
- Alterando uma coluna:
ALTER TABLE [TABELA DE PRODUTOS]
ALTER COLUMN [CODIGO DO PRODUTO]
VARCHAR(10) NOT NULL
GO
- Inserindo um dado do tipo 'data':
INSERT INTO [TABELA DE CLIENTES]
([CPF],[DATA DE NASCIMENTO])
VALUES
('0000000','1987-01-21')
GO
- Selecionar os 3 primeiros registros da tabela:
SELECT TOP 3 *
FROM [TABELA DE VENDEDORES]
GO
- Selecionando colunas específicas da tabela:
SELECT [MATRICULA], [PERCENTUAL COMISSÃO]
FROM [TABELA DE VENDEDORES]
GO
- Dando apelidos para as colunas selecionadas:
SELECT [MATRICULA] AS COD_ALUNO, [PERCENTUAL COMISSÃO] AS PERCENTUAL
FROM [TABELA DE VENDEDORES]
GO
- Data é pesquisada por padrão pela ordem 'ano-mês-dia':
SELECT *
FROM [TABELA DE CLIENTES]
WHERE [DATA DE NASCIMENTO] = '1987-01-21'
GO
- Retornando os registros superiores a um ano específico:
SELECT *
FROM [TABELA DE CLIENTES]
WHERE YEAR([DATA DE NASCIMENTO]) > 1985
GO
- No caso de filtros usando valores, não se utiliza aspas simples no critério de busca.
SELECT *
FROM [TABELA DE PRODUTOS]
WHERE [PREÇO DE LISTA] = 4.555
GO
- Apagando colunas de uma tabela:
ALTER TABLE DB_TB_COND_FRETRP
DROP COLUMN DB_TBCFT_MARCAPROD
GO
- Uso dos símbolos de >, >=, < ou <= para filtrar os dados. Os mesmos podem ser aplicados a um campo string (será utilizado o critério de ordenação alfabética).
SELECT *
FROM [TABELA DE PRODUTOS] WHERE [PREÇO DE LISTA] > 10
GO
- Like: usado para buscar partes de uma string (somente para campos caracteres).
SELECT *
FROM [TABELA DE CLIENTES]
WHERE [NOME DO CLIENTE] LIKE '%Soares%'
GO
O símbolo % antes e após a string, retorna todos os registros que tenham a string ('Soares') como dado (Figura 1).
| Figura 1: Registros da tabela cliente que contenham em qualquer parte (início, meio ou fim) a string "Soares" como dado. |
A seguir, exemplo, no qual será retornado registros que possuam 'Soares' somente no final do dado (% apenas no início da expressão a qual deseja-se se filtrar).
SELECT *


SELECT *
FROM [TABELA DE CLIENTES]
WHERE [NOME DO CLIENTE] LIKE '%Soares'
GO
Figura 1: Registros da tabela cliente que contenham a string "Soares" apensa no final do dado.
- Consultas condicionais: uso do operador 'OU':
SELECT *
FROM [TABELA DE PRODUTOS]
WHERE [SABOR] = 'Chocolate' OR [COR] = 'Marrom'
GO
- Consultas condicionais: uso do operador 'E':
SELECT *
FROM [TABELA DE PRODUTOS]
WHERE [SABOR] = 'Chocolate' AND [COR] = 'Marrom'
GO
- O comando NOT, na frente da condição, retorna o contrário do que a condição busca:
SELECT *
FROM [TABELA DE PRODUTOS]
WHERE NOT ([SABOR] = 'Chocolate' AND [COR] = 'Marrom')
GO
- O comando IN busca o registro através de um conjunto de valores. É como se existissem vários "Ous" atuando juntos.
SELECT *
FROM [TABELA DE PRODUTOS]
WHERE [SABOR] IN ('Chocolate', 'Morango', 'Creme')
GO
O comando SQL acima retornaria os mesmos registros que o comando a seguir:
SELECT *
FROM [TABELA DE PRODUTOS]
WHERE [SABOR] = 'Chocolate' OR [SABOR] ='Morango' OR [SABOR] ='Creme'
GO
Pode-se colocar junto com o IN condições usando >, >=, < ou <=:
SELECT *
FROM [TABELA DE PRODUTOS]
WHERE [SABOR] IN ('Chocolate', 'Morango') AND [Volume] > 50
GO
- O comando BETWEEN, seleciona registros entre dois valores:
SELECT *
FROM [TABELA DE PRODUTOS]
WHERE [SABOR] IN ('Chocolate', 'Morango', 'Creme') AND [Calorias]
BETWEEN 150 AND 300
- Distinct: Retornará apenas registros que tenham valores diferentes entre si:
- Distinct: remove registros repetidos.
SELECT DISTINCT EMBALAGEM, TAMANHO
FROM [TABELA DE PRODUTOS]
GO
- Order By: Alterando a ordem em que os registros são exibidos. O comando ASC torna a ordem ascendente e DESC (descendente -> do maior para o menor).
SELECT *
FROM [TABELA DE PRODUTOS]
ORDER BY [PREÇO DE LISTA] DESC
GO
Pode-se ordenar as colunas por mais de um critério:
SELECT [EMBALAGEM], [NOME DO PRODUTO]
FROM [TABELA DE PRODUTOS]
ORDER BY [EMBALAGEM] DESC, [NOME DO PRODUTO] ASC
GO
- Group by: Utilizado para fazer agrupamentos. Este comando deve ser utilizado em conjunto com uma função. Exemplos de função são: SUM (soma), AVG (média), MIN (mínimo), MAX (máximo), COUNT (contador).
SELECT ESTADO, SUM([LIMITE DE CREDITO])
FROM [TABELA DE CLIENTES] GROUP BY ESTADO
GO
Sempre que for utilizar fórmula ou função dentro da especificação do SELECT, e conter um agrupamento, esta função ou fórmula deve fazer parte do GROUP BY:
SELECT YEAR(DATA), COUNT(*)
FROM [NOTAS FISCAIS]
GROUP BY YEAR(DATA)
GO
- Having: Permite filtrar dados agrupados (utilizando o group by).
SELECT BAIRRO, ESTADO, SUM([LIMITE DE CREDITO]) AS SOMA_LIMITE FROM [TABELA DE CLIENTES]
WHERE [ESTADO] = 'SP'
GROUP BY BAIRRO, ESTADO HAVING SUM([LIMITE DE CREDITO]) >= 140000
GO
O comando having pode ainda ser utilizado em condições compostas:
SELECT EMBALAGEM, MAX([PREÇO DE LISTA]), MIN([PREÇO DE LISTA]) FROM [TABELA DE PRODUTOS]
GROUP BY EMBALAGEM HAVING SUM([PREÇO DE LISTA]) <= 80 AND MAX([PREÇO DE LISTA]) >= 6
GO
- Case/then/else/end: Utiliza condições para classificar resultados. Exemplo a seguir: Classifique os produtos em CAROS (preço maior que 12), EM CONTA (preço entre 7 e 12) ou BARATOS (preço menor que 7).
SELECT [NOME DO PRODUTO],
CASE WHEN [PREÇO DE LISTA] >= 12 THEN 'PRODUTO CARO'
WHEN [PREÇO DE LISTA] >= 7 AND [PREÇO DE LISTA] < 12 THEN 'PRODUTO EM CONTA'
ELSE 'PRODUTO BARATO'
END
FROM
[TABELA DE PRODUTOS]
GO