Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceitos da arquitetura Oracle e da Linguagem SQL Recuperar dados por meio de SELECT
Tabelas externas
Otimizao de consultas Exemplos / Exerccios Prticos
Dr. Edgar F. Codd props o Modelo Relacional em 1970. a base para o Sistema de Gerenciamento de Banco de Dados Relacional (SGBDR).
O modelo composto por:
Coleo de objetos ou relaes. Conjunto de operadores para agir sobre as relaes. Integridade de Dados (acuracidade e consistncia).
Coluna (PK)
Coluna
Coluna (FK)
5 6
Campo
1
Tupla Null
Servidor Oracle
Tabelas
Dicionrio de Dados
CREATE ALTER DROP Data Definition Language (DDL) RENAME TRUNCATE COMMENT GRANT REVOKE Data Control Language (DCL)
SQL statements
Internet browser
Oracle server
iSQL*Plus
commands
Query results
Formatted report
Client
SQL uma linguagem para comunicao com o servidor Oracle para acessar dados baseada no American National Standards Institute (ANSI) standard SQL Recuperao e manipulao de dados e definies de tabelas no banco No tem um caracter de continuidade No pode ser abreviado Utiliza funes para realizar alguma formatao
iSQL*Plus Reconhece instrues SQL e as envia para o servidor Oracle uma interface de propriedade da Oracle para a execuo de instrues SQL No permite a manipulao de valores no banco de dados Tem um caracter de continuidade (_) para o caso de instruo maior que uma linha Pode ser abreviado Utiliza comandos para formatar dados
8 7
1 2 3
Listar as capacidades da instruo SELECT Executar comandos SELECT bsicos Saber diferenciar instrues SQL e comandos do iSQLPlus
Projeo
Seleo
Tabela 1
Tabela 1
Join
Tabela 1
Tabela 2
Instrues SQL no so case sensitive Instrues SQL podem ser escritas em 1 ou mais linhas Palavras-chave no podem ser abreviadas Clusulas so normalmente colocadas em linhas distintas (para maior clareza) Identao importante para uma boa leitura O ; identifica o fim de uma instruo SQL e so utilizados nos editores como o SQLPlus
Crie expresses com dados numricos e data por meio de operadores aritmticos
Operador + * / Descrio Add Subtract Multiply Divide
NULL um valor que indisponvel, no atribudo ou inaplicvel NULL NO o mesmo que 0 ou branco
SELECT last_name, job_id, salary, commission_pct FROM employees;
O Alias:
Renomeia o cabealho de uma coluna. bastante til com clculos.
Um literal um caractere, um nmero ou uma data que includa em uma instruo SELECT.
Caracteres e datas exigem o uso de A string sada para cada linha retornada.
SELECT last_name ||' is a '||job_id AS "Employee Details" FROM employees;
Objetivos:
Selecionar todos os dados de diferentes tabelas Descrever a estrutura de tabelas
1. 2. 3. 4. 5.
Conectar ao iSQLPlus. Descrever as colunas da tabela Employees. Recuperar o sobrenome, o job_id e o salrio dos empregados. Recuperar todos os dados da tabela job_grades. Verificar os 4 erros da instruo SQL abaixo e corrigi-los:
SELECT
FROM
6.
O RH solicita o seguinte relatrio: Gerar um arquivo com informaes de sobrenome, cdigo da funo, data de contratao e nmero de empregado, com o nmero de empregado aparecendo em primeiro lugar. Chame a coluna hire_date de Data da Contratao. Salve a consulta gerada como lab_01_07.sql na sua mquina local. Gere uma consulta que mostre todas as funes dos empregados existentes uma nica vez. Mostre o nome e sobrenome (separados por um espao) e concatene com o job_id, separando por uma vrgula. Chame a coluna de Empregado e Ttulo
7.
8.
9.
Restringir as linhas que so recuperadas por uma consulta SQL. Ordenar as linhas que so recuperadas por uma consulta SQL. O uso do & no iSQLPlus para restringir e ordenar dados em tempo de execuo.
EMPLOYEES
Operador
Significado
=
>
Igual a
Maior que
>=
< <= <> BETWEEN ...AND... IN(set)
LIKE
IS NULL
SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201) ;
BETWEEN:
SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500 ; Limite Inferior Limite Superior
IS NULL:
SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL ;
LIKE:
A busca pode conter tanto caracteres literais ou nmeros. % denota zero ou mais caracteres. _ denota um caractere.
SELECT FROM WHERE first_name employees first_name LIKE 'S%' ;
Operator
AND OR NOT
Meaning
Retorna TRUE se ambas as condies forem verdadeiras Retorna TRUE se uma das condies for verdadeira Retorna TRUE se a condio base for falsa
AND:
SELECT FROM WHERE AND employee_id, last_name, job_id, salary employees salary >=10000 job_id LIKE '%MAN%' ;
OR:
SELECT FROM WHERE OR employee_id, last_name, job_id, salary employees salary >= 10000 job_id LIKE '%MAN%' ;
NOT:
SELECT last_name, job_id FROM employees WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;
Operador Significado
1
2
Operadores aritmticos
Operadores de concatenao
3
4 5 6 7 8 9
Condies de Comparao
IS [NOT] NULL, LIKE, [NOT] IN [NOT] BETWEEN Diferente de Condio lgica NOT Condio lgica AND Condio lgica OR
last_name, job_id, salary employees job_id = 'SA_REP' job_id = 'AD_PRES' salary > 15000;
last_name, job_id, salary employees (job_id = 'SA_REP' job_id = 'AD_PRES') salary > 15000;
Server para ordenar as linhas retornadas numa consulta SQL. Pode ser de 2 tipos:
ASC: ordem ascendente (padro) DESC: ordem descendente
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ;
Valores nulos so exibidos no final em ordenaes ascendentes e no incio em ordenaes descendentes. possvel ordenar por qualquer coluna da tabela, ainda que a mesma no esteja na clusula SELECT.
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY employee_id ;
... salario = ? departmento = ? ... sobrenome = ? ... Quero consultar diferentes valores.
Utilizar uma varivel pr-fixada com & para solicitar um valor ao usurio:
SELECT employee_id, last_name, salary, department_id FROM employees WHERE employee_id = &employee_num ;
Utilizar o && para reusar o valor da varivel solicitando o valor ao usurio apenas 1 vez.
SELECT employee_id, last_name, job_id, &&column_name FROM employees ORDER BY &column_name ;
Utilizar o comando DEFINE para criar e atribuir um valor a uma varivel. Utilizar o comando UNDEFINE para remover uma varivel.
DEFINE employee_num = 200 SELECT employee_id, last_name, salary, department_id FROM employees WHERE employee_id = &employee_num ; UNDEFINE employee_num
Utilizar o comando VERIFY para exibir os valores da varivel antes e depois da substituio feita no iSQLPlus.
SET VERIFY ON SELECT employee_id, last_name, salary, department_id FROM employees WHERE employee_id = &employee_num;
old new
3: WHERE 3: WHERE
Objetivos:
Selecionar dados e alterar a ordem de exibio. Restringir linhas com o uso da clusula WHERE.
1.
Devido a problemas de oramento, o RH precisa de um relatrio que exiba o sobrenome e salrio dos empregados que ganham mais que $12.000. Classifique por ordem decrescente do salrio. Modifique o exerccio anterior para conseguir os salrios mais altos e tambm os mais baixos, selecionando os empregados cujos salrios no esto entre a faixa de $5.000 a $12.000 e que so do departamento 20 ou 50. Nomeie as colunas como Empregado e Salrio Mensal, respectivamente.
2.
3.
Faa um relatrio que liste os sobrenome e a data de contratao dos empregados contratados em 2004, em ordem crescente de admisso.
4.
Faa um relatrio que exiba o sobrenome e o cargo dos empregados que no possuem gerente. Faa um relatrio dinmico que mostre o sobrenome e o salrio dos empregados que ganhem mais que um valor especificado pelo prprio usurio quando executar o relatrio.
5.
6.
Crie uma consulta que solicite ao usurio o id de um gerente e selecione o ID, sobrenome, salrio e departamento dos empregados subordinados ao gerente informado. Permita ao usurio escolher por qual coluna o relatrio ser ordenado. Mostre o sobrenome de todos os empregados que possuam um a na terceira letra do sobrenome.
7.