Clase 1 - SQL
Clase 1 - SQL
Como Trabaja:
Procesa conjuntos de datos como grupos en lugar de unidades
individuales
Extiende a PL/SQL
Consultas optimizadas
Tipos de Comandos
DML (Lenguaje de Manipulación de
Datos)
Consulta de datos
Actualizar, insertar y eliminar filas en una
tabla
SELECT employee_id,
FROM employees e, (SELECT department_id
FROM departments) d
WHERE salary > 10000
AND e.department_id = d.department_id;
Otras Consultas
Ejemplos:
SELECT deptno, job, SUM(sal) DEPTNO JOB SUM(SAL) Nivel Agrupamiento
10 CLERK
FROM employees e 1300 1
10 MANAGER 2450 1
WHERE deptno < 60 10 PRESIDENT 5000 1
GROUP BY CUBE (deptno, job) 10 8750 2
20 ANALYST
ORDER BY 1,2; 6000 1
20 CLERK 2140 1
20 MANAGER 2975 1
Reemplaza de alguna manera al 20 11115 2
SELECT RPAD('Hola Mundo', 50, '.') SELECT LPAD('Hola Mundo', 50, '.')
FROM DUAL; FROM DUAL;
SELECT RTRIM ('Hola Mundo ') SELECT LTRIM (' Hola Mundo')
FROM DUAL; FROM DUAL;
SELECT TRIM (' Hola Mundo ')
FROM DUAL;
Funciones Simples
INSTR(<char>, <search_string>, <startpos>, <occurrence> )
SELECT INSTR('AQUI ES DONDE SE BUSCA', 'BUSCA', 1, 1 )
FROM DUAL;
SELECT TRUNC(9.99)
FROM DUAL;
SELECT TRUNC(SYSDATE)
FROM DUAL;
SELECT ROUND(9.99, 1)
FROM DUAL;
SELECT SYSDATE
FROM DUAL;
SELECT department_id,
CASE department_id
WHEN 50 THEN 'cincuenta'
WHEN 90 THEN 'noventa'
ELSE 'el resto'
END texto
FROM employees
ORDER BY 1
Expresiones Condicionales
CASE:
CASE
WHEN condition1 THEN return_expr1
[WHEN condition2 THEN return_expr2
WHEN condition3 THEN return_exprn
ELSE else_expr]
END
SELECT department_id,
CASE
WHEN department_id = 50 THEN 'cincuenta'
WHEN department_id = 90 THEN 'noventa‘
WHEN salary > 1000 THEN 'cobra poco'
ELSE 'el resto'
END texto
FROM employees ORDER BY 1
Expresiones Condicionales
DECODE:
DECODE(col | expression, search1, result1
[, search2,
result2,...,]
[, default])
SELECT department_id,
decode(department_id, 50, 'cincuenta', 90,
'noventa', 'el resto')
FROM employees
ORDER BY 1
Conversión Explícita de Tipos de Dato
TO_NUMBER TO_DATE
TO_CHAR TO_CHAR
Conversión Explícita de Tipos de Dato
SELECT TO_DATE('01/12/2006','DD/MM/YYYY')
FROM DUAL; Conversión con formato de día y hora.