Introducción a PostgreSQL. Facultad de Ingeniería Enrique Felipe Anastacio Base de Datos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Introducción a PostgreSQL. Facultad de Ingeniería Enrique Felipe Anastacio Base de Datos"

Transcripción

1 Introducción a PostgreSQL

2 Qué es PostgreSQL? PostgreSQL es un sistema manejador de bases de datos relacionales basado en postgres 4.2, desarrollado en el departamento Berkeley de Ciencias de la computación en la universidad de California. Postgres es Open Source descendiente del código original Berkeley, soporta el estándar SQL y ofrece otros recursos tales como: complex queries foreign keys Triggers Views transactional integrity multiversion concurrency control index methods procedural languages Postgres puede ser usado, modificado o distribuido para uso privado, comercial o Académico

3 Introducción a PostgreSQL Ahora probaremos un poco la terminal interactiva llamada psql: para probarla teclee las siguientes consultas: SELECT version(); SELECT current_date; SELECT 2 + 2;

4 Introducción a PostgreSQL Ahora crearemos una tabla llamada climas, este ejemplo nos servirá para verificar su estructura: CREATE TABLE climas ( ciudad varchar(80), temp_baja int, -- baja temperatura temp_alta int, -- alta temperatura prcp real, -- precipitacion fecha date );

5 Introducción a PostgreSQL Create. Ahora crearemos otra tabla llamada ciudades, una de las cualidades de esta es que utilizara un tipo de dato especifico de postgres, el tipo POINT. CREATE TABLE ciudades ( nombre varchar(80), localizacion point ); Nota: Si desea eliminar una tabla utilice el siguiente comando: DROP TABLE tablename;

6 Introducción a PostgreSQL Insert. Ya creadas nuestras tablas ahora procederemos a utilizar INSERT el Statement (Sentencia) que nos servirá para insertar datos en nuestras tablas, su sintaxis puede ser alguna de las siguientes: INSERT INTO climas ( ciudad, temp_baja, temp_alta, prcp, fecha) VALUES ('Mexico', 5, 30, 0.25, ' '); INSERT INTO climas VALUES ('Atlautla', 5, 30, 0.25, ' ');

7 Select. Como se menciono anteriormente postgres soporta el estándar SQL así que para realizar una consulta, puede utilizar el SELECT con sus respectivas cláusulas FROM, WHERE y los operadores. Por ejemplo: --Esto nos Arrojara una tabla con todos los registros SELECT * FROM climas; --Esto nos una tabla con los campos especificados SELECT Ciudad, temp_baja,temp_alta FROM climas; --Esto nos mostrará solo la ciudad llamado Atlautla solo si su prcp(precipitación) es mayor a 20 SELECT * FROM climas WHERE Ciudad = 'Atlautla' AND prcp > 0.20;

8 Introducción a PostgreSQL Operadores. --Muestra todos los registros ordenados por el nombre de la ciudad SELECT * FROM climas ORDER BY ciudad; --Elimina registros duplicados SELECT DISTINCT ciudad FROM climas; AND Y lógica o Conjunción OR O lógica o Disyunción = Igual a >= Mayor o Igual <= Menor o Igual <> o!= Diferente

9 Introducción a PostgreSQL Join. Muchas veces necesitamos acceder a mas de una tabla al mismo tiempo, para ello utilizares los joins que nos permitirán acceder a múltiples registros de dos o mas tablas al mismo tiempo. Un JOIN es la unión de dos o mas tablas. Por ejemplo: SELECT * FROM climas, ciudades WHERE ciudad= 'Mexico'; SELECT climas.ciudad, climas.temp_baja, climas.temp_alta, climas.prcp, climas.fecha, ciudades.localizacion FROM climas, ciudades WHERE ciudades.nombre = climas.ciudad;

10 Introducción a PostgreSQL Funciones. Las funciones de agregación realizan operaciones con un conjunto de valores. Por ejemplo: Encontrar promedios o encontrar el máximo o mínimo valor. SELECT max(temp_baja) FROM climas; SELECT ciudad FROM climas WHERE temp_baja = (SELECT max(temp_baja) FROM climas); SELECT ciudad, max(temp_baja) FROM climas WHERE ciudad LIKE 'M% GROUP BY ciudad HAVING max(temp_baja) < 40;

11 Introducción a PostgreSQL Update. Esta sentencia se utiliza para actualizar algunos datos o cuando estos han cambiado o simplemente por algún error en la inserción Por ejemplo: SELECT * FROM climas; UPDATE climas SET temp_alta = temp_alta - 2, temp_baja = temp_baja - 5 WHERE fecha >= ' ';

12 Introducción a PostgreSQL Delete. La sentencia Delete se utiliza para eliminar registros de las tablas, Por ejemplo: DELETE FROM climas WHERE ciudad='mexico'; Su sintaxis es: DELETE FROM NombreTabla (Condicion);

13 Introducción a PostgreSQL Herencia. Este es un concepto básico de las base de datos orientados a objetos, por ejemplo considere dos tablas: CREATE TABLE ciudad ( nombre text, poblacion real, altitud int -- (in ft) ); CREATE TABLE capital ( estado char(2) ) INHERITS (ciudad);

14 Introducción a PostgreSQL Llave Primaria (PK) y Foránea (FK) Una llave foránea es una referencia entre tablas (campo coincidente), si ahora agregamos llaves foráneas a nuestras tablas de ejemplo, su estructura quedaría de la siguiente manera: CREATE TABLE ciudades ( ciudad varchar(80) primary key, localizacion point ); CREATE TABLE climas ( ciudad varchar(80) references ciudades(ciudad), temp_baja int, temp_alta int, prcp real, fecha date);

15 Introducción a PostgreSQL Llave Primaria (PK) y Foránea (FK) Para crear las PK s y FK s a tablas ya existentes, usamos la siguiente sentencia: CREATE TABLE ciudades ( ciudad varchar(80) primary key, localizacion point ); ALTER TABLE ciudades ADD CONSTRAINT ciudad_pk PRIMARY KEY (ciudad);

16 Introducción a PostgreSQL Llave Primaria (PK) y Foránea (FK) CREATE TABLE climas ( ciudad varchar(80) references ciudades(ciudad), temp_baja int, temp_alta int, prcp real, fecha date); ALTER TABLE climas ADD CONSTRAINT ciudad_fk FOREIGN KEY (ciudad) REFERENCES ciudades (ciudad) ON DELETE CASCADE;

17 Introducción a PostgreSQL Llave Primaria (PK) y Foránea (FK) Hay tres parámetros cuando definimos una clave foránea que son muy importantes y que definen como la base de datos se va a comportar para salvaguardar la integridad de nuestros datos. ALTER TABLE [ ONLY ] name [ * ] action [,... ] Estos parámetros son: MATCH tipo ON DELETE accion ON UPDATE accion En donde tipo puede tener estos valores: FULL: No permite que una columna tenga el valor NULL en una clave foránea compuesta por varias columnas SIMPLE: Permite que una columna tenga el valor NULL en una clave foránea compuesta por varias columnas

18 Introducción a PostgreSQL Llave Primaria (PK) y Foránea (FK) Y accion puede tener estos valores: NO ACTION: Produce un error indicando que un DELETE ó UPDATE creará una violación de la clave foránea definida. RESTRICT: Produce un error indicando que un DELETE ó UPDATE creará una violación de la clave foránea definida. CASCADE: Borra ó actualiza automáticamente todas las referencias activas SET NULL: Define las referencias activas como NULL SET DEFAULT: Define las referencias activas como el valor por defecto (si está definido) de las mismas

19 Introducción a PostgreSQL Llave Primaria (PK) y Foránea (FK) ALTER TABLE ALTER TABLE [ ONLY ] name [ * ] action [,... ] ALTER TABLE [ ONLY ] name [ * ] RENAME [ COLUMN ] column TO new_column ALTER TABLE name RENAME TO new_name ALTER TABLE name SET SCHEMA new_schema Action : ADD [ COLUMN ] column type [ column_constraint [... ] ] DROP [ COLUMN ] column [ RESTRICT CASCADE ] ALTER [ COLUMN ] column [ SET DATA ] TYPE type [ USING expression ] ALTER [ COLUMN ] column SET DEFAULT expression ALTER [ COLUMN ] column DROP DEFAULT ALTER [ COLUMN ] column { SET DROP } NOT NULL ALTER [ COLUMN ] column SET STATISTICS integer ALTER [ COLUMN ] column SET STORAGE { PLAIN EXTERNAL EXTENDED MAIN } ADD table_constraint DROP CONSTRAINT constraint_name [ RESTRICT CASCADE ] DISABLE TRIGGER [ trigger_name ALL USER ] ENABLE TRIGGER [ trigger_name ALL USER ] ENABLE REPLICA TRIGGER trigger_name ENABLE ALWAYS TRIGGER trigger_name DISABLE RULE rewrite_rule_name ENABLE RULE rewrite_rule_name ENABLE REPLICA RULE rewrite_rule_name ENABLE ALWAYS RULE rewrite_rule_name CLUSTER ON index_name SET WITHOUT

20 Introducción a PostgreSQL Llave Primaria (PK) y Foránea (FK) Ahora si tratáramos de hacer una inserción en la tabla climas postgres lanzará un error indicando que ese campo no existe en la tabla ciudades, por tanto nuestros datos quedaran íntegros y no abra información demás. NOTA: Un campo para poder ser llave foránea deberá ser del mismo tipo de dato de la otra tabla.

21 Introducción a PostgreSQL Vistas. Una vista es una tabla virtual que puede contener campos de una o varias tablas, y estas a su vez se manipulan como tablas, cualquier Statement SELECT puede ser una vista. Para crear una vista: CREATE [ OR REPLACE ] [ TEMP TEMPORARY ] VIEW name [ ( column_name [,...] ) ] AS query CREATE VIEW MiVista AS SELECT temp_baja, temp_alta, prcp, fecha, localizacion FROM climas, ciudades WHERE ciudad = nombre;

22 Transacciones. Nos permiten ejecutar múltiples consultas y hacer que todas se ejecuten o que ninguna lo haga. Iniciamos la transacción con el comando BEGIN, después ejecutamos alguna sentencia, y para terminar con la transacción usamos ROLLBACK. Por lo tanto, los datos quedaran intactos al hacer ROLLBACK, lo que deshace todas las operaciones que escribimos. Pero si deseamos que los cambios sean permanentes utilizamos COMMIT.

23 Funciones. Se almacenan y ejecutan desde el proceso de base de datos y no desde la aplicación del cliente. Comúnmente llamadas "PROCEDIMIENTOS ALMACENADOS" no solo en lenguaje SQL que es un lenguaje que carece de estructuras de control como IF, WHILE, FOR y otros, sino que permite definir un lenguaje propio y extenderlo a la base de datos, es así como están disponibles para Postgres los siguientes lenguajes : C, Perl, Phyton, PHP entre otros.

24 Funciones. Estos lenguajes deben ser instalados en la base de datos previamente antes de ser utilizados. Sin embargo, también existe un lenguaje propio de PostgreSQL, denominado "PL/pgsql", que posee estructuras de control y permite aprovechar toda la potencia de SQL para crear nuestras propias funciones.

25 Funciones. VENTAJAS DEL USO DE FUNCIONES Se pueden crear funciones para ser ejecutadas en algún evento de la base de datos. Al borrar, modificar o insertar datos por ejemplo. Se pueden añadir estructuras de control al lenguaje SQL, podemos ahora definir ciclos de ejecución como FOR y WHILE que nos permitan recorrer variables de tipo array, tablas u otras estructuras. Las funciones nos permiten realizar cálculos complejos, así ampliamos las funciones pre-definidas por el motor de base de datos y construir funciones a medida de nuestras necesidades o las del cliente/empresa.

26 Funciones. VENTAJAS DEL USO DE FUNCIONES Nos aporta una ejecución fiable para el servidor, es decir, podemos estar seguros del conjunto de instrucciones de la función definida se ejecutará, sin importar si ocurren problemas en el cliente, en una conexión o enlace, una vez solicitada la función esta se ejecuta en modo seguro y protegido en el servidor. Es un lenguaje fácil de usar, pues extiende de una manera simplista pero a la vez potente el lenguaje SQL.

27 Funciones. DESCRIPCION DEL LENGUAJE. ESTRUCTURA DE PL/pgSQL El lenguaje PL/pgSQL no es sensible a las mayúsculas. Todas las palabras clave e identificadores pueden usarse en cualquier mezcla de mayúsculas y minúsculas, sin embargo, de preferencia, el nombre de tablas y de registros utilice según definió en la base de datos. PL/pgSQL es un lenguaje orientado a bloques. la estructura básica del lenguaje se define de la siguiente manera :

28 Funciones. DESCRIPCION DEL LENGUAJE. ESTRUCTURA DE PL/pgSQL CREATE [OR REPLACE] FUNCTION <nombre_de_funcion> ([lista de parámetros]) RETURNS <tipo_de_retorno> AS ' DECLARE <declaración de variables locales de la función> BEGIN <sentencias propias de la función> END; ' LANGUAGE 'plpgsql'; NOTA: En algunos casos no se instala el lenguaje 'plpgsql, para instalarlo, solo ejecutamos: CREATE LANGUAGE 'plpgsql';

29 Cabe notar que podemos utilizar como parámetros todos los tipos usados por PostgreSQL, es decir : INTEGER, DATE, TIME, VARCHAR, CHAR, TIMESTAMP, REAL, TEXT y muchos otros, e inclusive tipos definidos por el usuario por medio de la instrucción CREATE TYPE. Introducción a PostgreSQL. Funciones. DEFINIENDO LOS PARAMETROS DE LAS FUNCIONES Una de las características de PL/pgSQL es que no es necesario definir los nombres de variables en la función, sólo es necesario definir si tipo, de esta manera tenemos que una función puede ser definida en términos de parámetros de entrada y salida de la siguiente forma : FUNCTION suma ( real, real ) RETURNS real AS '...resto de la función...

30 Funciones. DEFINICION DE VARIABLES LOCALES O DE FUNCION Como explicamos anteriormente, las variables locales son definidas dentro de la sección DECLARE de la función, de forma muy similar a otros lenguajes podemos definir variables, por ejemplo : DECLARE contador integer = 0; cadena varchar; hoy date; bandera bool; suma real; FUNCTION suma ( real, real ) RETURNS real AS ' DECLARE numero_1 alias for $1; numero_2 alias for $2; valor_total real;...resto de la funcion... Podemos no definir los alias y usar los parámetros directamente, por ejemplo : valor_total := $1 + $2;

31 Funciones. ASIGNACION DE LAS SENTENCIAS DE PL/pgSQL Una vez definidos los parámetros de entrada/salida, y también nuestras variables locales, podemos comenzar a trabajar en nuestra función en la sección BEGIN... END; Las asignaciones de valores se realizan de la misma forma que en PASCAL, es decir, utilizando := como operador de asignación y punto y coma al final de la línea, ejemplo : FUNCTION suma ( real, real ) RETURNS real AS ' DECLARE numero_1 alias for $1; numero_2 alias for $2; valor_total real; BEGIN valor_total := numero_1 + numero_2; numero_1 := numero_1 * numero_2;...resto de la funcion...

32 Funciones. RETORNANDO EL UN VALOR COMO FUNCION Finalmente una vez procesados nuestros valores debemos retornar algún valor (pues ese es la esencia de la función), este retorno de valores también se realiza dentro de la sección BEGIN de la función, pero utilizando la siguiente forma básica :...resto de la función... RETURN <variable>;...resto de la función...

33 Funciones. RETORNANDO EL UN VALOR COMO FUNCION Ejemplo completo de la función SUMA : FUNCTION suma ( real, real ) RETURNS real AS ' DECLARE numero_1 alias for $1; numero_2 alias for $2; valor_total real; BEGIN valor_total := numero_1 + numero_2; RETURN valor_total; END; ' LANGUAGE 'plpgsql';

34 Funciones. UTILIZANDO SENTENCIAS DE CONTROL Podemos utilizar sentencias de control para escribir nuestros programas y permitir que sigan un algoritmo no lineal, para ello, contamos básicamente con las siguientes estructuras : LOOP EXIT IF, ELSE FOR WHILE

35 Funciones. UTILIZANDO SENTENCIAS DE CONTROL SENTENCIA DE CICLO LOOP : Esta sentencia nos permite efectuar un ciclo, su estructura básica es :...resto de la función... LOOP...sentencias a ejecutar en el ciclo... END LOOP...resto de la función...

36 Funciones. SENTENCIA DE SALIDA EXIT : Cuando usamos un ciclo LOOP, es necesario darle una salida para que este mismo termine, la sentencia EXIT nos permite finalizar el LOOP y continuar en la sentencia siguiente a la salida de éste, generalmente, EXIT está acompañado con la sentencia IF, por ejemplo LOOP...resto de la función... contador := contador + 1; IF contador >= 10 THEN EXIT; -- salida del loop cuando sea mayor o igual que 10 END IF; END LOOP...resto de la función...

37 Funciones. SENTENCIAS IF, ELSE : Podemos efectuar operaciones de comparación con las sentencias IF, ELSE, los operadores de comparación son los siguientes : < menor que... > mayor que... <> distinto a... <= menor o igual que... >= mayor o igual que... = igual que... OR o... AND y...

38 Funciones. SENTENCIAS IF, ELSE : Ejemplo :...resto de la función... IF >= 10 or THEN RETURN true; ELSE RETURN false; END IF;...resto de la función...

39 Funciones. SENTENCIA DE CICLO FOR : Existen dos tipos de ciclos FOR, el primero tiene que ver claramente con los ciclos numéricos comunes, es decir, lo que comúnmente se usa para efectuar repeticiones, y por otra parte, tenemos un ciclo FOR que nos permite recorrer tablas y procesar sus datos, esta segunda está ligada a sentencias SQL, veamos entonces como se utiliza la sentencia FOR CASO 1 : SENTENCIA FOR DE PROCESO CICLICO NUMERICO FOR <variable> IN <inicio>..<fin> LOOP... SENTENCIAS A EJECUTAR DENTRO DEL CICLO FOR... END LOOP; o bien puede usar el FOR de forma inversa FOR <variable> REVERSE <fin>..<inicio> LOOP... SENTENCIAS A EJECUTAR DENTRO DEL CICLO FOR...

40 Funciones. SENTENCIA DE CICLO FOR : CASO 1 : SENTENCIA FOR DE PROCESO CICLICO NUMERICO Ejemplo :...resto de la función... FOR inc IN LOOP factorial := factorial * inc; END LOOP; RETURN factorial;...resto de la función

41 Funciones. SENTENCIA DE CICLO FOR : CASO 2: SENTENCIA FOR APLICADA A PROCESOS DE REGISTROS SQL FOR <registro o fila> IN <sentencia SELECT SQL> LOOP... SENTENCIAS A EJECUTAR DENTRO DEL CICLO FOR... END LOOP;

42 Funciones. SENTENCIA DE CICLO FOR : Ejemplo :...resto de la función... DECLARE registro RECORD; BEGIN FOR registro IN SELECT * FROM productos LOOP stock := registro.sock_actual + 100;... otras sentencias... END LOOP;...resto de la función... Note que para utilizar esta sentencia FOR debemos declarar una variable de tipo RECORD o registro. RECORD es una palabra reservada para estos casos, y no posee una estructura definida pues no ha sido asignada a ninguna tabla, este tipo de dato nos permite recorrer la tabla de productos y obtener sus valores por medio de esta variable.

43 Funciones. SENTENCIA DE CICLO CONDICIONAL WHILE La sentencia WHILE se ejecuta de forma muy similar a otros lenguajes de programación, su estructura es la siguiente : WHILE <condición> LOOP... SENTENCIAS A EJECUTAR DENTRO DEL CICLO WHILE... END LOOP;

44 Funciones. SENTENCIA DE CICLO CONDICIONAL WHILE Ejemplo :...resto de la función... WHILE inc <= 10 LOOP factorial := factorial * inc; END LOOP; RETURN factorial;...resto de la función... Este código funciona igual al descrito en el ejemplo del ciclo FOR.

45 Funciones. Ejemplo 1 : Buscar una Ciudad y retornar si existe o no CREATE OR REPLACE FUNCTION buscar_ciudad (varchar) RETURNS bool AS ' DECLARE rut_buscar alias for $1; registro ciudades%rowtype; /* Nótese que aquí definimos la variable registro del tipo FILA de ciudades indicando la tabla, el símbolo % y luego la palabra reservada ROWTYPE */ BEGIN SELECT INTO registro * FROM ciudades WHERE ciudad = rut_buscar; IF FOUND THEN RETURN true; END IF; RETURN false; END; ' LANGUAGE 'plpgsql'; Como podemos apreciar, este código busca un cliente en la tabla de clientes, si existe o se encuentra el cliente, la función devolverá un valor verdadero (true), de lo contrario, ésta devolverá falso (false)

46 Funciones. Ejemplo 2 : Buscar un producto y actualiza su precio según porcentaje CREATE OR REPLACE FUNCTION actualizar_producto (varchar, real) RETURNS bool AS ' DECLARE producto ALIAS FOR $1; porcentaje ALIAS FOR $2; registro productos%rowtype; BEGIN SELECT INTO registro * FROM productos WHERE id_producto = producto; IF FOUND THEN UPDATE productos SET precio_venta = precio_venta + (precio_venta * porcentaje) WHERE id_categoria = categoria; RETURN true; END IF; RETURN false; END; ' LANGUAGE 'plpgsql ; Este código busca el producto, obtiene los datos necesarios y actualiza el registro.

47 Funciones. Ejemplo 3 : Incrementar valores según el porcentaje de IVA CREATE OR REPLACE FUNCTION inc_iva (integer, real) RETURNS integer AS ' DECLARE valor ALIAS FOR $1; iva ALIAS FOR $2; total real; BEGIN total := valor + (valor * iva); RETURN total; RETURN; END; ' LANGUAGE 'plpgsql'; Esta función no actualiza realmente los datos de la tabla, solamente procesa los parámetros, de tal manera que si los datos ingresados fueran los de una tabla devolvería el valor mas IVA.

48 Funciones. LLAMANDO A LAS FUNCIONES Hasta ahora hemos descrito a grandes rasgos como construir fácilmente funciones de usuario o procedimientos almacenados, pero todavía no los hemos invocado, a continuación ejemplos de llamadas a los procedimientos almacenados o funciones en PL/pgSQL : Este ejemplo retornará true si la ciudad existe o false si no se encuentra en la tabla de clientes (nota, no hay que indicar en que tabla pues eso esta descrito en la función). SELECT buscar_ciudad('mexico'); Para ejecutar la función de SUMA: SELECT SUMA(4,5);

49 Disparadores (triggers). Es una acción definida en una tabla de nuestra base de datos y ejecutada automáticamente por una función programada por nosotros. Esta acción se activará, según la definamos, cuando realicemos un INSERT, un UPDATE ó un DELETE en la susodicha tabla.

50 Disparadores (triggers). Un disparador se puede definir de las siguientes maneras: Para que ocurra ANTES de cualquier INSERT, UPDATE ó DELETE Para que ocurra DESPUES de cualquier INSERT, UPDATE ó DELETE Para que se ejecute una sola vez por comando SQL (statement-level trigger) Para que se ejecute por cada línea afectada por un comando SQL (row-level trigger)

51 Disparadores (triggers). Esta es la definición del comando SQL que se puede utilizar para definir un disparador en una tabla. CREATE TRIGGER nombre { BEFORE AFTER } { INSERT UPDATE DELETE [ OR... ] } ON tabla [ FOR [ EACH ] { ROW STATEMENT }] EXECUTE PROCEDURE nombre de función ( argumentos )

52 Disparadores (triggers). NOTA: Antes de definir el disparador tendremos que definir el procedimiento almacenado que se ejecutará cuando nuestro disparador se active. El procedimiento almacenado usado por nuestro disparador se puede programar en cualquiera de los lenguajes de procedimientos disponibles, entre ellos, el proporcionado por defecto cuando se instala PostgreSQL, PL/pgSQL. Este lenguaje es el que utilizaremos.

53 Disparadores (triggers). Creamos una base de datos para utilizarla con nuestros ejemplos. CREATE TABLE numeros( numero bigint NOT NULL, cuadrado bigint, cubo bigint, raiz2 real, raiz3 real, PRIMARY KEY (numero) );

54 Disparadores (triggers). Después tenemos que crear una función en PL/pgSQL para ser usada por nuestro disparador. Nuestra primera función es la más simple que se puede definir y lo único que hará será devolver el valor NULL: CREATE OR REPLACE FUNCTION proteger_datos() RETURNS TRIGGER AS $proteger_datos$ DECLARE BEGIN -- Esta función es usada para proteger datos en una tabla -- No se permitirá el borrado de filas si la usamos -- en un disparador de tipo BEFORE / row-level RETURN NULL; END; $proteger_datos$ LANGUAGE plpgsql;

55 Disparadores (triggers). A continuación definimos en la tabla numeros un disparador del tipo BEFORE / row-level para la operación DELETE. CREATE TRIGGER proteger_datos BEFORE DELETE ON numeros FOR EACH ROW EXECUTE PROCEDURE proteger_datos();

56 Disparadores (triggers). Ahora vamos a definir una nueva función un poco más complicada y un nuevo disparador en nuestra tabla numeros: CREATE OR REPLACE FUNCTION rellenar_datos() RETURNS TRIGGER AS $rellenar_datos$ DECLARE BEGIN NEW.cuadrado := power(new.numero,2); NEW.cubo := power(new.numero,3); NEW.raiz2 := sqrt(new.numero); NEW.raiz3 := cbrt(new.numero); RETURN NEW; END; $rellenar_datos$ LANGUAGE plpgsql; CREATE TRIGGER rellenar_datos BEFORE INSERT OR UPDATE ON numeros FOR EACH ROW EXECUTE PROCEDURE rellenar_datos();

57 Disparadores (triggers). Ahora vamos a ver como los disparadores que hemos definido en la tabla numeros funcionan: SELECT * from numeros; numero cuadrado cubo raiz2 raiz INSERT INTO numeros (numero) VALUES (2); SELECT * from numeros; numero cuadrado cubo raiz2 raiz Cuando ejecutamos el INSERT (numero = 2), el disparador rellenar_datos llama a la función rellenar_datos() una vez.

58 Disparadores (triggers). El valor de la variable NEW al empezar a ejecutarse rellenar_datos() es numero=2, cuadrado=null, cubo=null, raiz2=null, raiz3=null. Nuestra tabla todavía no contiene ninguna fila. A continuación calculamos el cuadrado, el cubo, la raíz cuadrada y la raíz cúbica de 2 y asignamos estos valores a NEW.cuadrado, NEW.cubo, NEW.raiz2 y NEW.raiz3. El valor de la variable NEW antes de la sentencia RETURN NEW es ahora numero=2, cuadrado=4, cubo=8, raiz2= , raiz3= Con la sentencia RETURN NEW, retornamos la fila (RECORD) almacenada en la variable NEW, y salimos de la función rellenar_datos(). El sistema almacena entonces el RECORD contenido en NEW en la tabla numeros

59 Disparadores (triggers). INSERT INTO numeros (numero) VALUES (3); SELECT * from numeros; numero cuadrado cubo raiz2 raiz De la misma manera funciona el disparador proteger_datos cuando ejecutamos una sentencia DELETE. Antes de borrar nada ejecutará la función proteger_datos(). Esta función retorna el valor NULL y esto significa, según la regla que hemos definido, que para la fila afectada no se ejecutará el comando DELETE. Por eso y mientras este disparador este instalado será imposible de borrar nada de la tabla numeros.

60 Disparadores (triggers). Ahora vamos a ver como los disparadores que hemos definido en la tabla numeros funcionan: UPDATE numeros SET numero = 4 WHERE numero = 3; SELECT * from numeros; numero cuadrado cubo raiz2 raiz

61 Disparadores (triggers). Hemos realizado 2 INSERT y 1 UPDATE. Esto significa que por cada uno de estos comandos el sistema ha ejecutado la función rellenar_datos(), una vez por cada fila afectada y antes de actualizar la tabla numeros. Como podemos comprobar, nosotros solamente hemos actualizado la columna numero, pero al listar el contenido de nuestra tabla vemos como el resto de columnas (cuadrado, cubo, raiz2 y raiz3) también contienen valores. De esta actualización se ha encargado la función rellenar_datos() llamada por nuestro disparador.

62 Disparadores (triggers). Para eliminar/borrar un trigger, tenemos la siguiente sentencia: DROP TRIGGER nombre ON tabla [ CASCADE RESTRICT ] CASCADE Elimina automáticamente el borrado de objetos que dependen del trigger. RESTRICT Se niegan a eliminar el trigger si los objetos dependen de él. Este es el predeterminado. DROP TRIGGER proteger_datos ON numeros; DROP TRIGGER rellenar_datos ON numeros;

63 Disparadores (triggers). A continuación crearemos un disparador único para las sentencias INSERT, UPDATE y DELETE. Para ello utilizaremos la variable TG_OP. CREATE OR REPLACE FUNCTION proteger_y_rellenar_datos() RETURNS TRIGGER AS $proteger_y_rellenar_datos$ DECLARE BEGIN IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE' ) THEN NEW.cuadrado := power(new.numero,2); NEW.cubo := power(new.numero,3); NEW.raiz2 := sqrt(new.numero); NEW.raiz3 := cbrt(new.numero); RETURN NEW; ELSEIF (TG_OP = 'DELETE') THEN RETURN NULL; END IF; END; $proteger_y_rellenar_datos$ LANGUAGE plpgsql;

64 Disparadores (triggers). CREATE TRIGGER proteger_y_rellenar_datos BEFORE INSERT OR UPDATE OR DELETE ON numeros FOR EACH ROW EXECUTE PROCEDURE proteger_y_rellenar_datos();

65 Disparadores (triggers). Ahora, todo seguirá funcionando de la misma manera que con los dos disparadores del comienzo: INSERT INTO numeros (numero) VALUES (5); INSERT INTO numeros (numero) VALUES (6);

66 Disparadores (triggers). Ahora vamos a definir un disparador del tipo statement-level que se ejecute después de nuestras sentencias INSERT, UPDATE y DELETE. La función ejecutada por este disparador grabará datos de la ejecución en la tabla cambios. Para demostrar cómo podemos utilizar esto vamos a definir una nueva tabla: CREATE TABLE cambios( timestamp_ TIMESTAMP WITH TIME ZONE default NOW(), nombre_disparador text, tipo_disparador text, nivel_disparador text, comando text );

67 Disparadores (triggers). La función la podemos definir así: CREATE OR REPLACE FUNCTION grabar_operaciones() RETURNS TRIGGER AS $grabar_operaciones$ DECLARE BEGIN INSERT INTO cambios ( nombre_disparador, tipo_disparador, nivel_disparador, comando) VALUES ( TG_NAME, TG_WHEN, TG_LEVEL, TG_OP ); RETURN NULL; END; $grabar_operaciones$ LANGUAGE plpgsql;

68 Disparadores (triggers). Y el disparador lo crearíamos de la siguiente forma: CREATE TRIGGER grabar_operaciones AFTER INSERT OR UPDATE OR DELETE ON numeros FOR EACH STATEMENT EXECUTE PROCEDURE grabar_operaciones();

69 Disparadores (triggers). A continuación podemos ver como funcionaría: Revisamos que la tabla este vacía: SELECT * from cambios ; Ingresamos un valor: INSERT INTO numeros (numero) VALUES (100); Verificamos que se haya insertado en la Bitácora: SELECT * from numeros;

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers Triggers Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla octubre 2011 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir Consultar

Más detalles

Disparadores (triggers) en PostgreSQL

Disparadores (triggers) en PostgreSQL Disparadores (triggers) en PostgreSQL Una de las funcionalidades disponibles en PostgreSQL son los denominados disparadores (triggers). En este artículo vamos a introducirnos en el mundo de los disparadores,

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es

Más detalles

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle Triggers en Oracle Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla Diciembre 2016 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir

Más detalles

PG/PLSQL. Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía - UPM

PG/PLSQL. Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía - UPM PG/PLSQL Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía - UPM Índice Estructura PL/PGSQL Declaraciones, Alias para parámetros en funciones Datos de tipo tabla, Type & RowType Sentencias,

Más detalles

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle Triggers en Oracle Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla noviembre 2012 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir

Más detalles

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 DISPARADORES EN SQL:1999 DISPARADORES EN SQL Modelos Avanzados de Bases de Datos Un (trigger) es un procedimiento especial que se ejecuta en respuesta a un evento específico. Ej. Al aumentar el sueldo

Más detalles

Unidad 6. Procedimientos Almacenados y Disparadores

Unidad 6. Procedimientos Almacenados y Disparadores Unidad 6 Procedimientos Almacenados y Disparadores Disparadores (Triggers) Características Los disparadores solo ocurren cuando se presentan determinados eventos Los tipos de eventos permitidos suelen

Más detalles

SQL: Vistas, Triggers, y Procedimientos Almacenados

SQL: Vistas, Triggers, y Procedimientos Almacenados SQL: Vistas, Triggers, y Procedimientos Almacenados Dr. Gerardo Rossel Bases de Datos 1C 2018 PostgreSQL Aclaración En estas diapositivas nos basaremos principalmente en PostgreSQL. Diferentes motores

Más detalles

A. Introducción. B. Los DATABASES TRIGGERS. PL/SQL en objetos de la base de datos. Oracle 11g - SQL, PL/SQL, SQL*Plus 271

A. Introducción. B. Los DATABASES TRIGGERS. PL/SQL en objetos de la base de datos. Oracle 11g - SQL, PL/SQL, SQL*Plus 271 PL/SQL en objetos de la base de datos A. Introducción Además de los bloques PL/SQL anónimos utilizados por SQL*PLus o por las herramientas de desarrollo (Oracle*FORMS, Oracle*Reports), se puede emplear

Más detalles

Conceptos de Bases de Datos Relacionales Triggers

Conceptos de Bases de Datos Relacionales Triggers Conceptos de Bases de Datos Relacionales Triggers Trigger Un trigger es un procedimiento almacenado asociado con una tabla, el cual se ejecuta automáticamente cuando se modifica un dato de esa tabla Stored

Más detalles

Características del lenguaje SQL

Características del lenguaje SQL Lenguaje SQL Características del lenguaje SQL Es el lenguaje estándar para realizar operaciones en bases de datos relacionales. Instrucciones: SELECT Consulta. Su implementación está basada en álgebra

Más detalles

Triggers. BASES DE DATOS Mercedes García Merayo

Triggers. BASES DE DATOS Mercedes García Merayo Triggers BASES DE DATOS Mercedes García Merayo Triggers Un trigger es código (PL/SQL) que se ejecuta automáticamente cuando se realiza una determinada acción sobre la base de datos. Tipos de triggers Triggers

Más detalles

Triggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

Triggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia Triggers en PL/SQL Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia Triggers (Disparadores) Los triggers son bloques PL/SQL que se ejecutan de manera implícita cuando se están manipulando

Más detalles

GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL

GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL Conceptos, historia y contexto http://dev.mysql.com/doc/refman/5.0/es/stored-procedures.html Los procedimientos almacenados y funciones son nuevas

Más detalles

Cursores, Triggers, Indices, Transacciones, Vistas Gestión y Modelación de Datos

Cursores, Triggers, Indices, Transacciones, Vistas Gestión y Modelación de Datos Cursores, Triggers, Indices, Transacciones, Vistas Gestión y Modelación de Datos Cursores CREATE OR REPLACE FUNCTION incsalario (INTEGER) RETURNS TEXT AS ' DECLARE curemp CURSOR FOR SELECT nombres, apellidos,

Más detalles

SQL. (...la guía básica de supervivencia de dmi) Universidad de los Andes Demián Gutierrez Enero 2009 1

SQL. (...la guía básica de supervivencia de dmi) Universidad de los Andes Demián Gutierrez Enero 2009 1 SQL (...la guía básica de supervivencia de dmi) Universidad de los Andes Demián Gutierrez Enero 2009 1 Crear una Tabla (Esquema de Relación) (1) (Cascadas) postgres=# CREATE TABLE departamento ( codigo

Más detalles

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos. SGBD y SQL Access SQL: DDL y DML Ejercicio Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos. Necesita almacenar información acerca de sus empleados y los proyectos en

Más detalles

PL/SQL avanzado: Secuencias, triggers, cursores y subprogramas

PL/SQL avanzado: Secuencias, triggers, cursores y subprogramas avanzado 22/11/2016 avanzado: Secuencias, triggers, cursores y subprogramas Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Noviembre

Más detalles

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO? ORACLE 10g Descripción A QUIEN VA DIRIGIDO? Está dirigido a estudiantes y profesionista que desee conocer la tecnología Oracle, así como realizar extracción de datos, creación de objetos y administración

Más detalles

5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers).

5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers). Unidad 5 SQL Procedural 5.1 Procedimientos y Funciones. 5.2 Disparadores (Triggers). Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 MySQL 1. Se usará la Base de Datos llamada LaConsentida.

Más detalles

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC INTRODUCCIÓN Los subprogramas son otro tipo de bloques PL/SQL Se diferencian de los bloques anónimos porque

Más detalles

Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo

Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo Oracle University Contacte con nosotros: 902 302 302 Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo Duración: 5 Días Lo que aprenderá En este curso, los estudiantes aprenderán los conceptos

Más detalles

Tema: DISPARADORES (TRIGGERS)

Tema: DISPARADORES (TRIGGERS) Base de datos II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos II Tema: DISPARADORES (TRIGGERS) Objetivo Conocer la definición y utilización de los triggers Materiales Oracle

Más detalles

PROCEDIMIENTOS ALMACENADOS

PROCEDIMIENTOS ALMACENADOS PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de sentencias SQL y de control de flujo Procedimientos almacenados definidos por el usuario Son procedimientos definidos por el usuario

Más detalles

DISPARADORES EN SQL SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003

DISPARADORES EN SQL SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003 DISPARADORES EN SQL Modelos Avanzados de Bases de Datos Curso 2004/2005 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003 CREATE [OR REPLACE] TRIGGER nombre [temporalidad del evento] [granularidad del evento]

Más detalles

TRIGGER LEONEL CADOSO ROMERO 1

TRIGGER LEONEL CADOSO ROMERO 1 TRIGGER Qué es un trigger o disparador o desencadenador para SQL server? Es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases

Más detalles

Se crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas.

Se crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas. Triggers También llamados disparadores o desencadenadores, es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista). Se definen para una tabla

Más detalles

EJEMPLOS PRÁCTICOS SQL

EJEMPLOS PRÁCTICOS SQL EJEMPLOS PRÁCTICOS SQL EJEMPLOS PRÁCTICOS SQL INTEGRIDAD REFERENCIAL DROP SCHEMA IF EXISTS Tablas1; CREATE SCHEMA Tablas1; USE Tablas1; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido

Más detalles

Unidad III. Bases de Datos

Unidad III. Bases de Datos Clase:11 1 Unidad III Bases de Datos 2 SQL. Comandos de DDL. Comandos de DML. Agenda 3 SQL Structured Query Language SQL Los comandos del SQL pueden dividirse en tres grupos: Comandos de definición de

Más detalles

Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers. Tecnólogo en Informática, sede Paysandú Bases de Datos 2

Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers. Tecnólogo en Informática, sede Paysandú Bases de Datos 2 Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers Tecnólogo en Informática, sede Paysandú Bases de Datos 2 Funciones Variables Declarar: DECLARE @ Asignar valor:

Más detalles

Está basado en el álgebra y en el cálculo relacional.

Está basado en el álgebra y en el cálculo relacional. SQL DML. Introducción SQL. QUÉ ES. SQL (Structured Query Language, Lenguaje Estructurado de Consultas): Lenguaje que permite expresar operaciones diversas (aritméticas, combinatorias, lógicas, selección

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL INTRODUCCIÓN A continuación se presentan lo que son comandos DLL y DML, las clausulas, lo operadores (lógicos y de comparación), funciones de agregado, consultas, tipos de

Más detalles

Tutorial MySql - 1 -

Tutorial MySql - 1 - Tutorial MySql - 1 - Índice 1 - Introducción...4 2 - show databases...5 3 - Creación de una tabla y mostrar sus campos (create table - show tables - describe - drop table)...6 4 - Carga de registros a

Más detalles

APÉNDICE D. INTRODUCCIÓN A SQL

APÉNDICE D. INTRODUCCIÓN A SQL APÉNDICE D. INTRODUCCIÓN A SQL D.1 INTRODUCCIÓN. CONCEPTOS PREVIOS D.1.1 Base de Datos Relacional Conjunto de Datos que el usuario percibe como una colección de tablas. La visión tabular de los datos es

Más detalles

Bases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 2013

Bases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 2013 Bases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 203 Enunciado del ejercicio En los servidores de bases de asignados al curso: Sybase, MS SQL Server y Oracle, elaborar el ejercicio sobre aislamiento,

Más detalles

Oracle Database: Conceptos Básicos de SQL y PL/SQL

Oracle Database: Conceptos Básicos de SQL y PL/SQL Oracle University Contact Us: +34916267792 Oracle Database: Conceptos Básicos de SQL y PL/SQL Duration: 5 Days What you will learn Este curso está diseñado para enseñar los conceptos fundamentales de SQL

Más detalles

1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres.

1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres. CREACION DE BASE DE DATOS EN POSTGRESQL 1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres. Pasos: inicio Todos los programas PostgreSQL 8.2 o la versión 9 (o

Más detalles

Creación de una Base de datos

Creación de una Base de datos Creación de una Base de datos Para poder crear una Base de datos es necesario abrir phpmyadmin desde el menú de WampServer al cual se accede con clic derecho en el icono de WampServer o ingresando a la

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes sn. 41012 Sevilla TlfFax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es Diseño

Más detalles

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos Objetivos Presentar la sintaxis de creación de tablas Diferencia con SQL/92 Presentar la sintaxis de la modificación de definición de una tabla Presentar

Más detalles

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas

Más detalles

PL/PGSQL. Extensión "procedural" de SQL

PL/PGSQL. Extensión procedural de SQL PL/PGSQL Extensión "procedural" de SQL Pero primero triggers DROP TABLE producto cascade; CREATE TABLE producto( id int PRIMARY KEY, vendido timestamp); DROP FUNCTION modificacion() cascade; CREATE FUNCTION

Más detalles

Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo:

Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo: Triggers en Oracle Nuestro objetivo para este artículo es intentar mostrar un breve panorama de cómo crear TRIGGERS (disparadores o gatilladores [1]) para bases de datos bajo Oracle 8, asi como describir

Más detalles

Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL

Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL Oracle University Contacte con nosotros: 902 302 302 Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL Duración: 5 Días Lo que aprenderá Obtendrá los conocimientos fundamentales de SQL y PL/SQL mediante

Más detalles

Diseña y Administra Bases de Datos Guía de Estudio

Diseña y Administra Bases de Datos Guía de Estudio Diseña y Administra Bases de Datos Guía de Estudio Responde las preguntas que se te plantean Ordena los siguientes códigos: A. and edad=18 C. from clientes D. Select E. nombre, edad

Más detalles

El SQL es un lenguaje estándar de programación para el acceso a bases de datos.

El SQL es un lenguaje estándar de programación para el acceso a bases de datos. El SQL es un lenguaje estándar de programación para el acceso a bases de datos. El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base de datos del mercado, como por ejemplo, para

Más detalles

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos Checks, Triggers y Excepciones en InterBase: validando desde la base de datos Por Alfonso Ricaño Bringas InterBase nos permite validar los valores que ingresan a los campos, mediante las restricciones

Más detalles

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón 1. Lenguaje de Definición de Datos 2. Lenguaje de Manipulación de Datos M. C. Gustavo Alfonso Gutiérrez Carreón Los 'sistemas de gestión de bases de datos (en inglés database management system, abreviado

Más detalles

Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL

Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL ) 3 puntos) Considérese un fichero secuencial con un índice con asociación estática. El índice es primario y está organizado sobre una

Más detalles

Introducción a Transact-SQL

Introducción a Transact-SQL Introducción a Transact-SQL Introducción E lenguaje de programación Transact-SQL Tipos de instrucciones de Transact-SQL Elementos de la sintaxis de Transact-SQL El lenguaje de programación Transact-SQL

Más detalles

GESTORES GESTORES DE BASES DE DATOS

GESTORES GESTORES DE BASES DE DATOS GESTORES GESTORES DE BASES DE DATOS Existen varios tipos de Sistemas gestores de bases de datos SGBD, según el modelo de datos que utilizan. Son estos: bases jerárquica, en red, relacional, y bases de

Más detalles

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar:

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar: Trigger Un trigger(o desencadenador) es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los triggers o disparadores

Más detalles

Disparadores (triggers)

Disparadores (triggers) Disparadores (triggers) Tabla de contenidos 1. Sintaxis de CREATE TRIGGER 2. Sintaxis de DROP TRIGGER 3. Utilización de disparadores A partir de MySQL 5.0.2 se incorporó el soporte básico para disparadores

Más detalles

1. Se usará la Base de Datos llamada. 2. Borrar la tabla CtasBanc anterior y crearla: 5.1 Procedimientos y Funciones Almacenados SQL Server

1. Se usará la Base de Datos llamada. 2. Borrar la tabla CtasBanc anterior y crearla: 5.1 Procedimientos y Funciones Almacenados SQL Server SQL Server 1. Se usará la Base de Datos llamada LaConsentida. use LaConsentida 2. Borrar la tabla CtasBanc anterior y crearla: create table CtasBanc (IdCuenta int identity primary key, tipo char(10), saldo

Más detalles

Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015

Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015 Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015 1) (3 puntos) El museo de la ciudad necesita gestionar las visitas guiadas de grupos y para ello se debe implementar una base

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes sn. 41012 Sevilla TlfFax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es Diseño

Más detalles

Manejo de Tablas y Llaves Foráneas

Manejo de Tablas y Llaves Foráneas Manejo de Tablas y Llaves Foráneas Llaves Foráneas Para manejar las llaves foráneas, deben crearse al menos dos tablas, la primera tal y como se ha hecho anteriormente CREATE TABLE nombre_tabla ( nombre_columna_1

Más detalles

Introducción a SQL (DDL)

Introducción a SQL (DDL) Introducción a SQL (DDL) Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2012 Introducción a SQL Objetivos de este tema

Más detalles

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

Sentencias complementarias + Disparadores

Sentencias complementarias + Disparadores Base de Datos I Sentencias complementarias + Disparadores Objetivos: Elaborar sentencias especiales con diferentes usos y componentes. Introducción: Siempre hay tipos de consultas o transacciones especiales

Más detalles

Modelamiento y Diseño de Base de Datos

Modelamiento y Diseño de Base de Datos Modelamiento y Diseño de Base de Datos Sentencias complementarias + Disparadores Objetivos: Elaborar sentencias especiales con diferentes usos y componentes. Introducción: Siempre hay tipos de consultas

Más detalles

HERRAMIENTAS DE SISTEMAS DE GESTION DE BASES DE DATOS

HERRAMIENTAS DE SISTEMAS DE GESTION DE BASES DE DATOS HERRAMIENTAS DE SISTEMAS DE GESTION DE BASES DE DATOS 1. INTRODUCCION 2. USER DATA TYPES 3. RULES 4. DEFAULTS 5. STORED PROCEDURES 6. TRIGGERS 7. CONSTRAINTS 8. VISTAS 9. TRANSACCIONES 10. COMANDOS TRANSACT-SQL

Más detalles

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA Página 1 de 6 GUIA N 7 COMANDOS MYSQL I. CREAR, SELECCIONAR, VISUALIZAR 1. CREAR BASE DE DATOS CREATE DATABASE Nombre_Base_Datos; 2. VER LISTADO DE BASES DE DATOS SHOW DATABASES; 3. USAR UNA BASE DE DATOS

Más detalles

PHP. Tipos de campo en MySql char(longitud): Cualquier carácter. El campo tendrá siempre la misma longitud. Máximo de 255 caracteres.

PHP. Tipos de campo en MySql char(longitud): Cualquier carácter. El campo tendrá siempre la misma longitud. Máximo de 255 caracteres. Tipos de campo en MySql char(longitud): Cualquier carácter. El campo tendrá siempre la misma longitud. Máximo de 255 caracteres. varchar(longitud): Cualquier carácter. El campo tendrá el tamaño del contenido.

Más detalles

Capítulo 8. Construcción de guiones

Capítulo 8. Construcción de guiones Capítulo 8 Construcción de guiones ÍNDICE CAPÍTULO 8 Lenguajes de programación y bases de datos Procedimientos y funciones almacenados en MySQL Sintaxis y ejemplos Parámetros y variables Instrucciones

Más detalles

Tema 5. DML (Parte II)

Tema 5. DML (Parte II) Tema 5 DML (Parte II) IES Francisco Romero Vargas Departamento de Informática Tema 5. DML (II). Página 1 de 12 1. Introducción Se insta al alumno a navegar por el manual de referencia de MySQL con el fin

Más detalles

BD Activas: Motivación

BD Activas: Motivación BD Activas: Motivación Los SGBD convencionales son pasivos. Sólo ejecutan preguntas o transacciones realizadas por los usuarios o por los programas de aplicación. Para representar la semántica del mundo

Más detalles

Bases de Datos 1. Teórico: Structured Query Language

Bases de Datos 1. Teórico: Structured Query Language Bases de Datos 1 Teórico: Structured Query Language Historia Los orígenes del SQL están ligados a los orígenes de las bases de datos relacionales Estandarizado por ANSI en 1986 (SQL-86) Hubieron varias

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DML. Ing. Alfonso Vicente, PMP

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DML. Ing. Alfonso Vicente, PMP Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: DML Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda DML Sentencias Modificando la instancia Agenda DML Sentencias

Más detalles

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 Página 1 de 6 GUIA N 5 LINEA DE COMANDOS MYSQL I. CREAR, SELECCIONAR, VISUALIZAR 1. CREAR BASE DE DATOS CREATE DATABASE Nombre_Base_Datos; 2. VER LISTADO DE BASES DE DATOS SHOW DATABASES; 3. USAR UNA BASE

Más detalles

Para crear una función o un procedimiento se deben usar las instrucciones CREATE FUNCTION o CREATE PROCEDURE.

Para crear una función o un procedimiento se deben usar las instrucciones CREATE FUNCTION o CREATE PROCEDURE. http://dev.mysql.com/doc/refman/5.0/es/index.html MySQL básico Procedimientos y Funciones A partir de mysql 5.0, es posible definir rutinas en MySQL. Éstas son funciones y procedimientos que están almacenadas

Más detalles

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD)

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD) TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD 6.1 Introducción Hasta ahora hemos estudiado las sentencias que forman parte del DML (Data Management Language lenguaje de manipulación de datos, todas esas

Más detalles

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo SQL. DDL (Data Definition Language) BASES DE DATOS (I.T.I. Gestión) Tipo boolean character Bit Numéricos Tipos de datos en SQL Declaración estándar Declaración en ORACLE BOOLEAN CHAR (longitud) char(longitud),

Más detalles

Conexiones a BD. Juan Manuel Espinoza Marquez CFT San Agustín Linares -2012

Conexiones a BD. Juan Manuel Espinoza Marquez CFT San Agustín Linares -2012 Conexiones a BD Juan Manuel Espinoza Marquez juanmanuel.espinoza@gmail.com CFT San Agustín Linares -2012 Bases de datos en la Web Las bases de datos permiten almacenar de una forma estructurada y eficiente

Más detalles

GUIA 3 PARTE II. Introducción a PL/SQL

GUIA 3 PARTE II. Introducción a PL/SQL GUIA 3 PARTE II Introducción a PL/SQL PL/SQL proviene de Procedural Language (lenguaje procedural)/ Structured Query Language (Lenguaje de consulta estructurado). PL/SQL ofrece un conjunto de comandos

Más detalles

SQL Sintaxis. Ejemplo de Alumno, Curso, Profesor. Esquemas de Alumno, Curso, Profesor. Andrés Moreno S.

SQL Sintaxis. Ejemplo de Alumno, Curso, Profesor. Esquemas de Alumno, Curso, Profesor. Andrés Moreno S. SQL Sintaxis Andrés Moreno S. 1 Ejemplo de Alumno, Curso, Profesor RutAlumno Nombre Apellido Carrera Alumno Apellido2 Créditos SiglaCurso Toma Curso Dicta NomProfesor Profesor ApellidoP Apellido2P NombreCurso

Más detalles

Introducción a PL/SQL

Introducción a PL/SQL Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL

Más detalles

Modulo I: Introducción Gestores de Bases De Datos

Modulo I: Introducción Gestores de Bases De Datos Modulo I: Introducción Gestores de Bases De Datos El SQL El SQL (Lenguaje de Consulta Estructurado Structure Query Language), es un lenguaje de consulta estructurado establecido claramente como el lenguaje

Más detalles

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández Reporte Uso de Disparadores Catedrático: Alumnos: Ing. María Elena Reyes Castellanos Miguel Angel Garduño Cordova Isaac Méndez Hernández Índice General Índice de tablas 2 Introducción 4 Objetivo 4 Desarrollo

Más detalles

InterBase / Firebird: el uso de eventos

InterBase / Firebird: el uso de eventos InterBase / Firebird: el uso de eventos Este artículo pretende dar una breve introducción acerca del uso de los eventos de Firebird e InterBase y como usarlos desde Delphi. Los eventos permiten a las aplicaciones

Más detalles

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos Grupo de Bases de Datos Avanzadas Univ. Carlos III de Madrid Índice V.1 Introducción V.1 SQL como Lenguaje de V.1.1 Definición del esquema V.1.2 Evolución del esquema V.2 SQL como Lenguaje de Manipulación

Más detalles

Pre-Taller Gestión de Privilegios de Usuarios 2. Manipulación de Vistas 3. Creación y manipulación de Triggers (Introducción al uso de PL/pgsql)

Pre-Taller Gestión de Privilegios de Usuarios 2. Manipulación de Vistas 3. Creación y manipulación de Triggers (Introducción al uso de PL/pgsql) BASES DE DATOS Facyt-UC Pre-Taller 2 1. Gestión de Privilegios de Usuarios 2. Manipulación de Vistas 3. Creación y manipulación de Triggers (Introducción al uso de PL/pgsql) 1. Gestión de Privilegios de

Más detalles

GBD Diseño físico de DDBB

GBD Diseño físico de DDBB GBD Diseño físico de DDBB Mª Carmen Gabarrón Manual SQL de Oracle 10g http://download.oracle.com/docs/cd/b19306_01/server.102/b14200/index.htm SQL SQL es el lenguaje de consulta universal para bases de

Más detalles

Fundamentos de Bases de Datos. Práctica 8.

Fundamentos de Bases de Datos. Práctica 8. Fundamentos de Bases de Datos. Práctica 8. Profesor: M.I. Gerardo Avilés Rosas gar@ciencias.unam.mx Laboratorio: Carlos Augusto Escalona Navarro caen@ciencias.unam.mx 8 de octubre de 2018 Se dan a conocer

Más detalles

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1 ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1 TEMA 1. CONSULTAS BÁSICAS Fundamentos de SQL Tipos de datos, operadores y literales Sentencia SELECT Limitación de filas y operadores Ordenación

Más detalles

6.1. Introducción. Guía 5. SQL.

6.1. Introducción. Guía 5. SQL. 6.1. Introducción. Guía 5. SQL. 1 6.2. Lenguaje de Definición de Datos (Data Definition Language DDL-). 2 3 4 5 -------------------------------------------------------------------------------------------------------------------------

Más detalles

Tablas -SQL Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS

Tablas -SQL Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS Tablas -SQL Curso Bases de Datos Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS SQL (Structured Query Language) SQL lenguaje usado para definir, manipular,

Más detalles

Instalacion de PostgreSQL en Ubuntu 8.4

Instalacion de PostgreSQL en Ubuntu 8.4 Instalacion de PostgreSQL en Ubuntu 8.4 Para la instalación del gestor de bases de datos PostgreSQL, realizamos los siguientes pasos : 1) Ingresamos al gestor de paquetes(synaptic), para ello ingresamos

Más detalles

Lo primero que se llevó a cabo fue la creación del entorno. Esto se llevó a cabo por medio de un usuario con privilegios DBA:

Lo primero que se llevó a cabo fue la creación del entorno. Esto se llevó a cabo por medio de un usuario con privilegios DBA: 3UiFWLFD364 3DVRV,QLFLDOHV&UHDFLyQGHO(QWRUQR Lo primero que se llevó a cabo fue la creación del entorno. Esto se llevó a cabo por medio de un usuario con privilegios DBA: &UHDFLyQGHOD7$%(63$&(868$5,26

Más detalles

1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres.

1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres. CREACION DE BASE DE DATOS EN POSTGRESQL HORARIO 1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres. Pasos: inicio Todos los programas PostgreSQL versión 9.1 (o

Más detalles

«Calcular un área a partir de un punto Encriptar archivos usando gpg»

«Calcular un área a partir de un punto Encriptar archivos usando gpg» 1 de 6 28/09/2010 «Calcular un área a partir de un punto Encriptar archivos usando gpg» Bueno gente, cuando empecé a investigar este tema ví muchas versiones, algunos que decían que era imposible hacerlo

Más detalles

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 ÍNDICE Introducción... XI Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 Características y novedades de Access 2010... 1 Comienzo rápido del trabajo y seguimiento de la información...

Más detalles

Transacciones en SQL Server Autor: Cesar Manivesa (manivesa)

Transacciones en SQL Server Autor: Cesar Manivesa (manivesa) Transacciones en SQL Server Autor: Cesar Manivesa (manivesa) 1. Introducción 2. Sentencias para una transacción 3. Transacciones anidadas 4. Un par de ejemplos más 5. Transacciones y procedimientos almacenados.

Más detalles

Tema II: El modelo relacional de datos. (2.7) Automatización

Tema II: El modelo relacional de datos. (2.7) Automatización Tema II: El modelo relacional de datos. (2.7) El modelo relacional de datos. 2.5 El lenguaje standard SQL 2.5.1 Lenguaje de definición de datos DDL. 2.5.2 Lenguaje de manipulación de datos DML. 2.6 Información

Más detalles

2.4. Unidades de aprendizaje. Modelo Académico de Calidad para la Competitividad PSGB-02 15/22

2.4. Unidades de aprendizaje. Modelo Académico de Calidad para la Competitividad PSGB-02 15/22 2.4. Unidades de aprendizaje Unidad de aprendizaje: Programación para el manejo de bases de datos Número 1 Propósito de la unidad: Elaborará consultas en bases de datos, mediante el uso de operaciones,

Más detalles

Jair Ospino Ardila -- Guía Sencilla

Jair Ospino Ardila -- Guía Sencilla Jair Ospino Ardila -- jairospino@ingenieros.com Guía Sencilla Son procedimientos que se ejecutan cumple una condición establecida. automáticamente cuando se Los triggers pueden ser de: Inserción (INSERT)

Más detalles

PL/SQL. Programming Language Structured Query Language

PL/SQL. Programming Language Structured Query Language PL/SQL Programming Language Structured Query Language SQL Standard para la manipulación. DDL, DML. Oracle no exactamente cumple el standard. Bueno Quien lo cumple?. PL/SQL Lenguaje de programación, con

Más detalles