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.
Tópicos abordados
• Usandooperadores 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
• Limitandolinhas 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
• Usandoo 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
• Tabelaverdade 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;
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;
INSTRUÇÃO SELECT
BÁSICA
• Umaclá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çõesSQL 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;
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;
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;
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
DECOLUNA
SELECT CDCARGO AS CODIGO_DO_CARGO,
NMCARGO AS “Nome do Cargo”,
VRSALARIO VALOR$SALARIO
FROM CARGO;
29.
OPERADOR DE
CONCATENAÇÃO
• Concatenacolunas 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
DECONCATENAÇÃ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
• Aexibição das consultas é de todas as linhas,
incluindo linhas duplicadas:
SELECT CDCARGO
FROM FUNCIONARIO;
33.
ELIMINANDO LINHAS
DUPLICADAS
• Elimineas 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
LIMITANDO LINHAS
SELECIONADAS
• Restringeas 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;
STRINGS DE CARACTERES
EDATAS
• 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
EDATAS
SELECT NRMATRIC, NMFUNC,
DTADM
FROM FUNCIONARIO
WHERE SEXO = ‘F’
AND DTADM = ‘19930701’;
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
OPERADORSIGNIFICADO
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;
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’);
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%’
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 ‘@’;
USANDO O OPERADOR
ISNULL
• 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
ISNULL
SELECT CDCARGO, NMCARGO,
VRSALARIO
FROM CARGO
WHERE VRSALARIO IS NULL;
55.
OPERADORES LÓGICOS
OPERADOR SIGNIFICADO
ANDRetorna 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
• Umoperador 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;
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;
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;
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);