SlideShare una empresa de Scribd logo

Sesion06a - Manipulacion de datos (Oracle)

Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases. UNIDAD 3. Lenguaje de Manipulación de Datos Logro de la Unidad de Aprendizaje Al término de la unidad, el alumno manipula la información mediante el uso de la herramienta SQL*PLUS, sentencias SQL y funciones predefinidas en la base de datos Oracle. Temario 3.1 Tema 5: LENGUAJE DE MANIPULACIÓN DE DATOS 3.1.1 Lenguaje SQL 3.1.2 Instrucciones DML y operadores 3.1.3 Consultas multitabla 3.1.3 Funciones Predefinidas

1 de 7
Descargar para leer sin conexión
/*
Sesión05 – Manipulación de Datos
Estudiante: José Luis Toro Alcarraz
Curso: Base de Datos Avanzado II
Correo:i201010865@cibertec.edu.pe
*/
6) Practicando lo aprendido
d) Demostración de las Funciones de fechas
La función SYSDATE devuelve la fecha y hora actuales.
SQL> CONNECT scott/tiger
Conectado.
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
-------19/03/12
Ejemplo1: Suma 5 días a la fecha actual 19/03/2012.
SQL> SELECT SYSDATE + 5 FROM DUAL;
SYSDATE+
-------24/03/12
Ejemplo2: Suma 500 horas a la fecha actual 19/03/2012. Donde n = 500 = número de horas.
SQL> SELECT SYSDATE + 500/24 FROM DUAL;
SYSDATE+
-------09/04/12
La función ADD_MONTHS recibe 2 parámetros y devuelve la fecha d incrementada en n meses.
ADD_MONTHS(d,n).
SQL> SELECT ADD_MONTHS(SYSDATE,2) FROM DUAL;
ADD_MONT
-------19/05/12
Ejemplo: Obtener la fecha actual de hoy, pero del siguiente año.
SQL> SELECT ADD_MONTHS(SYSDATE,12) FROM DUAL;
ADD_MONT
-------19/03/13
La función MONTHS_BETWEEN devuelve el número de meses entre 2 fechas
SQL> SELECT MONTHS_BETWEEN(SYSDATE + 100,SYSDATE) FROM DUAL;
MONTHS_BETWEEN(SYSDATE+100,SYSDATE)
----------------------------------3,25806452
La función NEXT_DAY recibe 2 parámetros devolviendo la fecha del primer día de la semana cad
después de la fecha d. NEXT_DAY(cad,d).
Ejemplo: Hoy estamos lunes 19/03/2012 y quiero que me devuelva el lunes 26/03/2012.
SQL> SELECT NEXT_DAY(SYSDATE,1) FROM DUAL;
NEXT_DAY
-------26/03/12
La función LAST_DAY recibe un parámetro y devuelve la fecha del último día del mes de d.
LAST_DAY(d).
Ejemplo1: Obtener el ultimo día del mes de febrero.
SQL> SELECT LAST_DAY(SYSDATE) FROM DUAL;
LAST_DAY
-------31/03/12
Ejemplo2: Obtener el lunes del siguiente mes, sabiendo que hoy es lunes 19/03/2012
SQL> SELECT NEXT_DAY(NEXT_DAY(SYSDATE,1),1) FROM DUAL;
NEXT_DAY
-------02/04/12
SQL> SELECT NEXT_DAY(LAST_DAY(SYSDATE),1) FROM DUAL;
NEXT_DAY
-------02/04/12
La función ROUND y TRUNC también en funciones de fechas. Reciben 2 parámetros. ROUND
(fecha,dimensionFecha).
SQL> SELECT ROUND(SYSDATE,'YY'), ROUND(SYSDATE,'MM'), ROUND(SYSDATE,'DD')
FROM DUAL;
ROUND(SY ROUND(SY ROUND(SY
-------- -------- -------01/01/12 01/04/12 20/03/12
Ejemplo1: Devuelve el primer lunes del año 2012.
SQL> SELECT NEXT_DAY(ROUND(SYSDATE,'YY'),1) FROM DUAL;
NEXT_DAY
-------02/01/12
SQL> SELECT NEXT_DAY(TRUNC(SYSDATE,'YY')-1,1) FROM DUAL;
NEXT_DAY
-------02/01/12
Ejemplo2: Fecha del primer sábado del siguiente año.
SQL> SELECT NEXT_DAY(ADD_MONTHS(ROUND(SYSDATE,'YY'),12),6) FROM DUAL;
NEXT_DAY
-------05/01/13
SQL> SELECT NEXT_DAY(ADD_MONTHS(TRUNC(SYSDATE,'YY'),12)-1,6) FROM DUAL;
NEXT_DAY
-------05/01/13
e) Funciones de conversión
Cadena Formato:
YYYY = Año
MM = Mes
DD = Día
DAY = Día
MONTH = Mes
HH24 = Hora
MI = Minutos
SS = Segundos
La función TO_DATE convierte la cadena cad de tipo varchar2 a fecha, opcionalmente de acuerdo
con el formato fmto. TO_DATE(cad,fmto).
SQL> SELECT TO_DATE('19/03/2012','DD/MM/YYYY') FROM DUAL;
TO_DATE(
-------19/03/12
La función TO_CHAR Convierte la fecha d a una cadena de caracteres, opcionalmente de acuerdo
con el formato fmto. TO_CHAR(d,fmto).
SQL> SELECT TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS') FROM DUAL;
TO_CHAR(SYSDATE,'DD
------------------19-03-2012 12:24:52
SQL> SELECT TO_CHAR(SYSDATE,'DAY MONTH YYYY HH24:MI:SS') FROM DUAL;
TO_CHAR(SYSDATE,'DAYMONTHYYYYHH24:
---------------------------------LUNES MARZO
2012 12:33:17
La función TO_NUMBER convierte la cadena cad a un número, opcionalmente de acuerdo con el
formato fmto. TO_NUMBER(cad,fmto).
SQL> SELECT TO_NUMBER('458.85','99999.99') FROM DUAL;
TO_NUMBER('458.85','99999.99')
-----------------------------458,85
La función NVL devuelve la expresión exp si val es nulo y val en caso no sea nulo. NVL(val,exp).
SQL> SELECT EMPNO,ENAME,NVL(COMM,0) FROM SCOTT.EMP;
EMPNO ENAME
NVL(COMM,0)
---------- ---------- ----------7499
ALLEN
|300
7521
WARD
500
7654
MARTIN
1400
7698
BLAKE
0
7782
CLARK
0
7839
7844
7499
7521
7654
7698
7782
7839
7844

KING
TURNER
ALLEN
WARD
MARTIN
BLAKE
CLARK
KING
TURNER

0
0
300
500
1400
0
0
0
0

14 filas seleccionadas.
La función DECODE Convierte el valor de var, de acuerdo con la codificación. DECODE(var, val1,
cod1, val2, cod2, ...,defecto).
SQL> SELECT DECODE(ENAME,
'PRESIDENTE', 'P',
'DIRECTOR', 'D', 'X')
FROM EMP;
El resultado sería P,D,X,…
d) Demostración de las Sub-consulas
-- Subconsulta de una fila, >,<,>=,<=,<>,=
SELECT ENAME, JOB, DEPTNO, HIREDATE
FROM EMP
WHERE SAL > (SELECT SAL FROM EMP WHERE EMPNO = 7566);
-- Subconsulta de múltiples filas, IN, ANY, ALL
SELECT ENAME,JOB,HIREDATE,DEPTNO
FROM EMP
WHERE SAL IN (SELECT MIN(SAL) FROM EMP GROUP BY DEPTNO);
SELECT * FROM EMP
WHERE EMPNO IN (SELECT EMPNO FROM ORD);
-- Subconsulta de múltiples columnas
SELECT *
FROM EMP
WHERE (EMPNO, DEPTNO) IN (SELECT EMPNO, DEPTNO
FROM EMP WHERE JOB='MANAGER');
d) Demostración de las cconsultas multi-tablas
SQL> SELECT DISTINCT E.*
FROM EMP E JOIN ORD O
ON E.EMPNO=O.EMPNO;
SQL> SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
EMPNO ENAME
DEPTNO DNAME
---------- ---------- ---------- -------------7499 ALLEN
30
SALES
7521 WARD
30 SALES
7654 MARTIN
30 SALES
7698 BLAKE
30 SALES
7782 CLARK
10
ACCOUNTING
7839 KING
10
ACCOUNTING
7844 TURNER
30
SALES
7499 ALLEN
30
SALES
7521 WARD
30 SALES
7654 MARTIN
30 SALES
7698 BLAKE
30 SALES
7782 CLARK
10 ACCOUNTING
7839 KING
10 ACCOUNTING
7844 TURNER
30 SALES
14 filas seleccionadas.

SQL> SELECT D.DEPTNO, D.DNAME, COUNT(E.EMPNO)
FROM DEPT D LEFT JOIN EMP E
ON D.DEPTNO = E.DEPTNO
GROUP BY D.DEPTNO, D.DNAME;
DEPTNO DNAME
COUNT(E.EMPNO)
---------- -------------- -------------10 ACCOUNTING
4
40 OPERATIONS
0
20 RESEARCH
0
30 SALES
10
70 RRHH
0
50 SISTEMA
0
6 filas seleccionadas.
SQL> SELECT E.EMPNO,E.ENAME,E.SAL
FROM EMP E JOIN SALGRADE S
ON E.SAL BETWEEN S.LOSAL AND S.HISAL;
EMPNO ENAME
---------- ---------- ----------

SAL
7654 MARTIN
7521 WARD
7654 MARTIN
7521 WARD
7844 TURNER
7844 TURNER
7499 ALLEN
7499 ALLEN
7782 CLARK
7782 CLARK
7698 BLAKE
7698 BLAKE
7839 KING
7839 KING
14 filas seleccionadas.

1250
1250
1250
1250
1500
1500
1600
1600
2450
2450
2850
2850
5000
5000

Recomendados

Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)José Toro
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)José Toro
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)José Toro
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)José Toro
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)José Toro
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)José Toro
 
Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)José Toro
 
Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)José Toro
 

Más contenido relacionado

La actualidad más candente

Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)José Toro
 
Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)José Toro
 
Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)José Toro
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)José Toro
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM Kamisutra
 
Curso Básico de Pl Sql Oracle
Curso Básico de Pl Sql OracleCurso Básico de Pl Sql Oracle
Curso Básico de Pl Sql Oracleluisguil
 
HTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageHTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageFrancisco Javier Arce Anguiano
 
Oracle pl sql
Oracle pl sqlOracle pl sql
Oracle pl sqlclaudia_m
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysqlpolar
 
Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12Alexander Calderón
 
Triggers o disparadores en MySQL
Triggers o disparadores en MySQL Triggers o disparadores en MySQL
Triggers o disparadores en MySQL Jair Ospino Ardila
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollbackArchCHUZ
 
Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Alexander Calderón
 

La actualidad más candente (20)

Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)
 
Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)
 
Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Curso Básico de Pl Sql Oracle
Curso Básico de Pl Sql OracleCurso Básico de Pl Sql Oracle
Curso Básico de Pl Sql Oracle
 
HTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageHTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation Language
 
Vistas
VistasVistas
Vistas
 
Oracle pl sql
Oracle pl sqlOracle pl sql
Oracle pl sql
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12
 
HTML5 API WebSQL Database: Funciones de agregado
HTML5 API WebSQL Database: Funciones de agregadoHTML5 API WebSQL Database: Funciones de agregado
HTML5 API WebSQL Database: Funciones de agregado
 
Triggers o disparadores en MySQL
Triggers o disparadores en MySQL Triggers o disparadores en MySQL
Triggers o disparadores en MySQL
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollback
 
Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11
 
TRANSACT-SQL
TRANSACT-SQLTRANSACT-SQL
TRANSACT-SQL
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 

Destacado

Sesión01 - Gestión de instancia (Oracle)
Sesión01 - Gestión de instancia (Oracle)Sesión01 - Gestión de instancia (Oracle)
Sesión01 - Gestión de instancia (Oracle)José Toro
 
Sesión14 – Archivos redologs (Oracle)
Sesión14 – Archivos redologs (Oracle)Sesión14 – Archivos redologs (Oracle)
Sesión14 – Archivos redologs (Oracle)José Toro
 
Sesión13 - Archivos de Control (Oracle)
Sesión13 - Archivos de Control (Oracle)Sesión13 - Archivos de Control (Oracle)
Sesión13 - Archivos de Control (Oracle)José Toro
 
CapÍtulo 23 (Seguridad de base de datos)
CapÍtulo 23 (Seguridad de base de datos)CapÍtulo 23 (Seguridad de base de datos)
CapÍtulo 23 (Seguridad de base de datos)Liz Ocampo
 
Semana 1 t sistema de base de datos
Semana 1 t sistema de base de datosSemana 1 t sistema de base de datos
Semana 1 t sistema de base de datoserickrwk
 
Tema 06 fun matemáticas, texto, y fecha y hora 2011 02
Tema 06   fun matemáticas, texto, y fecha y hora 2011 02Tema 06   fun matemáticas, texto, y fecha y hora 2011 02
Tema 06 fun matemáticas, texto, y fecha y hora 2011 02ciberayudavirtualplus2
 
Tema 03 Consolidación y Tablas Dinamicas
Tema 03 Consolidación y Tablas DinamicasTema 03 Consolidación y Tablas Dinamicas
Tema 03 Consolidación y Tablas Dinamicasciberayudavirtualplus2
 
Tema 08 funciones de busqueda y anidamientos 2011 02
Tema 08   funciones de busqueda y anidamientos 2011 02Tema 08   funciones de busqueda y anidamientos 2011 02
Tema 08 funciones de busqueda y anidamientos 2011 02ciberayudavirtualplus2
 
Tema 04 esquemas y datos externos 2011 02
Tema 04   esquemas y datos externos 2011 02Tema 04   esquemas y datos externos 2011 02
Tema 04 esquemas y datos externos 2011 02ciberayudavirtualplus2
 
Tema 07 funciones estadisticas, bases de datos y logicas 2011 02
Tema 07   funciones estadisticas, bases de datos y logicas 2011 02Tema 07   funciones estadisticas, bases de datos y logicas 2011 02
Tema 07 funciones estadisticas, bases de datos y logicas 2011 02ciberayudavirtualplus2
 
Tema #1 orígenes y formación del lenguaje
Tema #1 orígenes y formación del lenguajeTema #1 orígenes y formación del lenguaje
Tema #1 orígenes y formación del lenguajeDayana Moruno
 

Destacado (17)

Sesión01 - Gestión de instancia (Oracle)
Sesión01 - Gestión de instancia (Oracle)Sesión01 - Gestión de instancia (Oracle)
Sesión01 - Gestión de instancia (Oracle)
 
Sesión14 – Archivos redologs (Oracle)
Sesión14 – Archivos redologs (Oracle)Sesión14 – Archivos redologs (Oracle)
Sesión14 – Archivos redologs (Oracle)
 
Sesión13 - Archivos de Control (Oracle)
Sesión13 - Archivos de Control (Oracle)Sesión13 - Archivos de Control (Oracle)
Sesión13 - Archivos de Control (Oracle)
 
CapÍtulo 23 (Seguridad de base de datos)
CapÍtulo 23 (Seguridad de base de datos)CapÍtulo 23 (Seguridad de base de datos)
CapÍtulo 23 (Seguridad de base de datos)
 
Semana 1 t sistema de base de datos
Semana 1 t sistema de base de datosSemana 1 t sistema de base de datos
Semana 1 t sistema de base de datos
 
Tema 02 - Filtros - 2012 01
Tema 02 - Filtros - 2012 01Tema 02 - Filtros - 2012 01
Tema 02 - Filtros - 2012 01
 
Tema 05 tablas dinamicas 2011 02
Tema 05   tablas dinamicas 2011 02Tema 05   tablas dinamicas 2011 02
Tema 05 tablas dinamicas 2011 02
 
Tema 03 filtros 2011 02
Tema 03   filtros 2011 02Tema 03   filtros 2011 02
Tema 03 filtros 2011 02
 
Tema 01 Base de Datos - 2012 01
Tema 01   Base de Datos  - 2012 01Tema 01   Base de Datos  - 2012 01
Tema 01 Base de Datos - 2012 01
 
Tema 00 - Introducción - 2012 00
Tema 00 - Introducción - 2012 00Tema 00 - Introducción - 2012 00
Tema 00 - Introducción - 2012 00
 
Tema 06 fun matemáticas, texto, y fecha y hora 2011 02
Tema 06   fun matemáticas, texto, y fecha y hora 2011 02Tema 06   fun matemáticas, texto, y fecha y hora 2011 02
Tema 06 fun matemáticas, texto, y fecha y hora 2011 02
 
Tema 03 Consolidación y Tablas Dinamicas
Tema 03 Consolidación y Tablas DinamicasTema 03 Consolidación y Tablas Dinamicas
Tema 03 Consolidación y Tablas Dinamicas
 
Tema 08 funciones de busqueda y anidamientos 2011 02
Tema 08   funciones de busqueda y anidamientos 2011 02Tema 08   funciones de busqueda y anidamientos 2011 02
Tema 08 funciones de busqueda y anidamientos 2011 02
 
Tema 04 esquemas y datos externos 2011 02
Tema 04   esquemas y datos externos 2011 02Tema 04   esquemas y datos externos 2011 02
Tema 04 esquemas y datos externos 2011 02
 
Tema 07 funciones estadisticas, bases de datos y logicas 2011 02
Tema 07   funciones estadisticas, bases de datos y logicas 2011 02Tema 07   funciones estadisticas, bases de datos y logicas 2011 02
Tema 07 funciones estadisticas, bases de datos y logicas 2011 02
 
Tema #1 orígenes y formación del lenguaje
Tema #1 orígenes y formación del lenguajeTema #1 orígenes y formación del lenguaje
Tema #1 orígenes y formación del lenguaje
 
Curso de Esperanto!
Curso de Esperanto!Curso de Esperanto!
Curso de Esperanto!
 

Similar a Sesion06a - Manipulacion de datos (Oracle)

Análisis espacial con R (asignatura de Master - UPM)
Análisis espacial con R (asignatura de Master - UPM)Análisis espacial con R (asignatura de Master - UPM)
Análisis espacial con R (asignatura de Master - UPM)Vladimir Gutierrez, PhD
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
ManualitosqlserverOca srl
 
slides-sql_30c44e4f-cb57-473d-bc66-4b2ba79b72a1.pptx
slides-sql_30c44e4f-cb57-473d-bc66-4b2ba79b72a1.pptxslides-sql_30c44e4f-cb57-473d-bc66-4b2ba79b72a1.pptx
slides-sql_30c44e4f-cb57-473d-bc66-4b2ba79b72a1.pptxAdrianAntonio29
 
Practica sql
Practica sqlPractica sql
Practica sqlPathy1254
 
Bd 2 1 fundamentos transact sql
Bd 2   1 fundamentos transact sqlBd 2   1 fundamentos transact sql
Bd 2 1 fundamentos transact sqlCarlos Lopez
 
Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01MaraMagdalenaBlancoR
 
Trigger disparadoes
Trigger  disparadoesTrigger  disparadoes
Trigger disparadoesdioselina123
 
Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)Salvador Ramos
 
Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017dbLearner
 
Sql basico parte_ii_
Sql basico parte_ii_Sql basico parte_ii_
Sql basico parte_ii_Luis Jherry
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 

Similar a Sesion06a - Manipulacion de datos (Oracle) (20)

Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Análisis espacial con R (asignatura de Master - UPM)
Análisis espacial con R (asignatura de Master - UPM)Análisis espacial con R (asignatura de Master - UPM)
Análisis espacial con R (asignatura de Master - UPM)
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
 
slides-sql_30c44e4f-cb57-473d-bc66-4b2ba79b72a1.pptx
slides-sql_30c44e4f-cb57-473d-bc66-4b2ba79b72a1.pptxslides-sql_30c44e4f-cb57-473d-bc66-4b2ba79b72a1.pptx
slides-sql_30c44e4f-cb57-473d-bc66-4b2ba79b72a1.pptx
 
Practica sql
Practica sqlPractica sql
Practica sql
 
Bd 2 1 fundamentos transact sql
Bd 2   1 fundamentos transact sqlBd 2   1 fundamentos transact sql
Bd 2 1 fundamentos transact sql
 
Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01
 
Trigger disparadoes
Trigger  disparadoesTrigger  disparadoes
Trigger disparadoes
 
Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
 
Parte 08 my sql
Parte 08 my sqlParte 08 my sql
Parte 08 my sql
 
Textos sqli_mssql
 Textos sqli_mssql Textos sqli_mssql
Textos sqli_mssql
 
BigData - NoSQL
BigData -  NoSQL BigData -  NoSQL
BigData - NoSQL
 
Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017
 
Sql tips 03_shrink
Sql tips 03_shrinkSql tips 03_shrink
Sql tips 03_shrink
 
Sql basico parte_ii_
Sql basico parte_ii_Sql basico parte_ii_
Sql basico parte_ii_
 
Agrupando datos en SQL Server
Agrupando datos en SQL ServerAgrupando datos en SQL Server
Agrupando datos en SQL Server
 
MANUAL
MANUALMANUAL
MANUAL
 
Mysql
MysqlMysql
Mysql
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 

Sesion06a - Manipulacion de datos (Oracle)

  • 1. /* Sesión05 – Manipulación de Datos Estudiante: José Luis Toro Alcarraz Curso: Base de Datos Avanzado II Correo:i201010865@cibertec.edu.pe */ 6) Practicando lo aprendido d) Demostración de las Funciones de fechas La función SYSDATE devuelve la fecha y hora actuales. SQL> CONNECT scott/tiger Conectado. SQL> SELECT SYSDATE FROM DUAL; SYSDATE -------19/03/12 Ejemplo1: Suma 5 días a la fecha actual 19/03/2012. SQL> SELECT SYSDATE + 5 FROM DUAL; SYSDATE+ -------24/03/12 Ejemplo2: Suma 500 horas a la fecha actual 19/03/2012. Donde n = 500 = número de horas. SQL> SELECT SYSDATE + 500/24 FROM DUAL; SYSDATE+ -------09/04/12 La función ADD_MONTHS recibe 2 parámetros y devuelve la fecha d incrementada en n meses. ADD_MONTHS(d,n). SQL> SELECT ADD_MONTHS(SYSDATE,2) FROM DUAL; ADD_MONT -------19/05/12
  • 2. Ejemplo: Obtener la fecha actual de hoy, pero del siguiente año. SQL> SELECT ADD_MONTHS(SYSDATE,12) FROM DUAL; ADD_MONT -------19/03/13 La función MONTHS_BETWEEN devuelve el número de meses entre 2 fechas SQL> SELECT MONTHS_BETWEEN(SYSDATE + 100,SYSDATE) FROM DUAL; MONTHS_BETWEEN(SYSDATE+100,SYSDATE) ----------------------------------3,25806452 La función NEXT_DAY recibe 2 parámetros devolviendo la fecha del primer día de la semana cad después de la fecha d. NEXT_DAY(cad,d). Ejemplo: Hoy estamos lunes 19/03/2012 y quiero que me devuelva el lunes 26/03/2012. SQL> SELECT NEXT_DAY(SYSDATE,1) FROM DUAL; NEXT_DAY -------26/03/12 La función LAST_DAY recibe un parámetro y devuelve la fecha del último día del mes de d. LAST_DAY(d). Ejemplo1: Obtener el ultimo día del mes de febrero. SQL> SELECT LAST_DAY(SYSDATE) FROM DUAL; LAST_DAY -------31/03/12 Ejemplo2: Obtener el lunes del siguiente mes, sabiendo que hoy es lunes 19/03/2012 SQL> SELECT NEXT_DAY(NEXT_DAY(SYSDATE,1),1) FROM DUAL; NEXT_DAY -------02/04/12 SQL> SELECT NEXT_DAY(LAST_DAY(SYSDATE),1) FROM DUAL; NEXT_DAY
  • 3. -------02/04/12 La función ROUND y TRUNC también en funciones de fechas. Reciben 2 parámetros. ROUND (fecha,dimensionFecha). SQL> SELECT ROUND(SYSDATE,'YY'), ROUND(SYSDATE,'MM'), ROUND(SYSDATE,'DD') FROM DUAL; ROUND(SY ROUND(SY ROUND(SY -------- -------- -------01/01/12 01/04/12 20/03/12 Ejemplo1: Devuelve el primer lunes del año 2012. SQL> SELECT NEXT_DAY(ROUND(SYSDATE,'YY'),1) FROM DUAL; NEXT_DAY -------02/01/12 SQL> SELECT NEXT_DAY(TRUNC(SYSDATE,'YY')-1,1) FROM DUAL; NEXT_DAY -------02/01/12 Ejemplo2: Fecha del primer sábado del siguiente año. SQL> SELECT NEXT_DAY(ADD_MONTHS(ROUND(SYSDATE,'YY'),12),6) FROM DUAL; NEXT_DAY -------05/01/13 SQL> SELECT NEXT_DAY(ADD_MONTHS(TRUNC(SYSDATE,'YY'),12)-1,6) FROM DUAL; NEXT_DAY -------05/01/13 e) Funciones de conversión Cadena Formato: YYYY = Año MM = Mes DD = Día DAY = Día
  • 4. MONTH = Mes HH24 = Hora MI = Minutos SS = Segundos La función TO_DATE convierte la cadena cad de tipo varchar2 a fecha, opcionalmente de acuerdo con el formato fmto. TO_DATE(cad,fmto). SQL> SELECT TO_DATE('19/03/2012','DD/MM/YYYY') FROM DUAL; TO_DATE( -------19/03/12 La función TO_CHAR Convierte la fecha d a una cadena de caracteres, opcionalmente de acuerdo con el formato fmto. TO_CHAR(d,fmto). SQL> SELECT TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS') FROM DUAL; TO_CHAR(SYSDATE,'DD ------------------19-03-2012 12:24:52 SQL> SELECT TO_CHAR(SYSDATE,'DAY MONTH YYYY HH24:MI:SS') FROM DUAL; TO_CHAR(SYSDATE,'DAYMONTHYYYYHH24: ---------------------------------LUNES MARZO 2012 12:33:17 La función TO_NUMBER convierte la cadena cad a un número, opcionalmente de acuerdo con el formato fmto. TO_NUMBER(cad,fmto). SQL> SELECT TO_NUMBER('458.85','99999.99') FROM DUAL; TO_NUMBER('458.85','99999.99') -----------------------------458,85 La función NVL devuelve la expresión exp si val es nulo y val en caso no sea nulo. NVL(val,exp). SQL> SELECT EMPNO,ENAME,NVL(COMM,0) FROM SCOTT.EMP; EMPNO ENAME NVL(COMM,0) ---------- ---------- ----------7499 ALLEN |300 7521 WARD 500 7654 MARTIN 1400 7698 BLAKE 0 7782 CLARK 0
  • 5. 7839 7844 7499 7521 7654 7698 7782 7839 7844 KING TURNER ALLEN WARD MARTIN BLAKE CLARK KING TURNER 0 0 300 500 1400 0 0 0 0 14 filas seleccionadas. La función DECODE Convierte el valor de var, de acuerdo con la codificación. DECODE(var, val1, cod1, val2, cod2, ...,defecto). SQL> SELECT DECODE(ENAME, 'PRESIDENTE', 'P', 'DIRECTOR', 'D', 'X') FROM EMP; El resultado sería P,D,X,… d) Demostración de las Sub-consulas -- Subconsulta de una fila, >,<,>=,<=,<>,= SELECT ENAME, JOB, DEPTNO, HIREDATE FROM EMP WHERE SAL > (SELECT SAL FROM EMP WHERE EMPNO = 7566); -- Subconsulta de múltiples filas, IN, ANY, ALL SELECT ENAME,JOB,HIREDATE,DEPTNO FROM EMP WHERE SAL IN (SELECT MIN(SAL) FROM EMP GROUP BY DEPTNO); SELECT * FROM EMP WHERE EMPNO IN (SELECT EMPNO FROM ORD); -- Subconsulta de múltiples columnas SELECT * FROM EMP WHERE (EMPNO, DEPTNO) IN (SELECT EMPNO, DEPTNO FROM EMP WHERE JOB='MANAGER'); d) Demostración de las cconsultas multi-tablas SQL> SELECT DISTINCT E.*
  • 6. FROM EMP E JOIN ORD O ON E.EMPNO=O.EMPNO; SQL> SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO; EMPNO ENAME DEPTNO DNAME ---------- ---------- ---------- -------------7499 ALLEN 30 SALES 7521 WARD 30 SALES 7654 MARTIN 30 SALES 7698 BLAKE 30 SALES 7782 CLARK 10 ACCOUNTING 7839 KING 10 ACCOUNTING 7844 TURNER 30 SALES 7499 ALLEN 30 SALES 7521 WARD 30 SALES 7654 MARTIN 30 SALES 7698 BLAKE 30 SALES 7782 CLARK 10 ACCOUNTING 7839 KING 10 ACCOUNTING 7844 TURNER 30 SALES 14 filas seleccionadas. SQL> SELECT D.DEPTNO, D.DNAME, COUNT(E.EMPNO) FROM DEPT D LEFT JOIN EMP E ON D.DEPTNO = E.DEPTNO GROUP BY D.DEPTNO, D.DNAME; DEPTNO DNAME COUNT(E.EMPNO) ---------- -------------- -------------10 ACCOUNTING 4 40 OPERATIONS 0 20 RESEARCH 0 30 SALES 10 70 RRHH 0 50 SISTEMA 0 6 filas seleccionadas. SQL> SELECT E.EMPNO,E.ENAME,E.SAL FROM EMP E JOIN SALGRADE S ON E.SAL BETWEEN S.LOSAL AND S.HISAL; EMPNO ENAME ---------- ---------- ---------- SAL
  • 7. 7654 MARTIN 7521 WARD 7654 MARTIN 7521 WARD 7844 TURNER 7844 TURNER 7499 ALLEN 7499 ALLEN 7782 CLARK 7782 CLARK 7698 BLAKE 7698 BLAKE 7839 KING 7839 KING 14 filas seleccionadas. 1250 1250 1250 1250 1500 1500 1600 1600 2450 2450 2850 2850 5000 5000