REVISÃO DE INSTRUÇÕES BÁSICAS DO COMANDO SELECT
SELECT POSSUI 3 RECURSOS BASICAMENTE:
- PROJEÇÃO: Escolha das colunas que serão retornadas;
- SELEÇÃO: Limitação de linhas que irão ser retornados;
- JOIN: Junção entre tabelas de acordo com o modelo relacional;
SELECT BÁSICO PARA O ORACLE:
SELECT [NOME_DA_COLUNA] FROM [NOME_DA_TABELA]
(Obrigatório ter uma tabela para retorno)
INSTRUÇÕES BÁSICAS DO COMANDO SELECT
- Ao utilizar o caracter “*” após o comando SELECT, será retornado todas as colunas da tabela;
- Caso esteja utilizando JOIN, será retornado todas as colunas de todas as tabelas;
SELECIONANDO COLUNAS ESPECÍFICAS
- Necessário declarar dentro do SELECT
SELECT [NOME_COL1], [NOME_COL2], … FROM [NOME_TABELA];
INSTRUÇÕES SELECT
- NÃO SÃO CASE-SENSITIVE;
- Os dados SÃO CASE-SENSITIVE;
- Podem ocupar uma ou mais linhas;
- Para melhor indentação, as cláusulas são colocadas em linhas diferentes;
- Para o iSQL-Plus, o terminador é “;” (opcional) para um único comando;
- Para o SQL-Plus, o terminador é “;” (obrigatório)
FORMATAÇÃO SUGESTIVA
SELECT [NOME_COL1], [NOME_COL2], [NOME_COL3], … FROM [NOME_TABELA] WHERE [CONDIÇÃO1] AND [CONDIÇÃO2] OR [CONDIÇÃO3];
EXPRESSÕES ARITMÉTICAS
- Podemos utilizar os operadores aritméticos dentro da instrução SELECT, basicamente para manipular dados do tipo numéricos e datas;
- Basicamente são:
- + –> soma
- – –> subtração
- * –> multiplicação
- / –> divisão
- Utilizado para modificar (em uma SELECT, somente em visualização) os dados no retorno de uma SELECT;
- Podem ser utilizadas na cláusula SELECT, WHERE, ORDER BY, GROUP BY (EXCETO na cláusula FROM)EXEMPLO DE UTILIZAÇÃO
SELECT first_name, salary, salary + 300 --> CAMPO VIRTUAL FROM employees;
ORDEM DOS OPERADORES
- Caso ocorra de uma expressão aritmética conter vários operadores, a ordem é seguida pela regra matemática;
- * e / –> primeira procedência;
- + e – –> segunda procedência;
-
- Operadores com a mesma prioridade, a operação é resolvida da esquerda para a direita;
- Pode-se inverter a prioridade dos operadores utilizando os simbolos parênteses “(” e “)”;
- EXEMPLOS
10 + 300 / 50 = 16 (10 + 300) / 50 = 6,2 200 + 300 / 5 *4 = 440 (200 + 300) / 5 * 4 = 400
VALORES NULOS
- É diferente do valor 0 (zero);
- É diferente de “ ” (espaço em branco);
- É a ausência total de um dado;
- Não conseguimos fazer operações (soma, multiplicação, divisão) com valores nulos;
- Qualquer tipo de dado pode ser nulo;
- É possível impeder valores nulos com CONSTRAINTS (restrições);
- As CONSTRAINTS são PRIMARY KEY e NOT NULL;
- O ideal seria que não existisse valores nulos em nenhum campo, porém maioria das regras de negócio impedem essa teoria;
- A utilização de campos com valores nulos em expressões aritméticas resultará em nulo;
- Mesmo em tipos de variáveis booleanas, o nulo não pode ser comparado, ou seja, um valor nulo é diferente de TRUE e FALSE;
ALIAS
-
- É um apelido que podemos dar para uma coluna, ou seja, renomeamos em tempo de execução os nomes de colunas para melhor serem apresentados ao usuário;
- Utilizado geralmente em colunas que contém cálculo;
- O ALIAS NÃO altera o nome real da coluna que está na tabela;
- Coloca-se o ALIAS depois do nome da coluna e antes da virgula (que separa colunas na cláusula SELECT), opcionalmente com a palavra “AS”;
- Em caso do alias precisar utilizer espaço em branco ou caracteres especiais (“#” ou “$”), é necessário colocar entre aspas duplas (“ ”);
- EXEMPLO:
SELECT first_name AS Nome, salary * 12 "Salario Anual", --> CONTÉM UM ESPAÇO NO TEXTO ENTRE ASPAS last_name as “sobre#nome” FROM employees;
CONCATENAÇÃO
- Serve para fazer a junção de colunas com outras colunas, e/ou variáveis, e/ou constantes;
- É criado uma coluna virtual, que o retorno será uma string, resultando uma única coluna;
- Concatentando uma string com nulo, o resultado será somente a string;
- Utilize os caracteres PIPE “||” entre as colunas ou os valores que se deseja concatenar;
- Pode-se concatenar campos com diferentes tipos (aconselhado fazer cast de dados para string);
- EXEMPLO:
SELECT first_name || ' ' || last_name AS NOME_COMPLETO FROM employees;
STRING / LITERAIS
- É um campo de qualquer tipo (número, string, data) concatenado com uma string de uma SELECT;
- Campos do tipo caractere ou data é necessário utilizar aspas simples;
- Cada string de caractere é retornada em todas as linhas retornadas da SELECT;
DELIMITADORES
-
-
- Quando queremos mostrar um character de comando dentro de uma string, utilizamos o delimitadores; Por exemplo, o caracter ” ‘ ” (aspas simples);
- Para isso, utilizamos o (q), e um delimitador podendo ser [ ], , { }, (), etc.
- EXEMPLO:
SELECT first_name || ' tem o código da função ' || job_id FROM employees; SELECT first_name || ' tem o código da função ' || job_id as "Concatenação de string"
- EXEMPLO COM QUOTA:
SELECT job_id || q'['s]' FROM employees; SELECT job_id || q'['s é a funcao de ]' || first_name FROM employees;
-
-
Exercícios – Funções com Strings
Utilize o schema HR do banco de dados Oracle 11g XE
Exercícios – Funções com Strings
Utilize o schema HR do banco de dados Oracle 11g XE1. Selecione o nome e sobrenome dos funcionários em um único campo chamado nome completo, o email todo em minusculo com a extensão @orcl.com.br chamado email_corporativo de todos os funcionários que estejam entre a letra A e M, considerando a primeira letra do nome, por ordem do nome completo;
2. Selecione o sobrenome dos funcionários, a quantidade de caracteres do sobrenome, que a quantidade de caracteres do sobrenome esteja entre 3 a 6;
3. Selecione o nome dos funcionários, o email do funcionário em minusculo, o salário do funcionário, a qual a primeia letra do email seja “a” e que tenha mais de 3 caracreres o email;
4. Selecione o nome, o job_id e o salário de todos os funcionários que tenha o job_id st_man e st_clerk, mostrando a seguinte frase exemplo:Daniel, que tem a função de Fi_Account, tem o salário de $9.000,00, colocando um apelido mais amigável para esta coluna;
5. Selecione o nome e sobrenome dos funcionários (em um único campo), a data de admissão adicionada mais 1 ano colocando um apelido de férias_previstas, mostrando a seguinte frase: Michael Rogers tem a previsão de férias programadas para 12/12/2008;
Vídeo1
Video 2
Video 3