O documento resume os principais tópicos sobre instruções SQL abordados em uma aula sobre banco de dados, incluindo sintaxe básica de SELECT, operadores aritméticos e de comparação, cláusulas WHERE, LIKE e ORDER BY.
3. Tópicos abordados
• Usando operadores aritméticos;
• Precedencia de operadores;
• Definindo um valor nulo;
• Definindo um apelido para coluna;
• Operador de concatenação;
• String literais de caracteres;
• Linhas duplicadas;
4. Tópicos abordados
• Limitando linhas selecionadas
• Usando a cláusula where;
• String de caracteres e datas;
• Operadores de comparação;
• Utilização dos operadores de comparação;
• Usando o operador between;
• Usando o operador in;
5. Tópicos abordados
• Usando o operador like;
• Usando a opção espace;
• Usando o operador is null;
• Operadores lógicos;
• Usando o operador AND;
• Tabela verdade AND;
• Usando o operador OR;
6. Tópicos abordados
• Tabela verdade OR;
• Usando o operador NOT;
• Tabela verdade NOT;
• Regras de precedência;
• Cláusula Order By;
• Classificando por apelido de coluna;
• Classificando por posição de coluna;
8. SOBRE O T-SQL
• O T/SQL (Transact SQL) é uma extensão do
SQL com recursos de design de linguagem de
programação, sendo uma extensão de
linguagem procedural do SQL Server;
• Incorpora muitos recursos avançados feitos
em linguagem de programação projetadas
durante as décadas de 2000;
10. INSTRUÇÃO SELECT
BÁSICA
• Uma cláusula SELECT especifica as colunas a
serem exibidas;
• Uma cláusula FROM especifica a tabela que
contém as colunas listadas na cláusula SELECT
11. INSTRUÇÃO SELECT
BÁSICA
Na sintaxe:
SELECT é a lista de uma ou mais colunas
DISTINCT suprime os itens duplicados
* selection todas as colunas
coluna seleciona acoluna nomeada
apelido fornece cabeçalhos diferentes às
colunas selecionadas
FROM tabela especifica a tabela contend
as colunas
12. CRIANDO INSTRUÇÕES
SQL
• Instruções SQL sem distinção entre maiusculas /
minusculas;
• Instruções SQL podem estar em uma ou mais
linhas;
• Palavras-chave não podem ser abreviadas ou
divididas entre as linhas;
• Normalmente, as cláusulas são colocadas em
linhas separadas;
• Guias e indentações são usadas para aperfeiçoar
a legibilidade;
20. PRECEDENCIA DE
OPERADORES
* / + -
• A multiplicação e a divisão têm prioridade
sobre a adição e a substração;
• Os operadores com a mesma prioridade
são avaliados da esquerda para a direita;
• Os parênteses são usados para forçar a
avaliação priorizada e para esclarecer as
instruções;
23. DEFININDO UM VALOR
NULO
• Um valor nulo não está disponível, não é
atribuído, é desconhecido ou não é aplicável;
• Um valor nulo não é o mesmo que um zero ou
um espaço em branco;
27. DEFININDO UM APELIDO
(ALIAS) PARA COLUNA
• Renomeia um cabeçalho de coluna;
• É útil para cálculos;
• Segue imediatamente o nome da coluna;
• Palavra-chave “as” é opcional entre o nome da
coluna e o apelido;
• Necessita de aspas simples ou duplas caso
contenha espaço ou caracteres especiais ou
faça a distinção entre maiúscula e minúscula;
28. USANDO UM APELIDO
DE COLUNA
SELECT CDCARGO AS CODIGO_DO_CARGO,
NMCARGO AS “Nome do Cargo”,
VRSALARIO VALOR$SALARIO
FROM CARGO;
29. OPERADOR DE
CONCATENAÇÃO
• Concatena colunas ou strings de caractere a
outras colunas;
• É representado pelo símbolo mais “+”;
• Cria uma coluna resultante que é uma
expressão de caracteres
30. USANDO UM OPERADOR
DE CONCATENAÇÃO
SELECT CDCARGO + NMCARGO
AS codigo_nome
FROM CARGO;
31. STRING LITERAIS DE
CARACTERES
• Uma literal é um caractere, um número ou
uma data incluída na lista SELECT;
• Valores literais de caractere e data devem
estar entre aspas simples (ou duplas);
• Cada string de caractere é gerada um vez para
linha retornada;
32. LINHAS DUPLICADAS
• A exibição das consultas é de todas as linhas,
incluindo linhas duplicadas:
SELECT CDCARGO
FROM FUNCIONARIO;
33. ELIMINANDO LINHAS
DUPLICADAS
• Elimine as linhas duplicadas usando a palavra
chave DISTINC na cláusula SELECT:
SELECT DISTINCT CDCARGO
FROM FUNCIONARIO;
• O DISTINCT atua sobre a linha do select, não
sendo possível ter 2 DISTINCTS na mesma SELECT
35. LIMITANDO LINHAS
SELECIONADAS
• Restringe as linhas retornadas usando a
cláusula WHERE:
• A cláusula WHERE pode comparer valores em
colunas, valores literais, expressões
aritméticas ou funções. É formada por tres
elementos:
– Nome da coluna;
– Operadores de comparação;
– Nome da coluna, constante ou lista de valores;
37. STRINGS DE CARACTERES
E DATAS
• As strings de caractere e valores de dados aparecem
entre aspas simples;
• Os valores de caractere fazem distinção entre
maiusculas e minúculas e o valores de data diferenciam
formatos;
• O format de data default é YYYY-MM-DD.
SELECT NRMATRIC, NMFUNC, DTADM
FROM FUNCIONARIO
WHERE SEXO = ‘F’
AND DTADM = ’19930601’;
38. STRINGS DE CARACTERES
E DATAS
SELECT NRMATRIC, NMFUNC,
DTADM
FROM FUNCIONARIO
WHERE SEXO = ‘F’
AND DTADM = ‘19930701’;
40. UTILIZAÇÃO DOS
OPERADORES DE
COMPARAÇÃO
• Use os operadores de comparação em
condições que comparam uma expressão a
outra. Eles são usados na cláusula WHERE
seguindo os exemplos:
WHERE hiredate = ’19950101’
WHERE SAL >= 500
WHERE ENAME = ‘SMITH’
41. OUTROS OPERADORES
DE COMPARAÇÃO
OPERADOR SIGNIFICADO
BETWEEN … AND… Entre dois valores (inclusive)
IN (list) Vincula qualquer um de uma lista de
valores
LIKE Vincula um padrão de caracteres
IS NULL É um valor nulo
42. USANDO O OPERADOR
BETWEEN
• Use o operador BETWEEN para exibir linhas
baseadas em uma faixa de valores
SELECT NMCARGO, VRSALARIO
FROM CARGO
WHERE VRSALARIO BETWEEN 450 AND 750;
44. USANDO O OPERADOR
IN
• Use o operador IN para testar os valores de
uma lista
SELECT NMFUNC, CDCARGO, CDDEPTO
FROM FUNCIONARIO
WHERE CDCARGO IN (‘C1’,’C3’,’C4’);
46. USANDO O OPERADOR
LIKE
• Use o operador LIKE para executar pesquisas
curinga com valores de string válidas;
• As condições de pesquisa podem conter
caracteres literais ou números;
- % denota zero ou muitos caracteres;
- _ (underline) denota um caractere;
47. USANDO O OPERADOR
LIKE
• Voce pode combiner caracteres de vinculação
de padrão;
SELECT NMFUNC, CDCARGO, CDDEPTO
FROM FUNCIONARIO
WHERE NMFUNC LIKE ‘JO%’
51. USANDO A OPÇÃO
ESCAPE
• Quando for necessário ter uma
correspondencia exata para os caracteres ‘%’ e
‘_’, use a opção ESCAPE
SELECT CDCARGO, NMCARGO
FROM CARGO
WHERE NMCARGO LIKE ‘%@_%’ ESCAPE ‘@’;
53. USANDO O OPERADOR
IS NULL
• O operador IS NULL testa valores que são
nulos. Um valor nulo significa que o valor não
está disponível, não-atribuído, desconhecido
ou não aplicável. Assim, não é possível testar
com “=” porque um valor nulo não pode ser
igual ou desigual a qualquer valor.
SELECT CDCARGO, NMCARGO, VRSALARIO
FROM CARGO
WHERE VRSALARIO IS NULL;
54. USANDO O OPERADOR
IS NULL
SELECT CDCARGO, NMCARGO,
VRSALARIO
FROM CARGO
WHERE VRSALARIO IS NULL;
55. OPERADORES LÓGICOS
OPERADOR SIGNIFICADO
AND Retorna TRUE se as condições de
componmentes forem TRUE
OR Retorna TRUE se cada condição de
componente for TRUE
NOT Retorna TRUE se a condição seguinte
for FALSE
56. OPERADORES LÓGICOS
• Um operador lógico combina o resultado de
duas condições de componente para produzir
um único resultado com base neles ou
inverter o resultado para a condição única.
Três operadores lógicos estão disponíveis no
SQL:
– AND, OR e NOT
57. USANDO O OPERADOR
AND
• AND exige que ambas as conduições sejam
TRUE;
SELECT CDCARGO, NMCARGO, VRSALARIO
FROM CARGO
WHERE CDCARGO = ‘C5’
AND VRSALARIO >= 2000;
60. USANDO O OPERADOR
OR
• OR exige que cada condição seja TRUE;
SELECT CDCARGO, NMCARGO, VRSALARIO
FROM CARGO
WHERE CDCARGO = ‘C5’
OR VRSALARIO >= 2000;
61. USANDO O OPERADOR
OR
SELECT CDCARGO, NMCARGO,
VRSALARIO
FROM CARGO
WHERE CDCARGO = ‘C5’
OR VRSALARIO >= 2000;
63. USANDO O OPERADOR
NOT
• NOT nega o operador usado na operação
• O operador NOT pode ser utilizado também
com outros operadores SQL, como BETWEEN
e LIKE;
SELECT CDCARGO, NMCARGO, VRSALARIO
FROM CARGO
WHERE VRSALARIO IS NOT NULL;
66. EXEMPLO DO OPERADOR
NOT
... WHERE CDDEPTO NOT IN (‘D1’,’D3’);
... WHERE VRSALARIO NOT BETWEEN 50 AND 500;
... WHERE NMCARGO NOT LIKE ’VIG%’;
... WHERE RAMAL IS NOT NULL;
68. REGRAS DE
PRECEDÊNCIA
SELECT CDCARGO, NMCARGO, VRSALARIO
FROM CARGO
WHERE CDCARGO = ‘C1’
OR CDCARGO = ‘C7’
AND VRSALARIO >= 350
• A ordem de execução usando regras de
precedencia é:
– A primeira condição é que o CDCARGO seja igual a
‘C7’ e o VRSALARIO SEJA >= 350
– A segunda condição é que o cargo CDCARGO seja
igual a ‘C1’;
69. CLÁUSULA ORDER BY
• ORDER BY classifica as linhas de 2 formas:
– ASC: ordem crescente, default (do menor para o
maior);
– DESC: ordem decrescente (do maior para o
menor);