FIREBIRD: SQL PROCEDIMENTAL (PSQL)

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

Download "FIREBIRD: SQL PROCEDIMENTAL (PSQL)"

Transcripción

1 FIREBIRD: SQL PROCEDIMENTAL (PSQL) Vicente Tejero Trueba Pag 1 IES Pedro Espinosa

2 FIREBIRD: SQL PROCEDIMENTAL (PSQL) 1.- INTRODUCCION EXTENSIONES DEL LENGUAJE Terminadores Variables Sentencias básicas Cursores Sentencias control de flujo Ejecución de código Eventos PROCEDIMIENTOS ALMACENADOS TRIGGERS EXCEPCIONES...16 Vicente Tejero Trueba Pag i IES Pedro Espinosa

3 1.- INTRODUCCION Uno de los grandes beneficios de la implementación de SQL en Firebird es la posibilidad de compilar y ejecutar modulos de código interno (procedimientos almacenados y triggers) desarrollados por un programador. Para ello se tiene PSQL, una sintaxis que combina sentencias de DML con una extensión para programación. Se habla en este caso de programación en el lado del servidor, ya que el código se ejecutará en la máquina del servidor por el propio servidor. Esto tiene sus ventajas: - Diseño modular: Todas las aplicaciones que acceden a la misma base de datos comparten los procedimientos almacenados y por tanto se centralizan las reglas de empresa, se reutiliza código y se reduce el tamaño de las aplicaciones. - Facilidad en mantenimiento: Cuando se realiza un cambio en un procedimiento, éste se traslada de forma automática a todas las aplicaciones que lo usan. - Mejora de eficiencia: El procesado complejo se realiza en el servidor reduciendo el trafico de red y la carga en los clientes. - Economía en la arquitectura: Las aplicaciones clientes se pueden orientar hacia la captura de datos y tareas interactivas mientas el trabajo complejo con datos se realiza en el servidor. - Funcionalidad extra: Operaciones que no se pueden realizar fácilmente mediante sentencias SQL pueden implementarse mediante procedimientos almacenados. Cada módulo creado podrá ser: - Procedimiento almacenado: Se pueden utilizar como procedimientos seleccionables (sustituyen a una tabla o vista en una sentencia SELECT) o como procedimientos ejecutables (ejecutar una operación o conjunto de operaciones en el lado del servidor) que se pueden llamar mediante EXECUTE PROCEDURE o desde otro procedimiento o trigger. - Trigger: Es una rutina asociada a una tabla o vista que se lanza de forma automática cuando se realiza una operación de inserción, borrado o actualización de una fila. Un trigger nunca se llama directamente. Se suelen usar los triggers para realizar actualizaciones de datos ante cambios en filas, validar datos de entrada, transformaciones de datos, actualizaciones de integridad referencial en cascada o para hacer vistas de solo lectura actualizables. Un aspecto importante a tener en cuenta con los módulos de PSQL es que no aportan control de transacciones. Un módulo se ejecuta siempre en el ámbito de una transacción abierta previamente. Desde el módulo no puede ser confirmada ni cancelada, lo único que se puede es lanzar una excepción ante un problema detectado. La aplicación que ha llamado al módulo será la encargada de realizar la finalización apropiada de la transacción (confirmar o deshacer). En este tema veremos los ejemplos a partir de la base de datos de bancos: Vicente Tejero Trueba Pag 1 IES Pedro Espinosa

4 2.- EXTENSIONES DEL LENGUAJE. Los módulos PSQL no son más que sentencias SQL que comienzan con una cláusula CREATE y finalizan con un terminador. En la definición del módulo apareceran un número variable de elementos como clausulas, palabras clave, bloques de sentencias, bucles, etc. Un módulo de PSQL se define estableciendo dos elementos fundamentales: - La cabecera: En ella se incluyen todos los elementos de definición del procedimiento o trigger como nombre del módulo, parámetros de entrada y/o salida para los procedimientos, tipo de trigger, etc. - El cuerpo: En el se definen todos los elementos que desarrollan el módulo como la declaración de variables, el bloque de sentencias (entre el ) y los manejadores de excepción. Así tendríamos que en un procedimiento: -- se inicia la cabecera CREATE PROCEDURE procedimiento (entrada INTEGER) RETURNS (salida INTEGER) --se acaba la cabecera -- se inicia el cuerpo DECLARE VARIABLE variable INT; variable = entrada /2; salida =variable; -- fin del cuerpo Terminadores. Muchos de los elementos que nos encontramos en un módulo se deben indicar con el terminador ;. Ya que un módulo es una sóla sentencia finalizada con un terminador es necesario diferenciar éste de los elementos del módulo. Esto se consigue mediante la sentencia SET TERM. Por ejemplo una definición tipica de un procedimiento sería: SET TERM ^; -- establece como terminador el ^ a partir de esta sentencia. CREATE PROCEDURE MI_PROCEDIMIENTO. Vicente Tejero Trueba Pag 2 IES Pedro Espinosa

5 sentencia; --sentencia acabada en ; ^ -- finaliza la definición del procedimiento mediante el terminador indicado, el ^ SET TERM ;^ -- fija de nuevo el terminador como ; y acaba la sentencia con el terminador actual ^ Variables. En PSQL se pueden usar 5 tipos de variables en el cuerpo de un módulo, con algunas restricciones según sea procedimiento o trigger: - Variables locales, usadas para mantener valores locales en un módulo. - Las variables NEW.columna y OLD.columna usadas en los triggers para almacenar los valores modificados de la fila o los antiguos. - Variables de contexto. - Argumentos de entrada pasados como constantes en los procedimientos almacenados. - Argumentos de salida, usados para devolver valores en los procedimientos almacenados. Las variables pueden usarse en sentencias SQL dentro de los módulos aunque en este caso se preceden por : para diferenciarlas de las columnas de las tablas. FOR SELECT cod_accta FROM ACCIONIST INTO :variable DO -- Variable lleva : al estar dentro de un select. otra = otra + variable variable no lleva los : al no aparecer en una sentencia select. Una variable se asigna mediante el = ( variable = expresión), en donde se puede asignar a una variable cualquier expresión en la que usemos variables, operadores, funciones SQL. codigo = GEN_ID( generador,1); codigo = codigo + IIF(codigo<0,0,codigo); Las variables locales se declaran, una por una, antes del primer siendo su ámbito únicamente el cuerpo del procedimiento o trigger. En la misma sentencia es posible darles un valor: DECLARE VARIABLE variable {<tipo> <dominio> TYPE OF <dominio> TYPE OF COLUMN <tabla o vista>.<columna>} [{DEFAULT valor } {= valor}]; DECLARE VARIABLE variable INTEGER DEFAULT 0; DECLARE VARIABLE cadena CHAR(20) = hola ; En PSQL se pueden usar todas las variables de contexto y literales comentados en temas anteriores como NOW, CURRENT_USER, etc. Además se define la variable ROW_COUNT que contiene el número de filas afectadas por la última sentencia de DML ejecutada. Los argumentos de entrada se definen en los procedimientos almacenados para que la aplicación pueda pasar valores al mismo. Son declarados en la cabecera pudiéndose usar en cualquier punto del cuerpo. Los argumentos de entrada son siempre pasados por valor, por lo que cualquier cambio que se produzca dentro del cuerpo no se envía al exterior. Vicente Tejero Trueba Pag 3 IES Pedro Espinosa

6 A los argumentos de entrada se les puede asignar un valor por defecto lo que hace que se pueda omitir en la llamada al procedimiento. En este caso, una ver definido uno, todos los siguientes deben tener también un valor por defecto y omitirse en la llamada. Los argumentos de salida se definen en los procedimientos almacenados para que puedan devolver valores a la aplicación que los llama. Se declaran en la cabecera pudiéndose usar en cualquier punto del cuerpo. CREATE PROCEDURE procedimiento [({arg_entrada <tipo> [= valor_defecto]}[, ] )] argumentos de entrada. [RETURNS ({arg_salida <tipo>}[, ] )] argumentos de salida. CREATE PROCEDURE procedimiento (entrada INTEGER=0) RETURNS (salida INTEGER) DECLARE VARIABLE variable INT; variable = entrada /2; salida =variable; OLD y NEW son exclusivos de los triggers. OLD contiene los valores de la fila para la que se activa el trigger antes de la modificación o borrado. NEW los valores de la fila modificados o insertados. Estas variables se verán con más detenimiento con los triggers Sentencias básicas. En PSQL existe la sentencia bloque, es decir, aquella que permite definir en su interior otras sentencias. En PSQL es.. Se usa tanto para el bloque principal como para otros internos. En PSQL se trabaja con la sentencia condicional IF THEN. ELSE. Ésta tiene como sintaxis: IF (<condicion>) THEN <sentencia compuesta> [ELSE <sentencia compuesta>] <sentencia compuesta> = {<bloque> <sentencia>;} La cláusula <condicion> es un predicado que se evalua a true o false. Si vale true se ejecuta la sentencia del THEN. Si vale false se evalua, si existe, la sentencia del ELSE. Podemos utilizar cualquier predicado. Por ejemplo podríamos tener: IF (EXISTS (select * from accionistas where cod_accta=:cod)) THEN var= BUENA ; IF (nombre in ( PEDRO, JUAN )) THEN var= nombre; ELSE Vicente Tejero Trueba Pag 4 IES Pedro Espinosa

7 var= desconocido ; En PSQL se define una sentencia de tipo bucle: WHILE DO. WHILE (<condicion>) DO <sentencia compuesta> <sentencia compuesta> = {<bloque> <sentencia>;} Por ejemplo podríamos tener, el siguiente procedimiento que suma todos los números desde el 0 hasta el que se indica como parámetro de entrada: CREATE PROCEDURE SUMA (i INTEGER) RETURNS (su INTEGER) su=i; i=i-1; WHILE (i>0) DO su=su+i; i=i-1; Cursores. Un cursor es un elemento que nos permite obtener los valores de una fila perteneciente a un conjunto de salida obtenido a partir de una sentencia SELECT. En Firebird se trabaja tanto con cursores explícitos, definidos explícitamente, como con cursores implícitos, aparecen por debajo de una sentencia sin que nos demos cuenta. En los cursores implícitos nos encontramos con: - SELECT. INTO..: Se usa para asignar los campos de la única fila obtenida en una sentencia a unas variables. Es semejante a una asignación en la que la expresión se obtiene de la sentencia SELECT. SELECT first 1 cod_accta, nom_accta FROM accionistas sólo puede devolver una fila INTO :var_codigo, :var_nombre -- se almacenan los campos en las variables indicadas La sentencia SELECT debe devolver como máximo una sóla línea. Se deben indicar tantas variables como campos se devuelvan. - FOR SELECT: Se utiliza para recorrer una sentencia SELECT que devuelve una o más filas realizando operaciones sobre los datos devueltos. FOR SELECT <lista columnas> FROM. INTO <lista variables> DO <sentencias> [SUSP;] Vicente Tejero Trueba Pag 5 IES Pedro Espinosa

8 En este caso se deben indicar tantas variables y del mismo tipo como columnas devuelva la sentencia. Por ejemplo podemos tener un procedimiento que obtiene la máxima cotización para un banco dado y actualiza el valor en la tabla bancos. CREATE PROCEDURE ACT_PRE_MAX (banco INTEGER) DECLARE VARIABLE MAXIMO NUMERIC(12,2); DECLARE VARIABLE VALOR NUMERIC(12,2); MAXIMO =0; FOR SELECT pre_ac_fe FROM cotizaciones WHERE cod_banco=:banco INTO :VALOR DO IF (VALOR>MAXIMO) THEN VALO=MAXIMO; UPDATE BANCOS SET PRE_MA_AC=:MAXIMO WHERE COD_BANCO=:BANCO; ^ - EXECUTE STATEMENT. INTO: Es equivalente a SELECT INTO con la diferencia de que aquí lo que se indica es una cadena que contiene la sentencia a ejecutar. Esto nos permite definir sentencias dinámicas. sentencia = select first 1 cod_banco from bancos ; --crea la sentencia en tiempo de ejecución EXECUTE STATEMENT sentencia INTO :codigo; -- se ejecuta la sentencia almacenando el resultado en una variable Mediante esta sentencia se pueden ejecuta sentencias que no devuelven filas como INSERT, UPDATE, DELETE, EXECUTE PROCEDURE y cualquier sentencia DDL excepto las de CREATE/DROP DATABE. Se tiene que tener en cuenta que dentro de un módulo no es posible ejecutar sentencias DDL directamente. Por ejemplo para ejecutar un procedimiento que se pasa como parámetro podríamos tener: CREATE PROCEDURE EJECU_PROCE(PROCE VARCHAR(30)) DECLARE VARIABLE SENTENCIA VARCHAR(1000); SENTENCIA = EXECUTE PROCEDURE PROCE; EXECUTE STATEMENT SENTENCIA; ^ - FOR EXECUTE STATEMENT: Al igual que FOR SELECT permite recorrer las filas devueltas al ejecutar una sentencia. FOR EXECUTE STATEMENT sentencia INTO <lista variables> DO <sentencias> Vicente Tejero Trueba Pag 6 IES Pedro Espinosa

9 Cuando usemos esta sentencia tenemos que tener en cuenta que debemos garantizar que la cadena que generemos sea correcta, puesto que, a diferencia de FOR SELECT, la sentencia no es validada en el momento de definir el procedimiento. También tenemos que tener en cuenta que la sentencia se ejecutará de forma má lenta ya que tiene que ser compilada cada vez que se vaya a ejecutar. Por ejemplo si queremos crear un procedimiento que concatene un campo cadena de una tabla podríamos tener: CREATE PROCEDURE CONCATENAR (TABLA VARCHAR(30), CAMPO VARCHAR(30)) RETURNS (CADENA VARCHAR(2000)) DECLARE VARIABLE SENTENCIA VARCHAR(1000); DECLARE VARIABLE VALOR VARCHAR(1000); CADENA= ; SENTENCIA = SELECT CAMPO FROM TABLA; FOR EXECUTE STATEMENT SENTENCIA INTO :VALOR DO CADENA = CADENA, +VALOR; ^ Mediante la sentencia FOR SELECT es posible definir los procedimientos almacenados seleccionables, es decir, aquellos que pueden actuar como tablas en sentencias SELECT, en contraposición con los procedimientos almacenados ejecutables que son aquellos que ejecutan una operación programada. Un procedimiento almacenado ejecutable se obtiene con la inclusión de una sentencia SUSP dentro del bucle DO. Esto causa que, una vez asignadas las variables correspondientes al cursor, el bucle se pare hasta que la fila sea recogida por el servidor. Por ejemplo si queremos un procedimiento que devuelva un nombre propio para cada banco podríamos tener: CREATE PROCEDURE MIS_BANCOS () RETURNS (COD_BANCO INT, MI_NOMBRE VARCHAR(100)) FOR SELECT COD_BANCO,NOM_BANCO FROM BANCOS INTO :COD_BANCO, MI_NOMBRE DO MI_NOMBRE= EL BANCO ES MI_NOMBRE; SUSP; ^ Se podría llamar select * from MIS_BANCOS() Los cursores explícitos son aquellos que se definen de forma explícita mediante una sentencia de declaración. En Firebird nos encontramos con las siguientes sentencias de gestión de cursores: Vicente Tejero Trueba Pag 7 IES Pedro Espinosa

10 DECLARE [VARIABLE] <nombre cursor> CURSOR FOR ( <sentencia select> ); OPEN < nombre cursor >; FETCH < nombre cursor > INTO <variable> [, <variable>...]; CLOSE < nombre cursor >; Con los cursores explícitos se tienen que tener una serie de consideraciones: - Dos cursores no pueden tener el mismo nombre aunque si un cursor y una variable. Los nombres de cursores deben ser únicos. - Intentar hacer un fetch (devolver los valores para la fila actual) en un cursor no abierto da un error. - Se usa ROW_COUNT para comprobar si fetch devuelve o no filas. Por ejemplo el procedimiento MIS_BANCOS mediante cursores podría ser: CREATE PROCEDURE MIS_BANCOS () RETURNS (COD_BANCO INT, MI_NOMBRE VARCHAR(100)) DECLARE MI_CURSOR CURSOR FOR SELECT COD_BANCO,NOM_BANCO FROM BANCOS declaro el cursor para la sentencia ^ OPEN MI_CURSOR; -- abro el cursor. FETCH MI_CURSOR INTO :COD_BANCO, MI_NOMBRE; --obtengo los valores para la fila WHILE (ROW_COUNT>0) DO MI_NOMBRE= EL BANCO ES MI_NOMBRE; SUSP; FETCH MI_CURSOR INTO :COD_BANCO, MI_NOMBRE; CLOSE MI_CURSOR; -- cierro el cursor Sentencias de control de flujo. Firebird proporciona varias sentencias que afectan al control de flujo: - SUSP: ya se ha comentado anteriormente. - EXIT: Hace que se vaya al final de un procedimiento. - : Finaliza la ejecución. Según se tenga un procedimiento ejecutable, seleccionable o un trigger estas sentencias pueden trabajar con ciertos matices: MODULO SUSP EXIT Procedimiento seleccionable Devuelve los Se suspende la ejecución hasta que la aplicación solicite un nuevo registro al procedimiento valores (si los hay) y salta al final Procedimiento Salta al final (no se Salta al ejecutable aconseja) final trigger No se usa Salta al final Devuelve el control a la aplicación y pone SQLCODE a 100 Devuelve los valores y pasa el control a la aplicación. Hace que se ejecute el siguiente trigger en la misma fase (AFTER o BEFORE)si hay. En otro caso termina el trigger. Vicente Tejero Trueba Pag 8 IES Pedro Espinosa

11 Además de los anteriores se tiene la sentencia LEAVE. Se usa en los bucles para salir de ellos. Hace que se pase a la siguiente sentencia fuera del bucle. CONT=0; WHILE (1=1) DO -- esta codición supone un bucle infinito. CONT=CONT+1; IF (CONT>9) THEN LEAVE; -- solo se puede salir mediante LEAVE... cuando se ejecuta LEAVE se va a la siguiente sentencia Ejecución de código. En PSQL es posible ejecutar directamente procedimientos almacenados, sentencias y más recientemente bloques de código. Un procedimiento almacenado se ejecuta mediante la sentencia EXECUTE PROCEDURE. EXECUTE PROCEDURE procedimiento [(] [argumento [,.]] [)] [RETURNING_VALUES variable[, ]; Esta sentencia permite llamar a un procedimiento almacenado indicando valores para los argumentos de entrada. Si se definen argumentos de salida se pueden devolver los valores en las variables indicadas. EXECUTE PROCEDURE suma 5 RETURNING_VALUES :resultado; -- se llama al procedimiento suma visto en ejemplos anteriores. Recientemente Firebird ha incluido la sentencia EXECUTE BLOCK. Esta sentencia no es realmente una sentencia de PSQL aunque hace que un PSQL dinámico esté disponible en una sentencia SELECT. Tiene el efecto de que un bloque de código de PSQL se pueda ejecutar en una sentencia de DSQL como si fuera un procedimiento almacenado. Su sintaxis es: EXECUTE BLOCK [ (parámetro tipo =?[, parametro tipo =?...) ] [ RETURNS (parametro tipo[, param datatype...]) ] [DECLARE VARIABLE var datatype;...] Eventos. Los eventos son un mecanismo por el que desde Firebird se pueden enviar señales a las aplicaciones para notificar cualquier suceso de forma asíncrona, es decir, sin que la aplicación tenga que estar a la espera. Se envían eventos mediante: Vicente Tejero Trueba Pag 9 IES Pedro Espinosa

12 POST_EVENT evento; Vicente Tejero Trueba Pag 10 IES Pedro Espinosa

13 3.- PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un módulo escrito en PSQL, compilado por el interprete de lenguaje binario de Firebird y almacenado como código ejecutable en los metadatos de la base de datos. Una vez compilado, el procedimiento puede ser invocado directamente desde una aplicación u otro módulo PSQL usando EXECUTE PROCEDURE o una sentencia SELECT. Se distinguen dos tipos de procedimientos almacenados: - Ejecutables: Son los procedimientos que se llaman con la sentencia EXECUTE PROCEDURE y que pueden devolver, opcionalmente, una única fila de uno o más valores. Se usan a menudo para realizar operaciones de inserción, actualización o borrado, o para larzar un conjunto de operaciones. - Seleccionable: Los procedimientos seleccionables son escritos con extensiones del lenguaje para generar un conjunto de salida de múltiples filas que es devuelto usando una sentencia SELECT. En principio no se hace distinción entre procedimiento ejecutable o seleccionable. Cuando son llamados, y no se ajustan a la forma de llamada, el sistema genera una excepción. Es por tanto función del programador garantizar que se usan de la forma apropiada. Un procedimiento se crea mediante la sentencia CREATE PROCEDURE: CREATE PROCEDURE procedimiento [(argumento tipo[{= DEFAULT} valor] [, argumento tipo[{= DEFAULT} valor] )] [RETURNS (argumento tipo [, argumento tipo ])] aquí empieza el cuerpo [DECLARE [VARIABLE] variable tipo[{= DEFAULT} valor]; <sentencias> <terminador> Como se ve se pueden indicar una lista de argumentos de entrada a los que se les pueden asignar valores por defecto. En este caso todos los siguientes argumentos de entrada deben tener también definidos valores por defecto. Se puede indicar uno o mas argumentos de salida mediante la cláusula RETURNS. Se pueden declarar variables antes del bloque principal. Por ejemplo podríamos tener CREATE PROCEDURE PRUEBA (entrada integer = 10) se define un argumento de entrada con valor por defecto 10 RETURNS (salida integer) -- se define un argumento de salida DECLARE VARIABLE NUEVA INTEGER=3; -- declaramos una variable local /* Procedure body */ nueva=nueva+entrada+5; -- usamos las variables locales y los argumentos salida=nueva; -- se rellena un argumento de salida SUSP; -- se envia la fila a la aplicación que lo llame. Vicente Tejero Trueba Pag 11 IES Pedro Espinosa

14 El anterior procedimiento se podría llamar como: select * from prueba se llama como procedimiento seleccionable sin rellenar los argumentos select * from prueba(5) se llama al procedimiento seleccionable indicando el argumento o como procedimiento ejecutable dentro de otro.. DECLARE VARIABLE varia integer;. execute procedure prueba(3) RETURNING_VALUES (varia);. En este caso la llamada al procedimiento ha funcionado tanto como seleccionable como ejecutable ya que devolvía como máximo una fila. Si el procedimiento se hubiera definido para que devolviera mas de una fila (Sentencia suspend dentro de un for select, ) nos habría dado una excepción al llamarlo mediante EXECUTE PROCEDURE. Una ventanja de los procedimientos almacenados es que se pueden definir de forma recursiva, es decir, se pueden llamar a sí mismos. En Firebird se establecen varios mecanismos para modificar un procedimiento almacenado: {CREATE ALTER RECREATE CREATE OR ALTER} PROCEDURE procedimiento [(argumento tipo[{= DEFAULT} valor] [, argumento tipo[{= DEFAULT} valor] )] [RETURNS (argumento tipo [, argumento tipo ])] aquí empieza el cuerpo [DECLARE [VARIABLE] variable tipo[{= DEFAULT} valor]; <sentencias> <terminador> ALTER es el método de más bajo imparto para cambiar un procedimiento ya que, si ho hay dependencias que se vean afectadas, se puede ejecutar sin problemas. Para que se pueda ejecutar debe existir previamente el procedimiento. RECREATE es idéntico a CREATE con la adicción de que previamente hace un DROP PROCEDURE. En este caso se producirán excepciones si existen dependencias (no se puede borrar el objeto si antes no se eliminan las dependencias). CREATE OR ALTER crea un procedimiento si no existe. Si ya existe ejecuta una operación ALTER. Un procedimiento se borra mediante DROP PROCEDURE procedimiento. Un procedimiento sólo lo puede borrar el usuario SYSDBA o el propietario del procedimiento. Además, para que se pueda realizar, no puede estar siendo usado en ninguna transacción ni tener dependencias en otros objetos de la base de datos. Si el procedimiento es recursivo se necesita borrar en primer lugar la llamada a sí mismo. Vicente Tejero Trueba Pag 12 IES Pedro Espinosa

15 4.- TRIGGERS Un trigger o disparador es un módulo que se ejecuta de forma automática cuando se cambia el estado de una fila como respuesta a una petición. Los triggers no se pueden invocar por aplicaciones u otros procedimientos. Además, no pueden tener argumentos de entrada o salida. Los triggers se ejecutan a nivel de fila, una por cada imagen de fila cambiada y se establece un alto grado de granularidad en cuanto a cuando, en que orden condiciones se dispara un trigger particular. Esto se establece mediante la fase, evento y secuencia. Un trigger se puede ejecutar en una de dos fases relativas a la ejecución de la petición de cambio realizada: antes (befote) de escribir o después (alter). En un trigger es posible definir esta fase en relación a un evento (inserción, actualización o borrado) o a varios de ellos. En resumen tenemos que: Tipo trigger BEFORE INSERT AFTER INSERT BEFORE UPDATE AFTER UPDATE BEFORE DELETE AFTER DELETE BEFORE <evento> OR <evento> [OR <evento>] AFTER <evento> OR <evento> [OR <evento>] Descripción Se lanza antes de que se cree una nueva fila. Permite que se puedan cambiar los valores de entrada Se dispara después de que se cree una nueva versión del registro. No se permite cambiar los valores de entrada. Normalmente se usa para modificar otras tablas Se dispara antes de que se cree una nueva versión del registro. Se permiten cambios en los valores de entrada Se lanza después de que se cree una nueva versión del registro. No se permiten cambios en los valores de entrada. Normalmente se usa para modificar otras tablas Se lanza antes de que una fila existente se borre. No acepta cambios a ninguna columna en la fila. Se dispara después de que una fila es borrada. Nose aceptan cambios a ninguna columna en la fila. Normalmente se usa para modificar otras tablas. Se dispara antes de que se ejecute cualquier cambio en el estado del dato. Se codifican las acciones de forma condicional. Se pueden hacer cambios en las columnas de la fila afectada salvo que sea una acción de borrado Se dispara después de que se ejecute cualquier cambio en el estado del dato. Se codifican las acciones de forma condicional. No se pueden hacer cambios de la fila afectada. Firebird permite ejecutar múltiples triggers para cada combinación fase/evento. Para establecer el orden en el que se ejecutan se define un número de secuencia. Por defecto vale 0. Si se indican números de secuencia se ejecutan los triggers en orden ascendente. Cuando varios triggers tienen definidos el mismo número de secuencia, se establece un orden alfabético por sus nombres. Un trigger puede estar activo o inactivo. Sólo se disparan los triggers activos. El estado se puede modificar mediante la sentencia ALTER. Un trigger se crea mediante la sentencia CREATE TRIGGER: CREATE TRIGGER nombre FOR {tabla vista} [ACTIVE INACTIVE ] Vicente Tejero Trueba Pag 13 IES Pedro Espinosa

16 {BEFORE AFTER } {{DELETE INSERT UPDATE } { DELETE OR {[INSERT [OR UPDATE]} {INSERT OR [ ]} {UPDATE OR [ ]}}} [POSITION numero] aquí empieza el cuerpo del trigger [DECLARE [VARIABLE] variable tipo[{= DEFAULT} valor]; <sentencias> <terminador> Si usamos la sintaxis BEFORE INSERT OR DELETE OR UPDATE, se puede usar, dentro del cuerpo, las variables de contexto INSERTING, UPDATING y DELETING que indican ante que tipo de evento se está respondiendo. Además de las variables anteriores, PSQL aporta las variables OLD y NEW. Contienen respectivamente los valores de las columnas existentes y los nuevos. No siempre están disponibles. Por ejemplo ante un evento DELETE, solo tenemos valores OLD mientras que ante un INSERT solo tenemos NEW. Los triggers se usan para proporcionar valores por defecto, validar y transformar entradas del usuario, actualizar otras tablas relacionadas o para garantizar reglas de integridad. CREATE TRIGGER BI_BANCOS FOR BANCOS BEFORE INSERT new.nom_banco=upper(new.nom_banco); -- pasamos a mayúsculas el nombre de banco Un uso muy común de los triggers es implementar las columnas autonuméricas haciendo uso de un generador. Por ejemplo si tubieramos un generador llamado gen_cod_banco para generar codigos de bancos para la tabla bancos podríamos tener el trigger: CREATE TRIGGER BI_BANCOS FOR BANCOS BEFORE INSERT IF (new.cod_banco is null) then si no se ha indicado un cod_banco new.cod banco=gen_id(gen_cod_banco,1); --se recoge el cod_banco del generador Un trigger puede ser modificado mediante las sentencia ALTER TRIGGER y CREATE OR ALTER TRIGGER. Ambas tienen una sintaxis semejante a la de CREATE TRIGGER con la única diferencia que en ALTER TRIGGER no se indica la tabla sobre la que se trabaja: {{CREATE TRIGGER nombre} {CREATE OR ALTER TRIGGER nombre FOR {tabla vista}}} [ACTIVE INACTIVE ] {BEFORE AFTER } {{DELETE INSERT UPDATE }.. Vicente Tejero Trueba Pag 14 IES Pedro Espinosa

17 Los triggers se borran mediante la sentencia DROP TRIGGER nombre; Vicente Tejero Trueba Pag 15 IES Pedro Espinosa

18 5.- EXCEPCIONES PSQL aporta un mecanismo para la gestión de errores. De forma estándar los módulos gestionan las excepciones parando la ejecución, deshaciendo el trabajo hecho desde la sentencia inicial y pasando uno o más mensajes de error. Una excepción puede ocurrir por: - Error SQL: Mensajes SQL con código negativo de SQLCODE. Además se tienen otros códigos SQLCODE que no representan error como el 0 (ejecutado correctamente) o el 100 (detectado fin de fichero). - Errores internos de Firebird: Tienen que ver con concurrencia, datos, metadatos y condiciones del entorno. Tienen un código de error de nueve dígitos, normalmente empezando por 3355, que identifica de forma única el GDSCODE. Un mismo SQLCODE puede ser descompuesto en varios GDSCODE de forma que éte último nos da una información mas precisa sobre el error producido. Cuando ocurre una excepción se pueden trabajar muchas veces con ambos: SQLCODE y GDSCODE. Por ejemplo podríamos tener el GDSCODE usrname_too_long, el password_too_long, usrname_required, etc, todos bajo el mismo SQLCODE, el Excepciones de usuario: Son objetos creados en la base de datos y que se invocan cuando se cumple una condición determinada. Como se ve, una excepción no es más que un mensaje que se genera cuando se produce un error. Todas las excepciones predefinidas (SQLCODE y GDSCODE) tiene mensajes de texto asociados. Una excepción definida por el usuario se crea mediante CREATE EXCEPTION. CREATE EXCEPTION <nombre> <mensaje>; En donde nombre es un identificador de cómo máximo 31 caracteres y mensaje una cadena con conjunto de caracteres NONE. Por ejemplo podríamos tener: CREATE EXCEPTION BANCO_ERRONEO El nombre del banco no válido ; Se puede borrar una excepción (DROP EXCEPTION <nombre>) o modificar una existente (ALTER EXCEPTION <nombre> <mensaje>). Las excepciones definidas internamente son lanzadas por el sistema en respuesta a errores que requieren que se pare la ejecución. Éstas cubren un gran rango de condiciones incluyendo violaciones de restricciones de integridad, desbordamientos aritméticos y de cadena, referencias a objetos no existentes, corrupción de datos, etc. Las excepciones GDSCODE y SQLCODE son las mismas que nos encontramos cuando se produce un error al ejecutar una sentencia de DSQL. Las excepciones de usuario, sólo disponibles en módulos PSQL, son usadas para codificar nuestros propios errores en la lógica de los programas. De esta forma podríamos encontrarnos con un trigger usado para validar el nombre de un banco insertado o modificado: CREATE TRIGGER BI_BANCOS FOR BANCOS trigger para validar el nombre del banco BEFORE INSERT OR UPDATE Vicente Tejero Trueba Pag 16 IES Pedro Espinosa

19 ^ IF (NEW.NOM_BANCO NOT CONTAINING BANCO ) THEN si el nombre no cumple la condición EXCEPTION BANCO_ERRONEO; lanzo la excepción de usuario. Como se ve en este ejemplo, se puede lanzar una excepción mediante la sentencia EXCEPTION: EXCEPTION [<nombre excepcion> [<mensaje en tiempo ejecución>]] Si usamos esta sentencia sin ningún parámetro se puede relanzar la excepción para que la gestione otro bloque. Otro uso posible es la de asignarle el mensaje directamente en tiempo de ejecución. Además de poder lanzar nuestras propias excepciones Firebird aporta un mecanismo para gestionar, dentro de un módulo, las excepciones generadas y así poder continuar con la ejecución de nuestro código. Esto se consigue mediante la sentencia WHEN: WHEN {<nombre excepcion> GDSCODE codigo SQLCODE codigo ANY } DO <sentencias> Mediante la sentencia WHEN se cambia el mecanismo estándar de gestión de errores. Asi cuando se produce una excepción se para la ejecución del bloque en el que se produce. En lugar de pasar la ejecución a la sentencia final, se inicia un procedimiento de búsqueda de una sentencia WHEN que gestione la excepción, comenzando por el bloque donde se produjo el error y pasando a los bloques más externos. Una vez manejada la excepción se continua con la ejecución en la primera sentencia posterior al bloque de manejo de excepción ejecutado. Una sentencia WHEN siempre se tiene que ubicar inmediatamente antes de una sentencia (no puede haber otras sentencias entre ellas). CREATE TRIGGER BI_BANCOS FOR BANCOS trigger para validar el nombre del banco BEFORE INSERT OR UPDATE IF (NEW.NOM_BANCO NOT CONTAINING BANCO ) THEN si el nombre no cumple la condición EXCEPTION BANCO_ERRONEO; lanzo la excepción de usuario. ^ WHEN BANCO_ERRONEO DO capturo la excepcion y la gestiono. NEW.NOM_BANCO = BANCO NEW.NOM_BANCO; Firebird aporta dos variables de contexto para poder consultar el error producido: SQLCODE y GDSCODE. Estas variables se asignan de forma automática con el código de error permaneciendo en el bloque de gestión de error. Fuera de este bloque siempre valen 0. Vicente Tejero Trueba Pag 17 IES Pedro Espinosa

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008 Base de Datos I SQL PROCEDURAL Triggers y Stored Procedures Ing. Gustavo A. Correa Reina UNCPBA 2008 SQL Procedural Posibilita el uso de código procedural conjuntamente con sentencias SQL que son almacenadas

Más detalles

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con

Más detalles

Laboratorio Informix. Stored Procedures Triggers

Laboratorio Informix. Stored Procedures Triggers Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con

Más detalles

Procedimientos, Funciones, Trigger y Cursores en ORACLE

Procedimientos, Funciones, Trigger y Cursores en ORACLE Procedimientos, Funciones, Trigger y Cursores en ORACLE PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre que se

Más detalles

Un ejemplo teórico de trigger podría ser éste:

Un ejemplo teórico de trigger podría ser éste: 9. TRIGGERS EN LA BASE DE DATOS Un trigger (disparador sería la traducción técnica) es un bloque PLSQL que se ejecuta implícitamente cuando ocurre un evento y pueden ser de base de datos o de aplicación.

Más detalles

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 1 SQL Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 2 SQL + Procedural La mayoría de los DBMS actuales permiten extensiones de SQL para la creación de bloques

Más detalles

Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html

Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html 1.INTRODUCCION PL/SQL (Procedural Language ó Programming Language, según distintas fuentes, aunque la oficial es la primera) es el lenguaje utilizado por Oracle como extensión al SQL, y que nos va a permitir

Más detalles

FIREBIRD: LENGUAJE DE DEFINICIÓN DE DATOS

FIREBIRD: LENGUAJE DE DEFINICIÓN DE DATOS FIREBIRD: LENGUAJE DE DEFINICIÓN DE DATOS FIREBIRD: LENGUAJE DE DEFINICIÓN DE DATOS 1.- INTRODUCCIÓN...1 2.- BASE DE DATOS (DATABASE)...2 3.- DOMINIOS (DOMAIN)...4 4.- TABLAS (TABLE)...6 5.- INDICES (INDEX)...15

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

PRÁCTICA III. DISPARADORES EN SQL (II)

PRÁCTICA III. DISPARADORES EN SQL (II) PRÁCTICA III. DISPARADORES EN SQL (II) MODELOS AVANZADOS DE BASES DE DATOS CURSO 2000/2001 Objetivo Conocer mejor los disparadores en SQL. Se verá uno de los principales inconvenientes que se presentan

Más detalles

Tema 1. Bases de datos activas

Tema 1. Bases de datos activas Tema 1. Bases de datos activas Diseño de Sistemas de Bases de Datos Merche Marqués 18 de marzo de 2002 Índice 1. Introducción 1 2. El modelo evento condición acción 1 2.1. Definición y uso de disparadores

Más detalles

Programación SQL. Lucio Salgado Diciembre 2008

Programación SQL. Lucio Salgado Diciembre 2008 Programación SQL Lucio Salgado Diciembre 2008 1 Gestionadores de Bases de Datos (DBMS) Es el software que permite administrar bases de datos, a través de ella el usuario puede usar los datos con mucha

Más detalles

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1 UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEM LABORATORIO DE BES DE DATOS 1 Prof. Marco Aedo Práctica de Laboratorio Nº 6 I. OBJETIVOS

Más detalles

Tema 1. Bases de datos activas

Tema 1. Bases de datos activas 18 de marzo de 2002 1 1. Introducción 2. El modelo evento-condición-acción Definición y uso de disparadores en Oracle Características de las reglas activas 3. Propiedades de las reglas activas 4. Aplicaciones

Más detalles

Tema: PROCEDIMIENTOS ALMACENADOS.

Tema: PROCEDIMIENTOS ALMACENADOS. Base de datos I. Guía 9 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: PROCEDIMIENTOS ALMACENADOS. Objetivo Específico Conocer la sintaxis de un procedimiento almacenado

Más detalles

Oracle 12c DISEÑO Y PROGRAMACIÓN

Oracle 12c DISEÑO Y PROGRAMACIÓN Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

Oracle básico (IV): Programación en PL/SQL

Oracle básico (IV): Programación en PL/SQL Oracle básico (IV): Programación en PL/SQL El lenguaje de programación de Oracle, llamado PL/SQL, es un lenguaje portable, procedural y de transacción muy potente y de fácil manejo, con las siguientes

Más detalles

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers Subconsultas Stored Procedures - Triggers Subconsultas Concepto Ubicación En el SELECT En el FROM En el WHERE Operadores IN ANY-ALL EXISTS Concepto Son sentencias SELECT que aparecen dentro de otra consulta

Más detalles

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1 Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER GUÍA 2 Pág. 1 I. OBJETIVOS Utilizar procedimientos almacenados Conocer el uso de los cursores

Más detalles

Bases de Datos / Elementos de Bases de Datos 2011. Que es un Stored Procedure? Stored Procedures: Ventajas

Bases de Datos / Elementos de Bases de Datos 2011. Que es un Stored Procedure? Stored Procedures: Ventajas Bases de Datos / Elementos de Bases de Datos 2011 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Que es un Stored

Más detalles

BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1

BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1 BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1 1. Cuáles de los siguientes enunciados son declaraciones válidas? 2. Cuál de

Más detalles

Tutorial Oracle SQL Developer 1.2.1

Tutorial Oracle SQL Developer 1.2.1 Tutorial Oracle SQL Developer 1.2.1 Departamento de Informática Índice Í0. Introducción...3 1. Conexión y desconexión de la base de datos...3 2. Ejecución de sentencias SQL...4 3. Creación de tablas...6

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 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

MANUALITO MS-SQL SERVER

MANUALITO MS-SQL SERVER MANUALITO MS-SQL SERVER Contenido 1. Crear Store Procedures en MS SQL Server... 1 2. Crear Triggers en MS SQL Server... 5 3. Crear Vistas en MS SQL Server... 9 1. Crear Store Procedures en MS SQL Server

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

abacformacio@abacformacio.com 1

abacformacio@abacformacio.com 1 Cu Oracle 10gg Estudia el servidor de bases de datos Oracle 10g desde el punto de vista de un diseñador y programador de bases de datos, prestando atención a los objetos que puede crear, como tablas, consultas

Más detalles

Uso de las herramientas de consulta de Transact-SQL

Uso de las herramientas de consulta de Transact-SQL Uso de las herramientas de consulta de Transact-SQL Contenido Introducción 1 Analizador de consultas SQL 2 Uso de la herramienta Examinador de objetos en el Analizador de consultas SQL 3 Uso de plantillas

Más detalles

Restricciones de Integridad

Restricciones de Integridad Restricciones de Integridad Amparo López Gaona México, D.F. Semestre 2000-I Restricciones de Integridad Las principales restricciones de integridad que pueden indicarse son: La clave primaria. Claves candidatas.

Más detalles

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 ) Definiciones Transacciones ( L33 ) CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) Transacciones En Microsoft ( L33 ) MANUAL (REQUIERE PROGRAMACION) AUTOMATICO (COM+ O DTM) DTM (DISTRIBUTED TRANSACTION

Más detalles

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo: TEMA 7.- EL ESTANDAR SQL. El Sublenguaje de Manipulación. El Sublenguaje de Definición. El Sublenguaje de Control. El Sublenguaje Huésped. 1. El Sublenguaje de Manipulación. (Se verá en la clase de problemas)

Más detalles

6. PROGRAMACIÓN CON TRANSACT-SQL

6. PROGRAMACIÓN CON TRANSACT-SQL 6. PROGRAMACIÓN CON TRANSACT-SQL 6.1. Introducción. " # 6.2. Declaración y asignación de variables. $ " % & ' # ( % ) # (( ) *$+,$ " $ # &-' $ $. $" / # 0 1$,$2 DECLARE @limite money SET @limite = 10 SELECT

Más detalles

Índice. iii. Objetivos... 24

Índice. iii. Objetivos... 24 Índice Objetivos... 2 1: Modelación de base de datos... 2 2: Ejemplo de un caso de negocios... 3 2.1: Requerimientos de la aplicación... 4 2.2: Características de flujo de información... 4 2.3: Diagrama

Más detalles

Haga clic para PostgreS cambiar el estilo

Haga clic para PostgreS cambiar el estilo Taller # 1 Uso y Manejo l Sistema Gestor Bases Datos PostgreSQL Luis García Computación ldgarc@gmail.com Contenido - Creación Tablas (Create Table...) ( Check Foreign Keys ) - Inserción Datos (Insert Into...)

Más detalles

Guía práctica de SQL

Guía práctica de SQL Guía práctica de SQL Francisco Charte Ojeda Agradecimientos Introducción Qué es SQL? Aplicaciones de SQL Intérpretes de SQL Tipos de RDBMS Cómo usar este libro Convenciones tipográficas 1. El modelo relacional

Más detalles

Lenguaje para descripción de datos

Lenguaje para descripción de datos Amparo López Gaona tación Fac. Ciencias, UNAM Mayo 2012 Definición de Datos El lenguaje para definición de datos permite especificar: Esquema de cada relación. El dominio de cada atributo. Restricciones

Más detalles

INTRODUCCIÓN AL SQL. TRANSACT-SQL SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

INTRODUCCIÓN AL SQL. TRANSACT-SQL SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE INTRODUCCIÓN AL SQL. TRANSACT-SQL SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE INTRODUCCIÓN AL SQL. TRANSACT SQL CONCEPTOS BÁSICO DE SQL SQL (Structured Query Language),

Más detalles

Bases de Datos / Elementos de Bases de Datos 2015

Bases de Datos / Elementos de Bases de Datos 2015 Bases de Datos / Elementos de Bases de Datos 2015 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Stored Procedures

Más detalles

Tema: Disparadores Parte I.

Tema: Disparadores Parte I. Base de datos I. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Disparadores Parte I. Objetivo Utilizar la sintaxis de un disparador en SQL Server Implementar transacciones

Más detalles

TEMA 8. CONSTRUCCIÓN DE GUIONES DE ADMINISTRACIÓN

TEMA 8. CONSTRUCCIÓN DE GUIONES DE ADMINISTRACIÓN 1 TEMA 8. CONSTRUCCIÓN DE GUIONES DE ADMINISTRACIÓN 1. Introducción 2. Procedimientos y funciones 3. Parámetros y variables 4. Instrucciones condicionales 5. Instrucciones repetitivas 6. Cursores 7. Gestión

Más detalles

Los paquetes tienen dos partes: una especificación y un cuerpo que están almacenados por separado en la base de datos.

Los paquetes tienen dos partes: una especificación y un cuerpo que están almacenados por separado en la base de datos. 8. PAQUETES DE BASE DE DATOS Los paquetes nos van a permitir agrupar conceptos PL/SQL como pueden ser tipos, procedimientos y funciones. Por ejemplo: una paquete de Contabilidad podrá contener procedimientos

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

Integridad en sistemas de bases de datos relacionales

Integridad en sistemas de bases de datos relacionales Integridad en sistemas de bases de datos relacionales Competencias específicas a adquirir Asegurar la integridad de los datos mediante la aplicación de los mecanismos soportados por los SGBDs. Identificar

Más detalles

8283: Administración y programación en Microsoft SQL Server 2012

8283: Administración y programación en Microsoft SQL Server 2012 8283: Administración y programación en Microsoft SQL Server 2012 Este curso es orientado a los profesionales en desarrollo que desean maximizar la participación de SQL Server 2012 en beneficio del desempeño

Más detalles

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

Más detalles

MS_20461 Querying Microsoft SQL Server

MS_20461 Querying Microsoft SQL Server Gold Learning Gold Business Intelligence Silver Data Plataform www.ked.com.mx Por favor no imprimas este documento si no es necesario. Introducción. Este curso proporciona a los estudiantes las habilidades

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

UNIDAD DE TRABAJO 3: PROGRAMACIÓN DE BASES DE DATOS TEMA 8: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN

UNIDAD DE TRABAJO 3: PROGRAMACIÓN DE BASES DE DATOS TEMA 8: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN UNIDAD DE TRABAJO 3: PROGRAMACIÓN DE BASES DE DATOS TEMA 8: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN 8.1. INTRODUCCIÓN AL SQL PROCEDIMENTAL Casi todos los grandes Sistemas Gestores de Datos incorporan

Más detalles

CURSORES EN SQL SERVER

CURSORES EN SQL SERVER Año del Centenario de Machu Picchu para el mundo CURSORES EN SQL SERVER Curso: IMPLEMENTACION DE BASE DE DATOS VII Ciclo Integrantes: Vásquez Paredes, Pablo Bustamante Auccasi, Janett Córdova Farfán, Carlos

Más detalles

El Lenguaje PL/SQL. Un lenguaje de propósito general orientado a la inclusión de sentencias SQL. Estructura del código PL/SQL.

El Lenguaje PL/SQL. Un lenguaje de propósito general orientado a la inclusión de sentencias SQL. Estructura del código PL/SQL. Un lenguaje de propósito general orientado a la inclusión de sentencias SQL Estructura del código PL/SQL. Bloques: El Lenguaje PL/SQL sentencias PL/SQL Los ficheros terminan con el caracter

Más detalles

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas)

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. En este

Más detalles

ADMINISTRACIÓN DE BASE DE DATOS

ADMINISTRACIÓN DE BASE DE DATOS SQL SERVER T-SQL QUERY s es ADMINISTRADOR GRÁFICO SGBD Elementos objetos Tablas Procedimientos Triggers Funciones Usuarios Permiso Roles Contraseñas Programas DTS (Data Transfer System) Exportación e Importación

Más detalles

ADMINISTRACION DE BASES DE DATOS EN ORACLE

ADMINISTRACION DE BASES DE DATOS EN ORACLE SQL LENGUAJE ESTRUCTURADO DE CONSULTA El nacimiento del lenguaje SQL data de 1970 cuando E. F. Codd publica su libro: "Un modelo de datos relacional para grandes bancos de datos compartidos". Ese libro

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

Más detalles

ÍNDICE INTRODUCCIÓN...13

ÍNDICE INTRODUCCIÓN...13 ÍNDICE INTRODUCCIÓN...13 CAPÍTULO 1. EL MODELO RELACIONAL. LENGUAJE SQL...17 1.1 INTRODUCCIÓN AL MODELO RELACIONAL...17 1.2 RELACIONES...19 1.2.1 Definición formal de relación...21 1.2.2 Propiedades y

Más detalles

SINTAXIS DE SQL-92. ::= CREATE SCHEMA [ ... ]

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ] SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO LENGUAJE DE CONSULTA ESTRUCTURADO - SQL 1. TIPOS DE DATOS 2. COMANDOS DDL 2.1 Créate 2.2 Drop 2.3 Alter 3. COMANDOS DML 3.1 Select 3.2 Insert 3.3 Update 3.4 Delete 4. CLAUSULAS 4.1 From 4.2 Where 4.3 Having

Más detalles

BASE DE DATOS TIPOS DE DATOS, VARIABLES, OPERADORES Y CONTROLES EN SQL SERVER

BASE DE DATOS TIPOS DE DATOS, VARIABLES, OPERADORES Y CONTROLES EN SQL SERVER BASE DE DATOS TIPOS DE DATOS, VARIABLES, OPERADORES Y CONTROLES EN SQL SERVER 2005 3 C O N T E N I D O 1. Tipos de datos 2. Variables 3. Operadores 4. Controles O B J E T I V O S Proporcionar al lector

Más detalles

Disparadores en ORACLE

Disparadores en ORACLE Diseño de Bases de Datos y Seguridad de la Información PL/SQL-1 PL/SQL: lenguaje de programación estructurado en bloques Bloques: unidad mínima en PL/SQL Soportan DML y DDL Anónimos / Con nombre Disparadores

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER. Duración : 35 Hrs.

Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER. Duración : 35 Hrs. Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER Duración : 35 Hrs. Sobre este curso Este curso de 5 días impartido por un instructor proporciona a estudiantes con las habilidades técnicas necesarias

Más detalles

FIREBIRD: ADMINISTRACIÓN Y SEGURIDAD

FIREBIRD: ADMINISTRACIÓN Y SEGURIDAD FIREBIRD: ADMINISTRACIÓN Y SEGURIDAD FIREBIRD: ADMINISTRACIÓN Y SEGURIDAD 1.- SEGURIDAD...1 2.- TABLAS Y VISTAS DE SISTEMA...5 3.- MONITORIZACIÓN...6 4.- CONFIGURACIÓN...8 5.- HERRAMIENTAS...9 5.1.- ISQL...9

Más detalles

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional PROGRAMAS DE ESTUDIO FORMATO 7 NOMBRE DE LA ASIGNATURA INTRODUCCIÓN A SQL CICLO, AREA O MODULO Área de Formación Profesional CLAVE DE LA ASIGNATURA IT222 OBJETIVOS GENERALES DE LA ASIGNATURA Al final del

Más detalles

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos: CONTENIDO. 1. INTRODUCCIÓN 2. TIPOS DE SENTENCIAS SQL 3. TIPOS DE DATOS 4. SQL PLUS 5. CONSULTAS DE DATOS 6. RESTRICCIÓN Y CLASIFICACIÓN DE LOS DATOS 7. FUNCIONES A NIVEL DE FILA 8. VISUALIZACIÓN DE DATOS

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

Introducción al SQL embebido

Introducción al SQL embebido Introducción al SQL embebido Bases de Datos II 1 Índice 1. Introducción. 2. Estructura típica de un programa 3. Declaración de variables. 4. Utilización de SQL embebido. Sentencias básicas Uso de cursores

Más detalles

SQL Los fundamentos del lenguaje

SQL Los fundamentos del lenguaje Introducción 1. Un poco de historia 11 2. Las normas SQL 12 3. Descripción rápida del modelo relacional 14 3.1 Principales conceptos del modelo relacional 15 3.2 Principales reglas 16 4. Los operadores

Más detalles

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL. GUIA DE LABORATORIO # 5 Nombre de la Practica: Manipulación de datos Lugar de ejecución: Centro de Computo MATERIA: Base de Datos II CICLO: 02-2012 I. OBJETIVOS ESPECIFICOS Qué el estudiante: Manipule

Más detalles

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios Protección Integridad y Seguridad Las Restricciones de Integridad aseguran que las modificaciones realizadas por usuarios autorizados no provocan perdidas de Consistencia Semántica El Control de Acceso

Más detalles

Integridad y Seguridad en los sistemas de Bases de Datos. Javier Escobar Luis Ramirez Omar Asprino

Integridad y Seguridad en los sistemas de Bases de Datos. Javier Escobar Luis Ramirez Omar Asprino Integridad y Seguridad en los sistemas de Bases de Datos Javier Escobar Luis Ramirez Omar Asprino Contenido 1. Restricciones de Integridad 1. Claves Primarias 2. Restricciones de los Dominios 3. Integridad

Más detalles

Base de datos Procedimientos Almacenados y Funciones

Base de datos Procedimientos Almacenados y Funciones Base de datos Procedimientos Almacenados y Eduardo Saavedra A. Universidad Nacional Andrés Bello 4 de noviembre de 2008 Contenidos Ventajas 1 Ventajas 2 3 4 5 Conceptos Ejemplo 6 Procedimiento Almacenado

Más detalles

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas. Vistas. El resultado de una consulta en el caso de SQL siempre es una tabla, ésta se puede hacer permanente dentro de la base de datos. En este caso se dice que esta tabla resultado es una vista o una

Más detalles

Lic. Vladimir Cotaquispe Gutierrez PROGRAMACIÓN PL/SQL I - 1. Copyright 2008, Oracle. All rights reserved.

Lic. Vladimir Cotaquispe Gutierrez PROGRAMACIÓN PL/SQL I - 1. Copyright 2008, Oracle. All rights reserved. Lic. Vladimir Cotaquispe Gutierrez PROGRAMACIÓN PL/SQL I - 1 INTRODUCCIÓN PL/SQL: Lenguaje de programación procedimental estructurado en bloques que amplía el lenguaje estándar SQL. Permite: Manipular

Más detalles

Entrarás a formar parte de nuestra bolsa de empleo a la que acuden las empresas en busca de nuestros alumnos.

Entrarás a formar parte de nuestra bolsa de empleo a la que acuden las empresas en busca de nuestros alumnos. CURSO PROFESIONAL DE TRANSACT-SQL MÁSTER EN DESARROLLO DE APLICACIONES WEB CON JAVA ENTERPRISE EDITION Precio: 450 Euros y Matrícula Gratis. Modalidad: Presencial en nuestras aulas. Valores añadidos: Nuestro

Más detalles

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000 Creación de la base de Datos Pulsamos F5 para Actualizar, y una vez posicionados en nuestra base de datos,se crean los scripts que seran soportados por el

Más detalles

SQL SQL. Índice. Componentes. Objetivos

SQL SQL. Índice. Componentes. Objetivos Estándar En 1986, ANSI (American National Standard Institute) definión un estándar para (Structured Query Language) que fue posteriormente adoptado en 1987 como estándar internacional por ISO (International

Más detalles

Fundamentos de Oracle

Fundamentos de Oracle Fundamentos de Oracle Introducción Este curso de 40 horas de duración ofrece a los asistentes los conocimientos necesarios para trabajar con el servidor de bases de datos empresarial Oracle 10g, centrándose

Más detalles

Curso SQL Nivel Avanzado 1. Miguel Jurado García

Curso SQL Nivel Avanzado 1. Miguel Jurado García Curso SQL Nivel Avanzado 1 Miguel Jurado García Temario Sesión 1: 1- Elementos de Sintaxis Uso de Variables Collation y las Fechas Construcción de Sentencias Dinámicas 2- SQL Server Management Studio Filtrado

Más detalles

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES Tema 6. CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES TRANSACCIONES Una transacción es una unidad lógica de trabajo o procesamiento (ejecución de un programa que incluye operaciones de acceso a la base de

Más detalles

Scripting en el cliente: Javascript. Tecnologías Web

Scripting en el cliente: Javascript. Tecnologías Web Scripting en el cliente: Javascript Tecnologías Web Motivación Por qué usar JavaScript? Permite crear efectos atractivos visualmente Permite crear sitios WEB que se visualicen de la misma manera en distintos

Más detalles

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5 APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5 APLICACIONES WEB BASADAS EN PHP Y MYSQL Una aplicación web es básicamente un programa escrito sobre una página web, generalmente en lenguaje

Más detalles

EL ENTORNO DE TRABAJO SQL ORACLE

EL ENTORNO DE TRABAJO SQL ORACLE PREVIO 2 EL ENTORNO DE TRABAJO SQL ORACLE Y LENGUAJE DE DEFINICIÓN DE DATOS DDL) INTRODUCCIÓN A ORACLE Oracle10g es de las últimas versiones de esté manejador de base de datos, incorpora la tecnología

Más detalles

Bases de Datos Relacionales

Bases de Datos Relacionales Bases de Datos Relacionales PROCEDIMIENTOS ALMACENADOS Preparó: Ismael Castañeda Fuentes Fuentes: Manuales Sybase Manuales SQL Server Manuales Oracle Procedimientos almacenados Un procedimiento almacenado

Más detalles

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva INDICE Prólogo XXIII Por qué este libro es para usted XXVII Primera Parte. Panorámica general de SQL 1 1. Introducción 3 El lenguaje SQL 3 El papel de SQL 6 Características y beneficios de SQL 7 Independencia

Más detalles

Bases de Datos SEGURIDAD E INTEGRIDAD EN BASES DE DATOS. Ejemplo del Lado del servidor

Bases de Datos SEGURIDAD E INTEGRIDAD EN BASES DE DATOS. Ejemplo del Lado del servidor Bases de Datos SEGURIDAD E INTEGRIDAD EN BASES DE DATOS Ejemplo del Lado del servidor Aplicación de conceptos: Se hizo referencia a los elementos que poseen los Sistemas de Gestión de Bases de Datos (SGBD)

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE IGNATURA NOMBRE DE LA IGNATURA LSC 2009-2 12001 Administración de Bases de Datos PRÁCTICA No. 5 LABORATORIO DE NOMBRE DE LA PRÁCTICA

Más detalles

Disparadores en Oracle (Ejemplos Prácticos)

Disparadores en Oracle (Ejemplos Prácticos) Asignatura: Base de Datos Titulación: Ingeniería Informática Curso: 4º Disparadores en Oracle (Ejemplos Prácticos) Nota: Recuerde guardar los scripts, utilice para ello un editor de texto. Triggers DML

Más detalles

PL/SQL. DECLARE /* Parte Declarativa */ BEGIN /* Parte de Ejecución */ EXCEPTION /* Parte de Excepciones */ END;

PL/SQL. DECLARE /* Parte Declarativa */ BEGIN /* Parte de Ejecución */ EXCEPTION /* Parte de Excepciones */ END; 18 de marzo de 2002 1 1. Declaraciones Variables y constantes Cursores Excepciones 2. Instrucciones Asignación Control de flujo Bucles 3. Manejadores de excepciones 4. Anidamiento de bloques 5. Tipos de

Más detalles

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES EL LENGUAJE SQL. INSTRUCCIONES DE DEFINICIÓN DE. INSTRUCCIONES DE INSERCIÓN, MODIFICACIÓN Y BORRADO.. CREACIÓN Y UTILIZACIÓN DE VISTAS... PROCEDIMIENTOS. EL LENGUAJE SQL 1 EL LENGUAJE SQL 2 SQL ES UN LENGUAJE

Más detalles

Procedimientos Almacenados con InterBase

Procedimientos Almacenados con InterBase Procedimientos Almacenados con InterBase Por Alfonso Ricaño Bringas Los Procedimientos Almacenados son otra característica interesante con la que cuenta InterBase. En este artículo muestro una introducción

Más detalles

Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005)

Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005) Disparadores en ORACLE Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005) Oracle Database Application Developer's Guide Fundamentals 10g Release 2 (10.2) (Noviembre 2005) Óscar

Más detalles

Los disparadores pueden ser utilizados para cumplir con alguna de las siguientes tareas:

Los disparadores pueden ser utilizados para cumplir con alguna de las siguientes tareas: Guía de Disparadores Un disparador (o trigger) es un procedimiento almacenado asociado a una tabla que se ejecuta al realizar una operación básica (INSERT, un DELETE o un UPDATE) sobre ésta. La operación

Más detalles

Dirigido a Profesionales y técnicos de informática que se inicien en el manejo de la base de datos Oracle 11g

Dirigido a Profesionales y técnicos de informática que se inicien en el manejo de la base de datos Oracle 11g El temario se divide en tres partes: Parte I. Lenguaje SQL Lenguaje SQL Objetivos Conocer los componentes de las bases de datos relacionales Obtener los conocimientos del lenguaje SQL para el manejo de

Más detalles

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador Prefacio 1. Objetivos de este libro 13 2. Principales temas tratados en este libro 13 3. A quién va dirigido este libro? 14 4. Requisitos 14 Introducción a MySQL 1. Introducción a las bases de datos relacionales

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

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL 1. Conexión con la Base de Datos: se debe realizar a partir de algún programa que implemente el protocolo SSH (Secure Shell), a partir

Más detalles

Otros objetos de Base de Datos

Otros objetos de Base de Datos Maestría en Bioinformática Bases de Datos y Sistemas de Información Otros objetos de Base de Datos Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Secuencias Triggers Vistas Código almacenado

Más detalles

Tema 6. Restricciones a la Base de Datos: Integridad y seguridad

Tema 6. Restricciones a la Base de Datos: Integridad y seguridad Tema 6. Restricciones a la Base de Datos: Integridad y seguridad Juan Ignacio Rodríguez de León Resumen Las restricciones desde el punto de vista de integridad de bases de datos. se presentan dependencias

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles