Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I - 425501 PL/SQL.

Slides:



Advertisements
Presentaciones similares
SQL Sigla del nombre “Structured Query Language”.
Advertisements

LENGUAJE ESTRUCTURADO DE CONSULTA “SQL”
Base de Datos Orientada a Objetos (OODBMS)
Introducción a Transact-SQL
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo Introducción a PL/SQL Conceptos básicos.
Fernando Velasco
SQL G r u p o
PL/SQL Francisco Moreno Universidad Nacional.
PL/SQL Francisco Moreno Universidad Nacional.
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
PL/SQL Francisco Moreno Universidad Nacional.
SQL SERVER APLICADO (SSA010) Ariel Alexis Fierro Sáez DuocUC.
SESIÓN 2. Completados por el tipo de objeto sobre el que actúan y el objeto concreto: CREATE DATABASE mibase ; Permite crear una base de datos llamada.
MySQL M.C. Pedro Bello López.
PL/SQL Francisco Moreno Universidad Nacional. Introducción al PL/SQL ¿Por qué PL/SQL? A pesar de que SQL tiene mecanismos de control condicional (cláusula.
Bases de Datos Relacionales
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
PL/SQL Francisco Moreno Universidad Nacional.
Universidad del Cauca – FIET – Departamento de Sistemas
PL/SQL Francisco Moreno Universidad Nacional.
Subconsultas Avanzadas
Ing. Ricardo Carlos Inquilla Quispe
Procedimientos Almacenados Funciones Agregadas
Componentes sintácticos
UNITA - IBARRA TRIGGERS
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
1 Microcomputación II Unidad II Administración de datos con MS-SQL Server y Visual Basic Introducción a Transact – SQL: Select, Delete, Update. Tema:
COMANDOS SQL.
PL/SQL Francisco Moreno Universidad Nacional.
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
Sesión 9 Construcción de cursores.
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Manipulación de Datos Conceptos básicos.
Triggers(Disparadores)
STRUCTURED QUERY LANGUAGE
INSTRUCCIONES Elaboración de la Presentación:
Introducción a Bases de Datos en Microsoft Access Programación de Computadoras 2 Sección: P.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
Visión General de PL/SQL
LENGUAJE SQL.
Structured Query Language (Lenguaje Estructurado de Consultas)
SQL Sigla del nombre “Structured Query Language”.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
INSTRUCCIONES Elaboración de la Presentación:
1 -Instrucciones del Lenguaje de definición de datos (DDL) se utilizan para crear objetos en la base de datos. -Instrucciones del Lenguaje de control de.
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
Estructuras de Control en Visual Basic.net
SQL Lenguaje Estructurado de Consulta MATERIA: diseñar sistemas de información ALUMNO: sarmiento flores Liliana Guadalupe GRUPO: 4° “A” TURNO: matutino.
Diseña y administra base de datos avanzadas
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
Estructuras de Control
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
(Lenguaje de consulta estructurado)
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Después de completar esta lección, debe ser capaz de:  Crear registro definidos por el usuario.  Crear un registro con el atributo %ROWTYPE.  Crear.
SQL: DDL.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
3 Cursores ORACLE Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega.
Mtr. Adrián Monge Monge Educación 2015 Maestría, Mención en Administración de Proyectos ULACITMaestría, Mención en Administración de Proyectos 2012 Licenciatura,
JOB_HISTORY EMPLOYEE_ID (PK,FK) START_DATE (PK) END_DATE JOB_ID (FK) DEPARTMENT_ID (FK) EMPLOYEES EMPLOYEE_ID (PK) FIRST_NAME LAST_NAME.
Base de Datos I – Ing. Mary Carlota Bernal J.  Cada instrucción PL/SQL tiene asociado internamente un cursor  Los cursores en PL/SQL pueden ser de dos.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Diapositivas PLSQL ORACLE – Semana 2 Especialización en Desarrollo de soluciones Informáticas Universidad del Cauca Miguel Ángel Niño Zambrano.
6 Copyright © 2004, Oracle. Todos los derechos reservados. Trabajar con Tipos de Dato Compuestos.
PL/SQL Francisco Moreno Universidad Nacional.
Transcripción de la presentación:

Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I PL/SQL

Base de Datos I – PL/SQL PL/SQL  PL/SQL es clasificado como un lenguaje procedimental, debido al uso de bucles, condicionales, y declaración de variables; su entrada y salida es a través de parámetros o medios intermedios.  El lenguaje PL/SQL es una extensión del lenguaje SQL con características de los lenguajes de programación.  Con PL/SQL la manipulacion de datos y las sentencias query de SQL son incluidas dentro de unidades procedimentales de código.

Base de Datos I – PL/SQL Estructura de Bloques de PL/SQL  Secciones de un bloque PL/SQL

Base de Datos I – PL/SQL PL/SQL es portable. Permite declarar variables. Se puede programar con estructuras de control de lenguaje procedural. PL/SQL puede manejar errores. Fácil mantenimiento Mayor integridad y seguridad de los datos Mejor rendimiento Mayor claridad del código Ventajas de PL/SQL

Base de Datos I – PL/SQL

En tiempo de ejecución Para realizar una acción Para calcular un valor

Base de Datos I – PL/SQL Tipos de Programa en PL/SQL

Base de Datos I – PL/SQL Las constantes y las variables NOT NULL deben inicializarse

Base de Datos I – PL/SQL v_mgr NUMBER(6) DEFAULT 100; v_hire_date := '15-SEP-1999' v_city VARCHAR2(30) NOT NULL := 'Oxford'

Base de Datos I – PL/SQL Tipos de Dato Escalares Guardan un solo valor No tienen componentes internos CHAR [(longitud_máxima)] VARCHAR2 (longitud_máxima) LONG LONG RAW NUMBER [(precisión, escala)] BINARY_INTEGER PLS_INTEGER BOOLEAN

Base de Datos I – PL/SQL

v_name employees.last_name%TYPE; v_balance NUMBER(7,2); v_min_balance v_balance%TYPE := 10;

Base de Datos I – PL/SQL DECLARE v_flag BOOLEAN := FALSE; BEGIN v_flag := TRUE; END;

Base de Datos I – PL/SQL Funciones SQL en PL/SQL Están disponibles igual que en SQL: Funciones Numéricas Funciones de Carácter Funciones de Fecha y Hora GREATEST, LEAST No están disponibles: La función DECODE Funciones de Grupo

Base de Datos I – PL/SQL v_info := v_nombre||CHR(10)||’ tiene un ‘ ||’ salario de ‘|| to_char(v_salario,’999,999.99’)); v_nombre := LOWER(v_nombre);  Conversión del nombre de un empleado a minúsculas  Obtención del mayor valor de una lista v_mayor := GREATEST(v_val1, v_val2, …); Concatenación de la información de un empleado Funciones SQL en PL/SQL

Base de Datos I – PL/SQL DECLARE v_fecha VARCHAR2(30); BEGIN SELECT TO_CHAR(fingreso, ’MON.DD,YYYY’) INTO v_fecha FROM empleado WHERE empno = 100; END; / TO_CHAR(v, f) TO_DATE(c, f) TO_NUMBER(c, f) Conversión entre Tipos de Datos Se realizan conversiones de datos entre tipos compatibles Funciones de Conversión – TO_CHAR – TO_DATE – TO_NUMBER

Base de Datos I – PL/SQL Recomendaciones para el Desarrollo de Programas Adoptar una convención o estándar para el código de programas  Palabras Reservadas en mayúsculas  Identificadores en minúsculas Adoptar un estándar para los nombres de identificadores y otros objetos Documentar los programas y bloques haciendo uso de comentarios Asegurar legibilidad haciendo uso de indentación

Base de Datos I – PL/SQL Instrucciones SQL en PL/SQL SELECTLa instrucción SELECT permite recuperar filas de datos de la Base de Datos DMLLas instrucciones DML permiten realizar cambios a los datos en la Base de Datos COMMIT ROLLBACKSAVEPOINTSe pueden controlar las transacciones con el uso de los comandos COMMIT, ROLLBACK o SAVEPOINT Los atributos permiten determinar el status de los cursores implícitos PL/SQL no soporta las sentencias DDL (CREATE, ALTER Y DROP) ni las sentencias DCL (GRANT Y REVOKE).

Base de Datos I – PL/SQL  Permite recuperar datos de la Base de Datos SELECT SELECT lista_columnas INTO INTO {nombre_variable [,nombre_variable,…] | variable_registro} FROM FROM tabla WHERE [WHERE condicion]; INTOLa cláusula INTO es obligatoria en una consulta dentro de un bloque PL/SQL La consulta debe retornar una y solo una fila de datos INTOEl número de columnas recuperadas debe coincidir en número y tipo con las variables de la cláusula INTO Instrucciones SQL en PL/SQL

Base de Datos I – PL/SQL DECLARE v_numdept NUMBER(2); v_ubicacion VARCHAR2(40); BEGIN SELECT SELECT numdept, ubicacion INTO INTO v_numdept, v_ubicacion FROM FROM departamento WHERE WHERE nombre = ‘INVESTIGACION’; END END; / Instrucciones SQL en PL/SQL

Base de Datos I – PL/SQL DECLARE v_sum_sal empleado.salario%TYPE; v_numdept VARCHAR2(40):= 01; BEGIN SELECTSUM() SELECT SUM(salario) INTO INTO v_sum_sal FROM FROM empleado WHERE WHERE numdept = v_numdept; END END; / Instrucciones SQL en PL/SQL

Base de Datos I – PL/SQL Manipulación de Datos usando PL/SQL Los cambios a la Base de Datos se realizan usando los comandos DML INSERT – INSERT: Agrega nuevas filas de datos UPDATE – UPDATE: Modifica filas de datos existentes DELETE – DELETE: Borra filas de datos existentes Estos comandos se utilizan de la misma manera que en SQL Se pueden incluir también las instrucciones COMMIT y ROLLBACK para controlar las transacciones

Base de Datos I – PL/SQL BEGIN INSERTINTO INSERT INTO empleado(empno, nombre, cargo, numdept) VALUES VALUES(seq_emp.NEXTVAL,‘JUAN JOSE’, ‘ANALISTA’, 01); END END; Inserción de Datos La siguiente instrucción agrega un nuevo empleado a la tabla de empleados usando una secuencia para obtener el código del empleado

Base de Datos I – PL/SQL  La siguiente instrucción incrementa el salario de todos los empleados con cargo de ANALISTA DECLARE %TYPE v_increm empleado.salario%TYPE := 0.1; BEGIN UPDATE UPDATE empleado SET= SET salario = salario*(1 + v_increm); WHERE= WHERE cargo =‘ANALISTA’; END END; Actualización de Datos

Base de Datos I – PL/SQL  La siguiente instrucción permite eliminar todos los empleados del departamento 4 DECLARE %TYPE v_numdept empleado.numdept%TYPE := 4; BEGIN DELETEFROM DELETE FROM empleado WHERE WHERE numdept = v_numdept; END END; Eliminación de Datos

Base de Datos I – PL/SQL Nombres de Identificadores y Columnas en PL/SQL  Se debe utilizar nombres que no causen ambigüedad en la cláusula WHERE DECLARE nombre departamento.nombre%TYPE; numdept numdept departamento.numdept%TYPE := 1; ubicacion departamento.ubicacion%TYPE; BEGIN SELECT SELECT nombre, ubicacion INTO INTO nombre, ubicacion FROM FROM departamento WHEREnumdeptnumdept WHERE numdept = numdept; END END; Ambigüedad

Base de Datos I – PL/SQL COMMIT; SAVEPOINT nombre_punto; ROLLBACK [TO SAVEPOINT nombre_punto]; Instrucciones COMMIT y ROLLBACK Una transacción se inicia con la primera instrucción DML que se ejecuta y termina con una instrucción COMMIT o ROLLBACK completo Estas instrucciones terminan explícitamente una transacción

Base de Datos I – PL/SQL Ejercicios Crear un bloque PL/SQL que muestre por pantalla cuantos registros tiene la tabla Empleados. Crear un bloque PL/SQL que inserte una fila a la tabla empleados. Todos los datos debe ser solicitados por pantalla. Crear un bloque PL/SQL que actualice el nombre del registro insertado en el ejercicio anterior. Crear un bloque PL/SQL que elimine el registro insertado en el ejercicio anterior

Base de Datos I – PL/SQL Escribiendo Estructuras de Control Las estructuras de control se utilizan para indicar el flujo de control que deben seguir las instrucciones al momento de su ejecución Las estructuras de control pueden ser:  Condicionales IF - THEN [ELSIF] [ELSE] - END IF;  IteracionesLOOPFORWHILE CICLOS CON ETIQUETAS

Base de Datos I – PL/SQL IFTHEN IF condicion THEN instrucciones; ELSIFTHEN [ELSIF condicion THEN instrucciones;] ELSE [ELSE instrucciones;] ENDIF END IF; IFTHEN IF v_nombre = ‘CINDY’ THEN v_jefe := 100; ENDIF END IF; Sentencia IF

Base de Datos I – PL/SQL

IFTHEN IF condicion1 THEN instrucciones1; ELSE instrucciones2; ENDIF END IF; THEN IF condicion1 THEN instrucciones1; ELSE IFTHEN IF condicion2 THEN instrucciones2; ENDIF END IF; Sentencia IF

Base de Datos I – PL/SQL

Instrucción IF-THEN-ELSIF IFTHEN IF condicion1 THEN instrucciones1; ELSIFTHEN ELSIF condicion2 THEN instrucciones2; ELSIFTHEN ELSIF condicion3 THEN instrucciones3; … ELSE instrucciones; ENDIF END IF; IFTHEN IF v_num > 100 THEN v_num := v_num * 2; ELSIFTHEN ELSIF v_num >= 0.5 THEN v_num := v_num * 50; ELSE v_num := v_num * 0.3; ENDIF END IF;

Base de Datos I – PL/SQL

Ciclos Iterativos Las estructuras de control iterativas se utilizan para repetir la ejecución de un conjunto de instrucciones múltiples veces Hay tres tipos de estructuras iterativas Ciclo LOOP Básico Ciclo FOR Ciclo WHILE

Base de Datos I – PL/SQL WHEN  La cláusula WHEN es una condición bolean de control que permitirá la salida del ciclo cuando sea verdadera LOOP LOOP -- Inicio del ciclo instrucciones; … EXITWHEN EXIT [WHEN condicion] -- Salida … ENDLOOP END LOOP; -- Fin del ciclo Ciclo LOOP Básico

Base de Datos I – PL/SQL DECLARE %TYPE v_orden orden.orden%TYPE := 600; NUMBER(2) v_cuantas NUMBER(2) := 1; BEGIN LOOP INSERTINTO INSERT INTO orden (orden, item) VALUES VALUES (v_orden, v_cuantas); EXITWHEN EXIT WHEN v_cuantas = 10; v_cuantas := v_cuantas + 1; v_orden := v_orden + 1; ENDLOOP END LOOP; Ciclo LOOP Básico

Base de Datos I – PL/SQL

 El ciclo FOR posee un número de iteraciones predefinido  La cláusula REVERSE indica que el índice disminuirá en cada iteración  Linf indica el límite inferior y Lsup indica el límite superior  El índice es declarado implícitamente FORINREVERSELOOP FOR contador IN [REVERSE] Linf.. Lsup LOOP instrucciones; … ENDLOOP END LOOP; Ciclo FOR

Base de Datos I – PL/SQL DECLARE %TYPE v_orden orden.orden%TYPE := 600; BEGIN FORINLOOP FOR I IN LOOP INSERTINTO INSERT INTO orden (orden, item) VALUES VALUES (v_orden + I-1, I); ENDLOOP END LOOP; END END; Ciclo FOR

Base de Datos I – PL/SQL

 La condición es evaluada al inicio de cada iteración  El ciclo termina cuando la condición se evalúa en FALSE WHILELOOP WHILE condicion LOOP instrucciones; … ENDLOOP END LOOP; Ciclo WHILE

Base de Datos I – PL/SQL ACCEPT p_orden PROMPT ‘Orden Inicial:’ DECLARE NUMBER v_cuantas NUMBER(2) := 1; BEGIN WHILELOOP WHILE v_cuantas <= 10 LOOP INSERTINTO INSERT INTO orden (orden, item) VALUES VALUES (p_orden+v_cuantas-1, v_cuantas); v_cuantas := v_cuantas + 1; ENDLOOP END LOOP; END END; Ciclo WHILE

Base de Datos I – PL/SQL

 Ciclos internos para múltiples niveles  Se usan etiquetas para distinguir entre bloques y ciclos  La salida del bloque interno se produce cuando la cláusula EXIT hace referencia a la etiqueta Ciclos Internos y Etiquetas

Base de Datos I – PL/SQL