Base Datos Avanzado II - Sesion04 Manipulacion de Datos

29
Sesión 5 Lenguaje de manipulación de datos Profesor: Ing. Juan Deza Ari Base de Datos Avanzado I

Transcript of Base Datos Avanzado II - Sesion04 Manipulacion de Datos

Sesión 5Lenguaje de manipulación de datos

Profesor: Ing. Juan Deza Ari

Base de Datos Avanzado I

Objetivos de la Sesión

Revisar las particularidades de las sentencias DML en Oracle

Explotar al máximo las funciones predefinidas de Oracle

Temas a tratar

Introducción a SQL Instrucciones DML y operadoresConsultando dos o más tablasFunciones pre-definidas

Introducción a SQL

Oracle 10G SQL

Utiliza el SQL (Structured Query Language)

Basado en estándares ANSI (American National Standards Institute) e ISO (International Standards Organization)

Categorías

DDL-Data Definition LanguageDML-Data Manipulation

LanguageTCL-Transaction Control

LanguageDCL-Data Control Language

DDL-Data Definition Language Utilizadas para crear, alterar o

borrar objetos de la base de datos.

Ejemplo :CREATE, ALTER, DROP, RENAME

TCL-Transaction Control Language Utilizadas para confirmar o

restaurar transacciones que son un conjunto de sentencias SQL que se completan o fallan como unidad.

Ejemplo :COMMIT, ROLLBACK

DCL-Data Control Language Utilizadas en el control de

acceso a datos en la base de datos.

Ejemplo :GRANT, REVOKE

Instrucciones DML y operadores

DML-Data Manipulation Language Utilizadas para consultar o

actualizar los datos contenidos en tablas de una base de datos.

Sentencias SELECT – Obtiene filas de tablas de

base de datos. INSERT – Agrega filas a una tabla de

la base de datos. UPDATE – Modifica filas de una

tabla que cumplan cláusula WHERE. DELETE – Borra filas identificadas

por la cláusula WHERE

SELECT SELECT [DISTINCT|ALL]

lista_selecciónFROM tabla [,tabla ...][WHERE condición(es)][GROUP BY expresión [,expresión]...][HAVING condición][ORDER BY {columna, expresión}

{ASC|DESC}]

SELECT - Ejemplo

SELECT ename, job, deptno, hiredateFROM empWHERE job = 'CLERK'ORDER BY ename;

-- Uso de aliasSELECT ename as NOMBRE, sal salario, sal*12

“salario annual”FROM emp;

SELECT ename, job, deptno, hiredateFROM empWHERE job = 'CLERK'ORDER BY ename;

-- Uso de aliasSELECT ename as NOMBRE, sal salario, sal*12

“salario annual”FROM emp;

INSERT INSERT [INTO] tabla[lista de campos de tabla]VALUES (lista de valores de

datos)óINSERT INTO tabla

Sentencia SELECT

INSERT - Ejemplo

INSERT INTO DEPTVALUES(60, 'MI AREA', 'LIMA' );

INSERT INTO DEPT(deptno, dname, loc)VALUES(70, 'MI AREA 2', 'LIMA' );

INSERT INTO DEPTVALUES(60, 'MI AREA', 'LIMA' );

INSERT INTO DEPT(deptno, dname, loc)VALUES(70, 'MI AREA 2', 'LIMA' );

UPDATE

UPDATE tablaSET columna = expresión [, columna = expresión...][WHERE condición(es)]

UPDATE - Ejemplo

UPDATE empSET deptno = 20, WHERE empno = 7782;

UPDATE empSET (job,deptno) = (SELECT job, deptno FROM emp

WHERE empno = 7499) WHERE empno = 7698;

UPDATE empSET deptno = 20, WHERE empno = 7782;

UPDATE empSET (job,deptno) = (SELECT job, deptno FROM emp

WHERE empno = 7499) WHERE empno = 7698;

DELETE

DELETE FROM tabla[WHERE condición(es)]

DELETE - Ejemplo

DELETE FROM DEPT WHERE DNAME = 'ACCOUNTING';DELETE FROM DEPT WHERE DNAME = 'ACCOUNTING';

Funciones

Funciones de carácterFunciones numéricasFunciones de fechaFunciones de conversión

Funciones de carácter

LOWER, UPPER INITCAPCONCAT, SUBSTRLENGTH, INSTRLPAD, RPAD, TRIM

Funciones numéricas

ROUND, TRUNCCEIL, FLOORMODFunciones de grupo : AVG,

COUNT, SUM, MAX, MIN

Funciones de fechas

SYSDATEADD_MONTHS,

MONTHS_BETWEENNEXT_DAY, LAST_DAYROUND, TRUNC

Funciones de conversiónTO_DATETO_CHARTO_NUMBERNVLDECODE

SUBCONSULTAS

Es una sentencia SELECT que se encuentra dentro de una cláusula de otra sentencia SELECT.

Tipos:•Subconsultas de una fila•Subconsultas de múltiples filas•Subconsultas de múltiples columna

SUBCONSULTAS - Ejemplo -- Subconsulta de una fila, >,<,>=,<=,<>,=SELECT ename, job, deptno, hiredateFROM empWHERE sal > (SELECT sal FROM emp WHERE empno =

7566)ORDER BY ename;

-- Subconsulta de múltiples filas, IN, ANY, ALLSELECT ename, job, deptno, hiredateFROM empWHERE sal IN (SELECT MIN(sal) FROM emp GROUP BY

deptno);

-- Subconsulta de múltiples columnasSELECT * FROM emp WHERE (empno, deptno) IN (SELECT

empno, deptno FROM emp WHERE job='MANAGER');

-- Subconsulta de una fila, >,<,>=,<=,<>,=SELECT ename, job, deptno, hiredateFROM empWHERE sal > (SELECT sal FROM emp WHERE empno =

7566)ORDER BY ename;

-- Subconsulta de múltiples filas, IN, ANY, ALLSELECT ename, job, deptno, hiredateFROM empWHERE sal IN (SELECT MIN(sal) FROM emp GROUP BY

deptno);

-- Subconsulta de múltiples columnasSELECT * FROM emp WHERE (empno, deptno) IN (SELECT

empno, deptno FROM emp WHERE job='MANAGER');

CONSULTAS MULTITABLAS JOINUtilizada para consultar datos

de más de una tabla.Tipos de Join:

•Equijoin•Non-equijoin•Outer-join•Selfjoin

Final

¿Alguna pregunta o alguna duda?

Gracias.