Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SELECT
FROM
column, group_function
table
[WHERE
[GROUP BY
[HAVING
[ORDER BY
condition]
group_by_expression]
group_condition]
column];
Funciones de Grupo
AVG (DISTINCT | ALL|n)
AVG(salario), MAX(salario),
MIN(salario), SUM(salario)
p_personal
UPPER(cargo) LIKE %AUXILIAR%';
SELECT
FROM
[WHERE
[GROUP BY
[ORDER BY
column, group_function
table
condition]
group_by_expression]
column];
FROM
WHERE
p_personal
id_departamento = 4;
ID APELLIDO DEPARTMENTO
-- --------- ---------4 ROJAS
4
5 MOLAS
6 GONZALEZ
El Departamento 4 se
despliega tres veces
porque aparece como el
nmero de Departamento
de tres empleados.
WHERE
id_departamento = 4
GROUP BY id_departamento;
DEPT_ID Number
------- -----4
3
GROUP BY : Ejemplos
Despliegue las posibles clasificaciones de crdito de los clientes,
y la cantidad de clientes en cada clasificacin
SQL> SELECT califica_credito, COUNT(*) "# Clientes"
2 FROM
p_cliente
3 GROUP BY
califica_credito;
GROUP BY cargo
ORDER BY SUM(salario);
SQL>
SQL>
2
3
4
5
COLUMN
SELECT
COUNT(*)
FROM
GROUP BY
HAVING
CARGO
SALARIO ANUAL NUMERO DE EMPLEADOS
-------------------- --------------- ------------------Representante de Venta
$17,712.00
5
Gerente de Deposito
$11,388.00
10
Warehouse Manager
$14,776.80
5
Slo se despliegan
aquellos cargos para
los cuales hay ms
de dos empleados
Oracle - Inst. Zulma Argello
10
column, group_function
table
condition]
group_by_expression]
group_condition]
column];
11
12
SUBQUERIES
13
LAS SUBCONSULTAS
14
SELECT Syntax
SELECT...
FROM...
WHERE...
Subquery
Sintaxis de otro SELECT
(SELECT...
FROM...
WHERE...);
15
P_PERSONAL
P_PERSONAL
APELLIDO CARGO
--------- ----------Maduro
Analista
Smith
Analista
Nozaki
Analista
Patel
Analista
Newman
Analista
Chang
Analista
Patel
Analista
Dancs
Analista
Schwartz
Analista
SNPP - San Lorenzo
CARGO
APELLIDO
----------- --------Analista
Coronel
16
Ejemplo de la subconsulta
17
lista de columnas
tabla
expresin Operador
(SELECT
lista de columnas
FROM
tabla);
18
19
Query anidado
Query Principal
SELECT id_departamento
FROM
p_personal
WHERE apellido=Coronel;
20
apellido, cargo
p_personal
cargo =
SELECT
cargo
FROM
WHERE
p_personal
apellido = Coronel
SQL> SELECT
apellido, cargo
2 FROM
p_personal
3 WHERE
cargo =
4
(SELECT
cargo
5
FROM
p_personal
6
WHERE
apellido = Coronel);
Escriba la declaracin
de SQL para desplegar
el apellido y el cargo de
un empleado.
Escriba la declaracin
de SQL para averiguar
el cargo de Coronel.
Ponga ambas
declaraciones
y deje que el SQL
determinar el cargo para
Coronel
21
APELLIDO
---------Urguhart
Menchu
Biri
Smith
Nozaki
Patel
Newman
Markarian
Chang
Patel
Dancs
Schwartz
SNPP - San Lorenzo
CARGO
SALARIO
SALARIO
-----------------------------Encargado
1200
2500
Encargado
1250
1450
Encargado
1100
1400
Analista
940
1580
Analista
1200 AVG(SALARIO)
1550
----------Analista
795
1200
1255.08
Analista
750
1250
Analista
850
1100
Analista
800
1300
Analista
795
1307
Analista
860
1400
Analista
1100
...
Oracle - Inst. Zulma Argello
22
23
24
25
SELECT
FROM
GROUP BY
HAVING
id_departamento, AVG(salario)
p_personal
id_departamento
AVG(salario) >
(SELECT AVG(salario)
FROM
p_personal
WHERE
id_departamento = 3);
26
27
El operador EXISTS
El operador EXISTS verifica la existencia de filas en el conjunto
resultante del subquery
Si se encuentra la fila, la bsqueda ya no contina y se retorna
TRUE.
Ejemplo: Seleccionar todos los empleados que tienen al menos un
empleado que depende de l:
28
SELECT lista_de_campos
FROM <subconsulta>;
SELECT dpto, total_salario
FROM
(SELECT id_departamento dpto, SUM(salario) TOTAL_SALARIO
FROM P_PERSONAL
GROUP BY id_departamento) EMP
/
SNPP - San Lorenzo
29
QUERIES JERRQUICOS
Si la tabla contiene datos organizados jerrquicamente,
es posible recuperar los datos en orden jerrquico
utilizando la clusula jerrquica:
START WITH <condicin>
CONNECT BY <condicin>
30
La clusula jerrquica
Permite listar los datos reflejando la ramificacin de los
datos cuando stos estn estructurados en orden
jerrquico
El primer elemento de una jerarqua se llama nodo raz.
Las ramificaciones son nodos, y el ltimo elemento de
una ramificacin es la hoja.
La clusula START WITH especifica la fila raz de la
jerarqua
La clusula CONNECT BY es la que permite fijar la
relacin de dependencia entre las filas padres y las filas
hijas dentro de la jerarqua
PRIOR se refiere a la fila padre
31
Ejemplo
SELECT LPAD(' ', 5*(LEVEL-1))||hijo Descendencia
FROM familia
CONNECT BY PRIOR hijo = padre
START WITH hijo = 'ADAN'
/
HIJO
PADRE
ADAN
--
CAIN
ADAN
ENOC
CAIN
MEHUJAEL
ENOC
LAMEC
ENOC
32