0% found this document useful (0 votes)
19 views22 pages

Clase 1 - SQL

Uploaded by

stefanoharvay
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views22 pages

Clase 1 - SQL

Uploaded by

stefanoharvay
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
You are on page 1/ 22

SQL

Structured Query Language (SQL)


Agenda
 Definición de SQL
 Características Oracle SQL
 Tipos de comandos
 Comandos DML
 Otras consultas
 Operadores y condiciones
 Funciones simples
 Expresiones condicionales
 Conversión explícita de tipos de dato
Qué es SQL
 Structured Query Language (Lenguaje
estructurado de consultas)
 Lenguaje estándar de RDBMS
Características de Oracle SQL
 Estandares:

ANSI/ISO/IEC 9075:2008, "Database Language SQL", Parts 1
("SQL/Framework"), 2 ("SQL/Foundation"), 3 ("SQL/CLI"), 4
("SQL/PSM"), 9 ("SQL/MED"), 10 ("SQL/OLB"), 11("SQL/Schemata"),
13 ("SQL/JRT"), and ANSI/ISO/IEC 9075-14:2008, "Database
Language SQL", Part 14 ("SQL/XML")

ISO/IEC 9075:2008, "Database Language SQL", Parts 1
("SQL/Framework"), 2 ("SQL/Foundation"), 3 ("SQL/CLI"), 4
("SQL/PSM"), 9 ("SQL/MED"), 10 ("SQL/OLB"), 11("SQL/Schemata"),
13 ("SQL/JRT"), and ISO/IEC 9075-14:2008, "Database Language
SQL", Part 14 ("SQL/XML")

 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

 DDL (Lenguaje de Creación de Datos)



Creación, reemplazo o alteración de objetos

Control de acceso a la base y objetos
Comandos DML
 DELETE
DELETE [FROM] table
[WHERE condition];
 INSERT
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
 UPDATE
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
Comandos DML
 SELECT
SELECT * / <columna1, columna2,....>
FROM <tabla1, tabla2,.... >
[WHERE <condición>
[GROUP BY <columna1, columna2....> 
[HAVING <condición-selección-grupos> 
[ORDER BY <columna1 [DESC, columna2
[DESC...> 
Comandos DML
 SELECT employee_id, first_name, salary
FROM employees
WHERE salary > 10000;

 SELECT e.department_id, department_name, count(*) Cantidad,


Max(salary) "Mejor Salario", Avg(salary) Promedio
FROM employees e, departments d
WHERE email IS NOT NULL AND
hire_date >TO_DATE('01/01/1998','dd/mm/yyyy') AND
e.department_id = d.department_id AND
LOWER(d.department_name) like '%pp%'
GROUP BY e.department_id, department_name
HAVING count(*) > 2
ORDER BY e.department_id, 2 Desc;
Otras Consultas
 Consultas Multitablas
 Subconsultas

Vistas en linea
• En Cláusula SELECT
• En Cláusula FROM

Referencias externas

Subconsultas anidadas
 Funciones Analíticas

CUBE, ROLLUP
 Operadores Set

Union, Union All, Intersect, Minus
Otras Consultas
 Ejemplos:

SELECT employee_id, (SELECT department_name
FROM departments
WHERE e.department_id =
d.department_id) as “dept”
FROM employees e
WHERE salary > 10000;


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

UNION ALL 30 CLERK 950 1


30 MANAGER 2850 1
30 SALESMAN 5600 1
30 9400 2
ANALYST 6000 3
CLERK 4390 3
MANAGER 8275 3
PRESIDENT 5000 3
SALESMAN 5600 3
29265 4
Operadores y Condiciones
 Condiciones de Comparación (=, >, >=, <,
<=, <>)
 Otros comparadores (BETWEEN ... AND...,
IN(set), EXISTS, LIKE, IS NULL)
 Condiciones lógicas (AND, OR, NOT)
Funciones Simples
 De Texto:

LOWER, UPPER, INITCAP

CONCAT, SUBSTR, LENGTH, INSTR, LPAD,
RPAD, TRIM, REPLACE
 Numéricos:

ROUND, TRUNC, MOD
 De Fechas:

SYSDATE, MONTHS_BETWEEN,
ADD_MONTHS, NEXT_DAY, LAST_DAY,
ROUND, TRUNC
 Generales:

NVL, NVL2, NULLIF
Funciones Simples
SELECT UPPER('hola mundo') -- Devuelve HOLA MUNDO
FROM DUAL;

SELECT LOWER('HOLA MUNDO') -- Devuelve hola mundo


FROM DUAL;

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 LENGTH('HOLA MUNDO')


FROM DUAL;
SELECT REPLACE ('HOLA MUNDO','HOLA', 'VAYA')-- devuelve VAYA
MUNDO
FROM DUAL;
SELECT SUBSTR('HOLA MUNDO', 6, 5) -- Devuelve MUNDO
FROM DUAL;
Funciones Simples
SELECT MOD(20,15) -- Devuelve el modulo de dividir 20/15
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 CO_PRODUCTO, NVL(PRECIO, 0)


FROM PRECIOS;
Expresiones Condicionales
 CASE:
CASE expr
WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END

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

NUMBER CHARACTER 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.

SELECT TO_DATE('31/12/2006 23:59:59', 'DD/MM/YYYY HH24:MI:SS')


FROM DUAL;

SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYYY')


FROM DUAL;
SELECT TO_CHAR (10)
FROM DUAL;
SELECT TO_NUMBER ('10')
FROM DUAL;
FIN

You might also like