24
Taller de Base de Datos

Clase 1 TBD

Embed Size (px)

DESCRIPTION

ppt

Citation preview

Taller de Base de Datos

• ¿Qué es la programación en el Servidor de Bases de Datos?

• Modelo cliente-servidor

• La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el servidor web para generar páginas HTML dinámicamente como respuesta

Lenguajes del lado del Servidor

• CGI, PERL, ASP .NET, PHP, JSP entre otros

Lenguaje interno del Motor de base de

datos• PL-SQL, • T-SQL, • PgSQL• Entre otros.

PL-SQL, Oracle• PL/SQL (Procedural Language/SQL) es una

extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniéndose como resultado un lenguaje estructural mas poderoso que SQL.

• La programación utilizada es el bloque.

• DECLAREo Sección declarativa: variables, tipos, y

subprogramas de uso local• BEGIN

o Sección ejecutable: las instrucciones procedimentales, y de SQL aparecen aquí. Es la única sección obligatoria en el bloque.

• EXCEPTIONo Sección de manejo de excepciones. Las

rutinas de manejo de errores aparecen aquí

• END;

Ejemplo 1• DECLARE

o nombre VARCHAR(20);o precio NUMBER(6,2);

• DECLAREo Aux_propiedad propiedd.id_propiedad%TYPE;

• DECLAREo cantidad NUMBER := 300;

Ejemplo 2• BEGIN

o price := price + 150;

• END;

• run

Sentencia IF• IF (condicion)

o THEN (lista de acciones)o ELSE (lista de acciones)

• END IF;

• Ó• IF . . . THEN . . .

o ELSIF . . . THEN . . .o ELSIF . . . THEN . . .o .o .o .o ELSE . . .

• END IF;

Loop• LOOP

o lista_de_instrucciones

• END LOOP;

• Al menos alguna de las instrucciones debe ser:• EXIT WHEN condicion;

While• WHILE (condicion) LOOP

o lista_de_instrucciones

• END LOOP;

For• FOR i IN a..b LOOP

o lista_de_instrucciones

• END LOOP;

Ejemplos PL/SQL• set serveroutput on;

• DECLARE• resultado NUMBER;• dato number := 20;• BEGIN• resultado := dato + 30;• dbms_output.put_line('Resultado de la suma: '||

resultado||' ---- '||dato);• END;

• DECLARE• resultado NUMBER := 10;• dato number := 20;• BEGIN• if (dato > resultado) then• dbms_output.put_line('el valor de dato es

mayor que resultado: '||dato||' ---- '||resultado);• else• dbms_output.put_line('el valor de resultado

es mayor que dato: '||resultado||' ---- '||dato);• end if;• END;

• DECLARE• dato number := 1;• BEGIN• loop• EXIT WHEN dato=11;• dato := dato + 1;• dbms_output.put_line('paso.. '||dato);• • end loop;• dbms_output.put_line('FIN... ');• END;

• DECLARE• dato number := 1;• BEGIN• WHILE (dato <= 10) loop• • dato := dato + 1;• dbms_output.put_line('paso.. '||dato);• • end loop;• dbms_output.put_line('FIN... ');• END;

• DECLARE• dato number := 1;• BEGIN• for dato in 1..10 loop• • dbms_output.put_line('paso.. '||dato);• • end loop;• dbms_output.put_line('FIN... ');• END;

Procedimiento almacenado

• Los procedimientos almacenados en Oracle, permiten invocar fácilmente instrucciones de tipo DML (insert, delete, update) pero son particularmente complejos cuando se invocan consultas select.

Sintaxis• CREATE [ OR REPLACE] • PROCEDURE <procedure_name> • [( <param1> [IN |OUT|IN OUT ] <type> ,• <param2> [IN |OUT|IN OUT ] <type> , ...)]

• [IS / AS ]• -- Declaración de variables locales • BEGIN • -- Sentencias • [EXCEPTION ] • -- Sentencias control de excepción • END [<procedure_name> ];

Ejemplo 1• CREATE OR REPLACE PROCEDURE ejemplo1(cantidad

IN NUMBER)• IS• BEGIN• INSERT INTO propiedad (id_propiedad)

VALUES(cantidad);• COMMIT;• END ejemplo1;

• BEGIN• ejemplo1(5);• END;