Condições e Operadores para trabalhar com a cláusula Where (os comandos que suportam a cláusula Where são: SELECT, UPDATE e DELETE). Criando a tabela produto para os exemplos:
CREATE TABLE PRODUTO ( PROCODIGO BIGINT PRIMARY KEY, PRODESCRICAO VARCHAR(150) NOT NULL, PROTIPO VARCHAR(50) NOT NULL, PROQUANTIDADE INTEGER NOT NULL, PROVALOR NUMERIC(8,2) NOT NULL );
– Inserindo os dados para os exemplos:
INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (1,'VIDEO GAME','ELETRÔNICOS',100,400.53); INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (2,'IMPRESSORA','INFORMÁTICA',150,367.60); INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (3,'TELEVISOR','ELETRÔNICOS',400,1600.53); INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (4,'CELULAR','TELEFONE',300,150.00); INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (5,'CÂMERA DIGITAL','CÂMERAS',200,400.00); INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (6,'PROCESSADOR','INFORMÁTICA',100,400.53); INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (7,'FILMADORA DIGITAL','DIGITAIS',140,700.00); INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (8,'MONITOR','INFORMÁTICA',50,231.00); INSERT INTO PRODUTO (PROCODIGO,PRODESCRICAO,PROTIPO, PROQUANTIDADE,PROVALOR) VALUES (9,'CPU DELL','INFORMÁTICA',65,1300.13);
– Operador = (igual a)
SELECT PRODESCRICAO,PROTIPO FROM PRODUTO WHERE PROTIPO = 'ELETRÔNICOS';
– Operador > (maior que)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROVALOR > 1000;
– Operador < (menor que)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROVALOR < 1000;
– Operador >= (maior ou igual)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROVALOR >= 1000;
– Operador <= (menor ou igual)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROVALOR <=1000;
– Operador <> (diferente)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROTIPO <> 'INFORMÁTICA';
– Operadores lógicos – Operador lógico OR (ou)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROTIPO = 'INFORMÁTICA' OR PROVALOR >= 500;
– Operador lógicos AND (e)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROTIPO = 'INFORMÁTICA' AND PROVALOR >= 500;
– Operador IN (filtra os dados por uma lista de argumentos)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROTIPO IN ('INFORMÁTICA','DIGITAIS');
– Operador NOT IN (filtra os dados que não estão na lista)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROTIPO NOT IN ('INFORMÁTICA','DIGITAIS');
– Operador Between (permite encontrar valores por faixa)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROVALOR BETWEEN 400 AND 500;
– Operador Not Between (mostra dos os valores, exceto os que estão na faixa)
SELECT PRODESCRICAO,PROTIPO,PROVALOR FROM PRODUTO WHERE PROVALOR NOT BETWEEN 400 AND 500;
——– CLÁUSULA WHERE COM O COMANDO UPDATE. ALTERANDO O NOME DO PRODUTO PELA CHAVE PRIMÁRIA
UPDATE PRODUTO SET PRODESCRICAO = 'VIDEO-GAME' WHERE PROCODIGO = 1;
ALTERANDO O SALDO (PROQUANTIDADE) DO PRODUTO (VIDEO-GAME)
UPDATE PRODUTO SET PROQUANTIDADE = 99 WHERE PROCODIGO = 1;
ALTERANDO O NOME DO PRODUTO E O SEU SALDO (SUBTRAINDO 1)
UPDATE PRODUTO SET PRODESCRICAO = 'VIDEO-GAME', PROQUANTIDADE = PROQUANTIDADE - 1 WHERE PROCODIGO = 1;
ALTERANDO O VALOR DE TODOS OS PRODUTOS AUMENTANDO EM 3%
UPDATE PRODUTO SET PROVALOR = PROVALOR + (PROVALOR * 0.03);
ALTERANDO O VALOR EM 3% DOS PRODUTOS DE INFORMÁTICA
UPDATE PRODUTO SET PROVALOR = PROVALOR + (PROVALOR * 0.03) WHERE PROTIPO = 'INFORMÁTICA';
ALTERANDO O VALOR SOMENTE DOS PRODUTOS DO TIPO INFORMÁTICA OU TELEFONE OBS.nesse caso não é possível utilizar AND e sim OR
UPDATE PRODUTO SET PROVALOR = PROVALOR + (PROVALOR * 0.03) WHERE PROTIPO = 'INFORMÁTICA' OR PROTIPO = 'TELEFONE';
USANDO A CLÁUSULA IN PARA A QUESTÃO ACIMA
UPDATE PRODUTO SET PROVALOR = PROVALOR + (PROVALOR*0.03) WHERE PROTIPO IN ('INFORMÁTICA','TELEFONE');
CLÁUSULA WHERE COM O COMANDO DELETE.
DELETE FROM PRODUTO WHERE PROTIPO IN ('INFORMÁTICA','TELEFONE');
OPERADOR LIKE e ILIKE Usa-se o operador LIKE em uma cláusula WHERE para procurar uma string padrão. Porcentagem (%) – Qualquer carácter a partir da posição especificada.
Mostra todos os produtos que contenham a palavra VIDEO em qualquer lugar da coluna PRODESCRICAO;
SELECT * FROM PRODUTO WHERE PRODESCRICAO LIKE '%VIDEO%';
Mostra todos produtos que começam com VIDEO na coluna PRODESCRICAO.
SELECT * FROM PRODUTO WHERE PRODESCRICAO LIKE 'VIDEO%';
Mostra todos os produtos que terminam coma palavra GAME.
SELECT * FROM PRODUTO WHERE PRODESCRICAO LIKE '%GAME';
O iLIKE funciona de maneira semelhante, porém ele ignora Maiúsculas e Minúsculas.
SELECT * FROM PRODUTO WHERE PRODESCRICAO iLIKE '%GAME';
é o mesmo resultado de:
SELECT * FROM PRODUTO WHERE PRODESCRICAO iLIKE '%gAmE';
————————- Cláusula ORDER BY Este comando ordena o resultado do select. Ordena em ordem alfabética do menor ao maior (que é o padrão).
SELECT * FROM PRODUTO ORDER BY PRODESCRICAO;
Ordenando pelo valor do produto.
SELECT * FROM PRODUTO ORDER BY PROVALOR;
Ordenando pelo valor em ordem decrescente (maior pro menor).
SELECT * FROM PRODUTO ORDER BY PROVALOR DESC;
A cláusula ORDER BY pode ser utilizada junto com a cláusula where.
SELECT * FROM PRODUTO WHERE PROCODIGO IN (2,3,4) ORDER BY PROVALOR;
Referências e mais exemplos: http://www.devmedia.com.br/sql-server-2005-clausula-where-e-seus-operadores/17291 http://www.cinelformacao.com/sql/files/ud3/ud3cap3p6.htm
muito bom o material . Agora é prova kkkkk