SlideShare una empresa de Scribd logo
1 de 10
/*
Sesión05 – Manipulación de Datos
Estudiante: José Luis Toro Alcarraz
Curso: Base de Datos Avanzado II
Correo:i201010865@cibertec.edu.pe
*/
1) Introducción a SQL
2) Instrucciones DML y operadores
3) Funciones pre-definidas
4) Sub-consultas
5) Consultas multi-tabla
6) Practicando lo aprendido
1) Introducción a SQL
Oracle 11G SQL utiliza el SQL (Structured Query Language). Basado en estándares ANSI
(American National Standards Institute) e ISO (International Standards Organization).
Categorías:
DCL - Data Control Language
Utilizadas en el control de acceso a datos en la base de datos. Ejemplo: GRANT, REVOKE.
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 (Confirma las transacciones), ROLLBACK
(Desase las transacciones).
DDL - Data Definition Language
Utilizadas para crear, alterar o borrar objetos de la base de datos. Ejemplo: CREATE, ALTER,
DROP, RENAME.
DML - Data Manipulation Language
Utilizadas para consultar o actualizar los datos contenidos en tablas de una base de datos.
2) Instrucciones DML y operadores
Bueno en esta sesión nos basaremos en revisar las particularidades de las sentencias DML en
Oracle. Explotando al máximo las funciones predefinidas de Oracle.
Sentencias:
SELECT
Obtiene filas de tablas de base de datos.
SELECT [DISTINCT|ALL] lista_selección
FROM tabla [,tabla ...]
[WHERE condición(es)]
[GROUP BY expresión [,expresión]...]

INSERT
Agrega filas a una tabla de la base de datos.
INSERT [INTO] tabla
[lista de campos de tabla]
VALUES (lista de valores de datos)
ó
[HAVING condición]
[ORDER BY {columna, expresión}
{ASC|DESC}]

INSERT INTO tabla
Sentencia SELECT

UPDATE
Modifica filas de una tabla que cumplan
cláusula WHERE.
UPDATE tabla
SET columna = expresión
[, columna = expresión...]
[WHERE condición(es)]

DELETE
Borra filas identificadas por la cláusula
WHERE
DELETE FROM tabla
[WHERE condición(es)]

3) Funciones pre-definidas
Funciones de carácter
 LOWER, UPPER
 INITCAP
 CONCAT, SUBSTR
 LENGTH, INSTR
 LPAD, RPAD, TRIM
 CHR
 ASCII
 REPLACE

Funciones numérica
 ROUND, TRUNC
 CEIL, FLOOR
 MOD
 POWER
 SQRT
 ABS
 SIGN
 Funciones de grupo : AVG, COUNT,
SUM, MAX, MIN

Funciones de fecha
 SYSDATE
 ADD_MONTHS, MONTHS_BETWEEN
 NEXT_DAY, LAST_DAY
 ROUND, TRUNC

Funciones de conversión
 TO_DATE
 TO_CHAR
 TO_NUMBER
 NVL
 DECODE

4) Sub-consultas
Es una sentencia SELECT que se encuentra dentro de una cláusula de otra sentencia SELECT.
Tipos:
Sub-consultas de una fila
Sub-consultas de múltiples filas
Sub-consultas de múltiples columna
5) Consultas multi-tablas
JOIN: Utilizada para consultar datos de más de una tabla.
Tipos de Join:
Equijoin
Non-equijoin
Outer-join
Selfjoin
6) Ejemplos
a) Demostración de las sentencias
Primero conectemos como el usuario scott/tiger. Connect Scott/tiger.
SQL> connect scott/tiger
Conectado.
La sentencia SELECT permite obtener filas de las tablas de base de datos.
Ejemplo1: Muestra todas las tablas que pertenecen al usuario SCOTT.
SQL> SELECT TABLE_NAME FROM USER_TABLES;
TABLE_NAME
-----------------------------DEPT
BONUS
SALGRADE
EMP
CLIENTE
VENDEDOR
COMIDAS
FACTURA
DETALLE_FACTURA
CINE
SALA
11 filas seleccionadas.
Ejemplo2: Muestre todos los CONSTRAINTS a lo que puede acceder el usuario SCOTT.
SQL> SELECT CONSTRAINT_NAME, TABLE_NAME, SUBSTR(COLUMN_NAME,1,255)
FROM ALL_CONS_COLUMNS
WHERE TABLE_NAME='EMP';
CONSTRAINT_NAME
TABLE_NAME
SUBSTR(COLUMN_NAME,1,255)
------------------------------ ------------------------------ -------------------------------------------------------SYS_C0011162
EMP
EMPNO
Ejemplo3: Muestre todos los campos de la tabla empleado con la condición de que el cargo sea
manager y ordénelo por el nombre del empleado.
SQL> SELECT * FROM EMP WHERE JOB = 'MANAGER' ORDER BY ENAME;
EMPNO ENAME
JOB
MGR HIREDATE
SAL
COMM
---------- ---------- --------- ---------- -------- ---------- ---------- ---------7698 BLAKE
MANAGER
7839 01/05/81
2850 30
7698 BLAKE
MANAGER
7839 01/05/81
2850 30

DEPTNO
7782 CLARK
7782 CLARK

MANAGER
MANAGER

7839 09/06/81
7839 09/06/81

2450
2450

10
10

4 filas seleccionadas.
Ejemplo4: Muestre todos los campos de la tabla empleado con la condición de que el código del
departamento sea 30 y ordénelo de forma descendiente por el nombre del empleado.
SQL> SELECT * FROM EMP WHERE DEPTNO = 30 ORDER BY ENAME DESC;
EMPNO ENAME
JOB
MGR HIREDATE
---------- ---------- --------- ---------- -------- ---------- ---------7521 WARD
SALESMAN
7698 22/02/81
7521 WARD
SALESMAN
7698 22/02/81
7844 TURNER SALESMAN
7698 08/09/81
7844 TURNER SALESMAN
7698 08/09/81
7654 MARTIN SALESMAN
7698 28/09/81
7654 MARTIN SALESMAN
7698 28/09/81
7698 BLAKE
MANAGER
7839 01/05/81
7698 BLAKE
MANAGER
7839 01/05/81
7499 ALLEN
SALESMAN
7698 20/02/81
7499 ALLEN
SALESMAN
7698 20/02/81

SAL
---------1250
1250
1500
1500
1250
1250
2850
2850
1600
1600

COMM

DEPTNO

500
500
0
0
1400
1400

30
30
30
30
30
30
30
30
300 30
300 30

10 filas seleccionadas.
Ejemplo5: Muestre el código del departamento y la cantidad de empleados por departamento.
SQL> SELECT DEPTNO, COUNT (EMPNO) AS CANTIDAD FROM EMP
GROUP BY DEPTNO;
DEPTNO CANTIDAD
---------- ---------30
10
10
4
Ejemplo6: Muestre el código y el nombre del departamento, y además la cantidad de empleados
por departamento.
SQL> SELECT E.DEPTNO,DNAME,COUNT(E.EMPNO) EMPLEADOS
FROM EMP E JOIN DEPT D
ON E.DEPTNO = D.DEPTNO
GROUP BY E.DEPTNO,DNAME;
DEPTNO DNAME
EMPLEADOS
---------- -------------- ---------10 ACCOUNTING
4
30 SALES
10
Ejemplo7: Muestre el código y el nombre del departamento, y además la cantidad de empleados
por departamento mayores o iguales a 4.
SQL> SELECT E.DEPTNO,DNAME,COUNT(E.EMPNO) EMPLEADOS
FROM EMP E JOIN DEPT D
ON E.DEPTNO = D.DEPTNO
GROUP BY E.DEPTNO,DNAME
HAVING COUNT (E.EMPNO)>=4;
DEPTNO DNAME
EMPLEADOS
---------- -------------- ---------30 SALES
10
La sentencia INSERT permite insertar varios registros en una tabla.
Ejemplo1: Insertar datos especificando únicamente los valores de los campo.
SQL> INSERT INTO DEPT
VALUES (50, 'MI AREA 1', 'LIMA' );
1 fila creada.
Ejemplo2: Insertar datos especificando todos los valores a ingresar.
SQL> INSERT INTO DEPT(DEPTNO, DNAME, LOC)
VALUES (60, 'MI AREA 2', 'LIMA' );
1 fila creada.
Ejemplo3: Insertar registros con una consulta select.
SQL> CREATE TABLE EJEMPLO
(
EMPNO NUMBER(4),
ENAME VARCHAR2(10)
);
Tabla creada.
SQL> INSERT INTO EJEMPLO(EMPNO,ENAME)
SELECT EMPNO,ENAME FROM EMP
WHERE COMM != 0;
6 filas creadas.
La sentencia UPDATE permite la actualización de uno o varios registros de una única tabla. Es
decir actualiza un campo de todos los registros como también actualiza varios campos de todos los
registros
Ejemplo1: Actualiza el saldo de los empleado en un 12% cuyo cargo sea manager.
SQL> UPDATE EMP
SET SAL= SAL * 1.2
WHERE JOB='MANAGER';
COMMIT;
Tabla modificada.
Ejemplo2: Actualiza el saldo de los empleado en 5000 y la comisión en 2000
SQL> UPDATE EMP
SET SAL= 5000,
COMM=1000;
COMMIT;
Tabla modificada.
La sentencia DELETE permite eliminar uno o más registros de una tabla, como también permite
eliminar un registro especifico.
Ejemplo1: Eliminar todos los registro de la tabla ejemplo.
SQL> DELETE FROM EJEMPLO;
6 filas suprimidas.
Ejemplo2: Eliminar los departamentos cuyo código sean 50 y 60.
SQL> DELETE FROM DEPT
WHERE DEPTNO >= 50 AND DEPTNO<=60;
2 filas suprimidas.
b) Demostración de las funciones de carácter.
Las funciones UPPER, LOWER, INITCAP reciben como parámetro una cadena cad.
UPPER(cad).LOWER(cad).INITCAP(cad).
Ejemplo: Muestre el nombre del empleado en Mayúscula, Minúscula y Letra capital.
SQL> SELECT UPPER(ENAME) MAYUSCULA, LOWER(ENAME) MINUSCULA,
INITCAP(ENAME) LETRACAPITAL FROM EMP;
MAYUSCULA MINUSCULA LETRACAPIT
---------------- -------------- ---------------ALLEN
allen
Allen
WARD
ward
Ward
MARTIN
martin Martin
BLAKE
blake
Blake
…
14 filas seleccionadas.
La función CONCAT recibe 2 parámetros. Devuelve cad1 concatenada con cad2. Esta función es
equivalente al operador ||. CONCAT(cad1,cad2).
Ejemplo: Concatena el nombre y el grado de los empleados.
SQL> SELECT CONCAT(ENAME,JOB), ENAME || '-' || JOB FROM EMP;
CONCAT(ENAME,JOB) ENAME||'-'||JOB
------------------- -------------------ALLENSALESMAN
ALLEN-SALESMAN
WARDSALESMAN
WARD-SALESMAN
MARTINSALESMAN
MARTIN-SALESMAN
BLAKEMANAGER
BLAKE-MANAGER
…
14 filas seleccionadas.
SQL> SELECT (CONCAT (CONCAT (ENAME,'-'), JOB)), ENAME || '-' || JOB FROM EMP;
Devuelve lo mismo.
La función SUBSTR permite extraer una porción de una cadena, para los cuáles recibe 3
parámetros. SUBSTR (cad, posicionInicial, nroCaracteres).
Nota: la primera posición de una cadena en Oracle es 1.
Ejemplo: Muestra los 3 primero caracteres de la columna nombre de la tabla empleados
SQL> SELECT SUBSTR(ENAME,1,3) FROM EMP;
SUB
--ALL
WAR
MAR
BLA
…
14 filas seleccionadas.
La función LENGTH recibe como parámetro una cadena cad devolviendo la longitud de dicha
cadena. LENGTH(cad)
Ejemplo: Devolver la longitud del campo nombre de la tabla empleados.
SQL> SELECT ENAME,LENGTH(ENAME) FROM EMP;
ENAME
---------ALLEN
WARD
MARTIN
BLAKE
…

LENGTH(ENAME)
------------5
4
6
5
14 filas seleccionadas.
La función INSTR recibe 2 parámetros y devuelve la posición de la segunda cadena dentro de la
primera. INSTR(cad1,cad2).
Ejemplo: Muestre la posición de ‘A’ dentro del nombre de los empleados.
SQL> SELECT ENAME, INSTR(ENAME,'A') FROM EMP;
ENAME
INSTR(ENAME,'A')
------------------------ALLEN
1
WARD
2
MARTIN
2
BLAKE
3
…
14 filas seleccionadas.
La función LPAD y RPAD reciben 3 parámetros.
Concatena por la izquierda LPAD devuelve cad1 con longitud n, y ajustada a la derecha,
rellenando por la izquierda con cad2. (cad1,n,cad2’).
Concatena por la derecha RPAD Devuelve cad1 con longitud n, y ajustada a la izquierda,
rellenando por la derecha con cad2. (cad1,n,cad2’).
SQL> SELECT LPAD(ENAME,20,'*'), RPAD(ENAME,20,'*') FROM EMP;
LPAD(ENAME,20,'*')
-------------------***************ALLEN
****************WARD
**************MARTIN
***************BLAKE
…
14 filas seleccionadas.

RPAD(ENAME,20,'*')
------------------ALLEN***************
WARD****************
MARTIN**************
BLAKE***************

La función CHR devuelve el carácter cuyo valor codificado es n. CHR(N).
SQL> SELECT CHR(65) FROM DUAL;
C
A
La función ASCII devuelve el valor ascii de cad.
SQL> SELECT ASCII('A') FROM DUAL;
ASCII('A')
---------65
La función REPLACE devuelve la cadena en la que cada ocurrencia de la cadena antigua ha sido
sustituida por la cadena nueva.
SQL> SELECT REPLACE('DIGO','I','IE') FROM DUAL;
REPLA
----DIEGO
c) Demostración de las funciones numéricas.
La función ROUND calcula el redondeo de m a n decimales. Si n<0 el redondeo se efectúa a por
la izquierda del punto decimal. ROUND(m,n).
SQL> SELECT ROUND(234.345,1) FROM DUAL;
ROUND(234.345,1)
---------------234,3
SQL> SELECT ROUND(234.345,0) FROM DUAL;
ROUND(234.345,0)
---------------234
La función TRUNC calcula m truncado a n decimales (n puede ser negativo). TRUNC(m.n).
SQL> SELECT TRUNC(123.456,1) FROM DUAL;
TRUNC(123.456,1)
---------------123,4
La función CEIL calcula el valor entero inmediatamente superior o igual a n (devuelve el entero
mayor mas próximo). CEIL(n).
SQL> SELECT CEIL(13.7) FROM DUAL;
CEIL(13.7)
---------14
La función FLOOR calcula el valor entero inmediatamente inferior o igual a n (el entero menor más
próximo). FLOOR(n).
SQL> SELECT FLOOR(13.7) FROM DUAL;
FLOOR(13.7)
----------13
La función MOD calcula el resto resultante de dividir m entre n. MOD(m,n).
SQL> SELECT MOD(15,2) FROM DUAL;
MOD(15,2)
---------1
La función ABS calcula el valor absoluto de n. ABS(n).
SQL> SELECT ABS(-15) FROM DUAL;
ABS(-15)
---------15
La función POWER Calcula la potencia n-esima de m. POWER(m,n).
SQL> SELECT POWER(3,2) FROM DUAL;
POWER(3,2)
---------9
La función SQRT calcula la raíz cuadrada de n. SQRT(n).
SQL> SELECT SQRT(4) FROM DUAL;
SQRT(4)
---------2
La función SIGN calcula el signo de n, devolviendo -1 si n<0, 0 si n=0 y 1 si n>0.
SQL> SELECT SIGN(-12) FROM DUAL;
SIGN(-12)
----------1

Más contenido relacionado

La actualidad más candente

Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
testgrupocomex
 
Transact sql
Transact sqlTransact sql
Transact sql
joan
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
Bolivar Castillo
 

La actualidad más candente (20)

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)
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)
 
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)
 
Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)
 
Forms 10g procedimientos y cursores
Forms 10g procedimientos y cursoresForms 10g procedimientos y cursores
Forms 10g procedimientos y cursores
 
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
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Cap I Plsql
Cap I PlsqlCap I Plsql
Cap I Plsql
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Plsql y paquetes
Plsql y paquetesPlsql y paquetes
Plsql y paquetes
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Oracle pl sql
Oracle pl sqlOracle pl sql
Oracle pl sql
 
Apunte plsql
Apunte plsqlApunte plsql
Apunte plsql
 
Pl Sql
Pl SqlPl Sql
Pl Sql
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
SQL
SQLSQL
SQL
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Transact sql
Transact sqlTransact sql
Transact sql
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 

Destacado

Destacado (13)

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)
 
Curso SQL - Leccion 12
Curso SQL - Leccion 12Curso SQL - Leccion 12
Curso SQL - Leccion 12
 
Curso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL AvanzadoCurso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL Avanzado
 
Leccion 8 - Consultas Compuestas
Leccion 8 - Consultas CompuestasLeccion 8 - Consultas Compuestas
Leccion 8 - Consultas Compuestas
 
Curso SQL - Leccion 11
Curso SQL - Leccion 11Curso SQL - Leccion 11
Curso SQL - Leccion 11
 
Manipulacion de Datos SQL cap10
Manipulacion de Datos SQL cap10Manipulacion de Datos SQL cap10
Manipulacion de Datos SQL cap10
 
Curso SQL - Leccion 8
Curso SQL - Leccion 8Curso SQL - Leccion 8
Curso SQL - Leccion 8
 
PostgreSQL - Lección 10 - Vistas
PostgreSQL - Lección 10 - VistasPostgreSQL - Lección 10 - Vistas
PostgreSQL - Lección 10 - Vistas
 
Consultas anidadas o subconsultas oracle
Consultas  anidadas o subconsultas oracleConsultas  anidadas o subconsultas oracle
Consultas anidadas o subconsultas oracle
 
Oracle
OracleOracle
Oracle
 
Oracle
OracleOracle
Oracle
 

Similar a Sesion05 - Manipulacion de datos (Oracle)

Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
Henry Cambal
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
Henry Cambal
 
Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
BryanChacon12
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
Oca srl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
yehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
yehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
usamn
 

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

8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
 
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
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Textos sqli_mssql
 Textos sqli_mssql Textos sqli_mssql
Textos sqli_mssql
 
CURSORES
CURSORESCURSORES
CURSORES
 
CURSORES
CURSORESCURSORES
CURSORES
 
Expo
ExpoExpo
Expo
 
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
 
Attachment
AttachmentAttachment
Attachment
 
Presentacións Sql mejorado
Presentacións Sql mejoradoPresentacións Sql mejorado
Presentacións Sql mejorado
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 

Último

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 

Sesion05 - 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 */ 1) Introducción a SQL 2) Instrucciones DML y operadores 3) Funciones pre-definidas 4) Sub-consultas 5) Consultas multi-tabla 6) Practicando lo aprendido 1) Introducción a SQL Oracle 11G SQL utiliza el SQL (Structured Query Language). Basado en estándares ANSI (American National Standards Institute) e ISO (International Standards Organization). Categorías: DCL - Data Control Language Utilizadas en el control de acceso a datos en la base de datos. Ejemplo: GRANT, REVOKE. 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 (Confirma las transacciones), ROLLBACK (Desase las transacciones). DDL - Data Definition Language Utilizadas para crear, alterar o borrar objetos de la base de datos. Ejemplo: CREATE, ALTER, DROP, RENAME. DML - Data Manipulation Language Utilizadas para consultar o actualizar los datos contenidos en tablas de una base de datos. 2) Instrucciones DML y operadores Bueno en esta sesión nos basaremos en revisar las particularidades de las sentencias DML en Oracle. Explotando al máximo las funciones predefinidas de Oracle. Sentencias: SELECT Obtiene filas de tablas de base de datos. SELECT [DISTINCT|ALL] lista_selección FROM tabla [,tabla ...] [WHERE condición(es)] [GROUP BY expresión [,expresión]...] INSERT Agrega filas a una tabla de la base de datos. INSERT [INTO] tabla [lista de campos de tabla] VALUES (lista de valores de datos) ó
  • 2. [HAVING condición] [ORDER BY {columna, expresión} {ASC|DESC}] INSERT INTO tabla Sentencia SELECT UPDATE Modifica filas de una tabla que cumplan cláusula WHERE. UPDATE tabla SET columna = expresión [, columna = expresión...] [WHERE condición(es)] DELETE Borra filas identificadas por la cláusula WHERE DELETE FROM tabla [WHERE condición(es)] 3) Funciones pre-definidas Funciones de carácter  LOWER, UPPER  INITCAP  CONCAT, SUBSTR  LENGTH, INSTR  LPAD, RPAD, TRIM  CHR  ASCII  REPLACE Funciones numérica  ROUND, TRUNC  CEIL, FLOOR  MOD  POWER  SQRT  ABS  SIGN  Funciones de grupo : AVG, COUNT, SUM, MAX, MIN Funciones de fecha  SYSDATE  ADD_MONTHS, MONTHS_BETWEEN  NEXT_DAY, LAST_DAY  ROUND, TRUNC Funciones de conversión  TO_DATE  TO_CHAR  TO_NUMBER  NVL  DECODE 4) Sub-consultas Es una sentencia SELECT que se encuentra dentro de una cláusula de otra sentencia SELECT. Tipos: Sub-consultas de una fila Sub-consultas de múltiples filas Sub-consultas de múltiples columna 5) Consultas multi-tablas JOIN: Utilizada para consultar datos de más de una tabla. Tipos de Join: Equijoin Non-equijoin Outer-join Selfjoin
  • 3. 6) Ejemplos a) Demostración de las sentencias Primero conectemos como el usuario scott/tiger. Connect Scott/tiger. SQL> connect scott/tiger Conectado. La sentencia SELECT permite obtener filas de las tablas de base de datos. Ejemplo1: Muestra todas las tablas que pertenecen al usuario SCOTT. SQL> SELECT TABLE_NAME FROM USER_TABLES; TABLE_NAME -----------------------------DEPT BONUS SALGRADE EMP CLIENTE VENDEDOR COMIDAS FACTURA DETALLE_FACTURA CINE SALA 11 filas seleccionadas. Ejemplo2: Muestre todos los CONSTRAINTS a lo que puede acceder el usuario SCOTT. SQL> SELECT CONSTRAINT_NAME, TABLE_NAME, SUBSTR(COLUMN_NAME,1,255) FROM ALL_CONS_COLUMNS WHERE TABLE_NAME='EMP'; CONSTRAINT_NAME TABLE_NAME SUBSTR(COLUMN_NAME,1,255) ------------------------------ ------------------------------ -------------------------------------------------------SYS_C0011162 EMP EMPNO Ejemplo3: Muestre todos los campos de la tabla empleado con la condición de que el cargo sea manager y ordénelo por el nombre del empleado. SQL> SELECT * FROM EMP WHERE JOB = 'MANAGER' ORDER BY ENAME; EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------- ---------- ---------- ---------7698 BLAKE MANAGER 7839 01/05/81 2850 30 7698 BLAKE MANAGER 7839 01/05/81 2850 30 DEPTNO
  • 4. 7782 CLARK 7782 CLARK MANAGER MANAGER 7839 09/06/81 7839 09/06/81 2450 2450 10 10 4 filas seleccionadas. Ejemplo4: Muestre todos los campos de la tabla empleado con la condición de que el código del departamento sea 30 y ordénelo de forma descendiente por el nombre del empleado. SQL> SELECT * FROM EMP WHERE DEPTNO = 30 ORDER BY ENAME DESC; EMPNO ENAME JOB MGR HIREDATE ---------- ---------- --------- ---------- -------- ---------- ---------7521 WARD SALESMAN 7698 22/02/81 7521 WARD SALESMAN 7698 22/02/81 7844 TURNER SALESMAN 7698 08/09/81 7844 TURNER SALESMAN 7698 08/09/81 7654 MARTIN SALESMAN 7698 28/09/81 7654 MARTIN SALESMAN 7698 28/09/81 7698 BLAKE MANAGER 7839 01/05/81 7698 BLAKE MANAGER 7839 01/05/81 7499 ALLEN SALESMAN 7698 20/02/81 7499 ALLEN SALESMAN 7698 20/02/81 SAL ---------1250 1250 1500 1500 1250 1250 2850 2850 1600 1600 COMM DEPTNO 500 500 0 0 1400 1400 30 30 30 30 30 30 30 30 300 30 300 30 10 filas seleccionadas. Ejemplo5: Muestre el código del departamento y la cantidad de empleados por departamento. SQL> SELECT DEPTNO, COUNT (EMPNO) AS CANTIDAD FROM EMP GROUP BY DEPTNO; DEPTNO CANTIDAD ---------- ---------30 10 10 4 Ejemplo6: Muestre el código y el nombre del departamento, y además la cantidad de empleados por departamento. SQL> SELECT E.DEPTNO,DNAME,COUNT(E.EMPNO) EMPLEADOS FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO GROUP BY E.DEPTNO,DNAME; DEPTNO DNAME EMPLEADOS ---------- -------------- ---------10 ACCOUNTING 4 30 SALES 10
  • 5. Ejemplo7: Muestre el código y el nombre del departamento, y además la cantidad de empleados por departamento mayores o iguales a 4. SQL> SELECT E.DEPTNO,DNAME,COUNT(E.EMPNO) EMPLEADOS FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO GROUP BY E.DEPTNO,DNAME HAVING COUNT (E.EMPNO)>=4; DEPTNO DNAME EMPLEADOS ---------- -------------- ---------30 SALES 10 La sentencia INSERT permite insertar varios registros en una tabla. Ejemplo1: Insertar datos especificando únicamente los valores de los campo. SQL> INSERT INTO DEPT VALUES (50, 'MI AREA 1', 'LIMA' ); 1 fila creada. Ejemplo2: Insertar datos especificando todos los valores a ingresar. SQL> INSERT INTO DEPT(DEPTNO, DNAME, LOC) VALUES (60, 'MI AREA 2', 'LIMA' ); 1 fila creada. Ejemplo3: Insertar registros con una consulta select. SQL> CREATE TABLE EJEMPLO ( EMPNO NUMBER(4), ENAME VARCHAR2(10) ); Tabla creada. SQL> INSERT INTO EJEMPLO(EMPNO,ENAME) SELECT EMPNO,ENAME FROM EMP WHERE COMM != 0; 6 filas creadas. La sentencia UPDATE permite la actualización de uno o varios registros de una única tabla. Es decir actualiza un campo de todos los registros como también actualiza varios campos de todos los registros
  • 6. Ejemplo1: Actualiza el saldo de los empleado en un 12% cuyo cargo sea manager. SQL> UPDATE EMP SET SAL= SAL * 1.2 WHERE JOB='MANAGER'; COMMIT; Tabla modificada. Ejemplo2: Actualiza el saldo de los empleado en 5000 y la comisión en 2000 SQL> UPDATE EMP SET SAL= 5000, COMM=1000; COMMIT; Tabla modificada. La sentencia DELETE permite eliminar uno o más registros de una tabla, como también permite eliminar un registro especifico. Ejemplo1: Eliminar todos los registro de la tabla ejemplo. SQL> DELETE FROM EJEMPLO; 6 filas suprimidas. Ejemplo2: Eliminar los departamentos cuyo código sean 50 y 60. SQL> DELETE FROM DEPT WHERE DEPTNO >= 50 AND DEPTNO<=60; 2 filas suprimidas. b) Demostración de las funciones de carácter. Las funciones UPPER, LOWER, INITCAP reciben como parámetro una cadena cad. UPPER(cad).LOWER(cad).INITCAP(cad). Ejemplo: Muestre el nombre del empleado en Mayúscula, Minúscula y Letra capital. SQL> SELECT UPPER(ENAME) MAYUSCULA, LOWER(ENAME) MINUSCULA, INITCAP(ENAME) LETRACAPITAL FROM EMP; MAYUSCULA MINUSCULA LETRACAPIT ---------------- -------------- ---------------ALLEN allen Allen WARD ward Ward MARTIN martin Martin BLAKE blake Blake …
  • 7. 14 filas seleccionadas. La función CONCAT recibe 2 parámetros. Devuelve cad1 concatenada con cad2. Esta función es equivalente al operador ||. CONCAT(cad1,cad2). Ejemplo: Concatena el nombre y el grado de los empleados. SQL> SELECT CONCAT(ENAME,JOB), ENAME || '-' || JOB FROM EMP; CONCAT(ENAME,JOB) ENAME||'-'||JOB ------------------- -------------------ALLENSALESMAN ALLEN-SALESMAN WARDSALESMAN WARD-SALESMAN MARTINSALESMAN MARTIN-SALESMAN BLAKEMANAGER BLAKE-MANAGER … 14 filas seleccionadas. SQL> SELECT (CONCAT (CONCAT (ENAME,'-'), JOB)), ENAME || '-' || JOB FROM EMP; Devuelve lo mismo. La función SUBSTR permite extraer una porción de una cadena, para los cuáles recibe 3 parámetros. SUBSTR (cad, posicionInicial, nroCaracteres). Nota: la primera posición de una cadena en Oracle es 1. Ejemplo: Muestra los 3 primero caracteres de la columna nombre de la tabla empleados SQL> SELECT SUBSTR(ENAME,1,3) FROM EMP; SUB --ALL WAR MAR BLA … 14 filas seleccionadas. La función LENGTH recibe como parámetro una cadena cad devolviendo la longitud de dicha cadena. LENGTH(cad) Ejemplo: Devolver la longitud del campo nombre de la tabla empleados. SQL> SELECT ENAME,LENGTH(ENAME) FROM EMP; ENAME ---------ALLEN WARD MARTIN BLAKE … LENGTH(ENAME) ------------5 4 6 5
  • 8. 14 filas seleccionadas. La función INSTR recibe 2 parámetros y devuelve la posición de la segunda cadena dentro de la primera. INSTR(cad1,cad2). Ejemplo: Muestre la posición de ‘A’ dentro del nombre de los empleados. SQL> SELECT ENAME, INSTR(ENAME,'A') FROM EMP; ENAME INSTR(ENAME,'A') ------------------------ALLEN 1 WARD 2 MARTIN 2 BLAKE 3 … 14 filas seleccionadas. La función LPAD y RPAD reciben 3 parámetros. Concatena por la izquierda LPAD devuelve cad1 con longitud n, y ajustada a la derecha, rellenando por la izquierda con cad2. (cad1,n,cad2’). Concatena por la derecha RPAD Devuelve cad1 con longitud n, y ajustada a la izquierda, rellenando por la derecha con cad2. (cad1,n,cad2’). SQL> SELECT LPAD(ENAME,20,'*'), RPAD(ENAME,20,'*') FROM EMP; LPAD(ENAME,20,'*') -------------------***************ALLEN ****************WARD **************MARTIN ***************BLAKE … 14 filas seleccionadas. RPAD(ENAME,20,'*') ------------------ALLEN*************** WARD**************** MARTIN************** BLAKE*************** La función CHR devuelve el carácter cuyo valor codificado es n. CHR(N). SQL> SELECT CHR(65) FROM DUAL; C A La función ASCII devuelve el valor ascii de cad. SQL> SELECT ASCII('A') FROM DUAL; ASCII('A') ---------65
  • 9. La función REPLACE devuelve la cadena en la que cada ocurrencia de la cadena antigua ha sido sustituida por la cadena nueva. SQL> SELECT REPLACE('DIGO','I','IE') FROM DUAL; REPLA ----DIEGO c) Demostración de las funciones numéricas. La función ROUND calcula el redondeo de m a n decimales. Si n<0 el redondeo se efectúa a por la izquierda del punto decimal. ROUND(m,n). SQL> SELECT ROUND(234.345,1) FROM DUAL; ROUND(234.345,1) ---------------234,3 SQL> SELECT ROUND(234.345,0) FROM DUAL; ROUND(234.345,0) ---------------234 La función TRUNC calcula m truncado a n decimales (n puede ser negativo). TRUNC(m.n). SQL> SELECT TRUNC(123.456,1) FROM DUAL; TRUNC(123.456,1) ---------------123,4 La función CEIL calcula el valor entero inmediatamente superior o igual a n (devuelve el entero mayor mas próximo). CEIL(n). SQL> SELECT CEIL(13.7) FROM DUAL; CEIL(13.7) ---------14 La función FLOOR calcula el valor entero inmediatamente inferior o igual a n (el entero menor más próximo). FLOOR(n). SQL> SELECT FLOOR(13.7) FROM DUAL;
  • 10. FLOOR(13.7) ----------13 La función MOD calcula el resto resultante de dividir m entre n. MOD(m,n). SQL> SELECT MOD(15,2) FROM DUAL; MOD(15,2) ---------1 La función ABS calcula el valor absoluto de n. ABS(n). SQL> SELECT ABS(-15) FROM DUAL; ABS(-15) ---------15 La función POWER Calcula la potencia n-esima de m. POWER(m,n). SQL> SELECT POWER(3,2) FROM DUAL; POWER(3,2) ---------9 La función SQRT calcula la raíz cuadrada de n. SQRT(n). SQL> SELECT SQRT(4) FROM DUAL; SQRT(4) ---------2 La función SIGN calcula el signo de n, devolviendo -1 si n<0, 0 si n=0 y 1 si n>0. SQL> SELECT SIGN(-12) FROM DUAL; SIGN(-12) ----------1