Sunteți pe pagina 1din 28

Marta Zorrilla Universidad de Cantabria

Dra. Marta E. Zorrilla


Departamento de Matemtica Aplicada y Ciencias de la Computacin
Universidad de Cantabria
Bases de Datos Relacionales.
Conceptos y consideraciones para su uso.
Bases de Datos Relacionales.
Conceptos y consideraciones para su uso.
Marta Zorrilla Universidad de Cantabria
Bases de Datos. Finalidad
Bases de Datos. Finalidad Bases de Datos. Finalidad
Base de Datos Base de Datos: coleccin organizada de datos, relativa a un problema concreto,
que puede ser compartida por un conjunto de usuarios/aplicaciones.
CONTROLAR
INFORMACIN
ALMACENAR
CONSULTAR
ACTUALIZAR
DATOS
RELACIONES
RESTRICCIONES
DATOS
RELACIONES
RESTRICCIONES
Sistema Gestor de Bases de Datos Sistema Gestor de Bases de Datos:
programa o conjunto de programas
que sirve para mantener bases de datos
y responder consultas sobre ellas.
Marta Zorrilla Universidad de Cantabria
Niveles de abstraccin
Niveles de abstraccin Niveles de abstraccin
Programa 1
Programa 1
Programa 2
Programa 2
Programa n
Programa n
Sistema
Gestor de
Bases de Datos
(SGBD)
Nivel Lgico
Nivel Interno
Vista A
La finalidad de trabajar con tcnicas de BD es disfrutar de
una visin abstracta de los datos que facilite el desarrollo y
uso de aplicaciones.
Marta Zorrilla Universidad de Cantabria
Bases de Datos. Justificacin
Bases de Datos. Bases de Datos. Justificacin Justificacin

Optimizacin en la gestin de la informacin.


Flexibilidad de adaptacin a cada problema.
Control de la integridad de los datos.
Garanta sobre la consistencia de la informacin.
Facilidad de acceso concurrente.
Independencia fsica y lgica de los datos.
Seguridad ante accesos restringidos.
Proteccin ante fallos del sistema.
Marta Zorrilla Universidad de Cantabria
Modelo Relacional I
Modelo Relacional I Modelo Relacional I
NOMBRE PROFESION LOCALIDAD
Pedro
Luis
Mara
Ana
profesor
estudiante
estudiante
estudiante
Santander
Santander
Las Palmas
Madrid
Personal
NOMBRE LOCALIDAD
Luis
Mara
Ana
Santander
Las Palmas
Madrid
SELECT NOMBRE, LOCALIDAD FROM Personal
WHERE PROFESION = estudiante
Los datos se conciben agrupados en forma de tablas
Cada fila establece una relacin entre un conjunto
de valores
Operadores generan nuevas tablas
Marta Zorrilla Universidad de Cantabria
Modelo Relacional II
Modelo Relacional II Modelo Relacional II
ENTIDAD NOMBRE
POBLACION DIRECCION
0893 Santander
0059 Popular
3428 Bilbao Vizcaya
5632 Banesto
BANCOS
OFICINAS
0893 001 Madrid Castellana, 73
3428 022 Las Palmas Triana, 21
0893 022 Gldar R. Moreno, 3
5632 213 Oviedo Ura, 43
0893 300 Barcelona Diagonal, 435
Toda tabla tiene una columna o conjunto de columnas
que permiten identificar cada una de sus filas; stas
componen la llamada clave principal de la tabla.
Los valores de la clave principal no se pueden repetir.
Unas tablas se refieren a otras
mediante vnculos de tipo
jerrquico.
Este vnculo de referencia
entre dos tablas se establece
mediante columnas de idnticos
tipos de datos en las dos tablas.
La referencia de una fila de una tabla a otra de la otra
tabla se produce cuando ambas tienen el mismo valor.
ENTIDAD CODIGO_OFICINA
Marta Zorrilla Universidad de Cantabria
Tipos de datos
Tipos de datos Tipos de datos
Tipos de datos
Tipos de datos
Cadena de caracteres (character string).
Numrico (numeric).
Fecha y hora (datetime).
Objeto grande (largeobject).
Otros.
Cada carcter requiere un bytepara su almacenamiento.
Enteros: Cortos (ocupan 2 bytes).
Largos (ocupan 4 bytes).
Decimales: definidos por su precisin y escala.
Notacin cientfica: Simple precisin (ocupan 4 bytes).
Doble precisin (ocupan 8 bytes).
Diferentes opciones segn nivel de precisin.
Binarylargeobject.
Character largeobject.
Marta Zorrilla Universidad de Cantabria
ndices
ndices ndices
Cod_art Descripcin
WRD
ACC Access-97
Word-97
EXC
ACC Acces-2002
Excel-2000
... ...
ARTCULOS
Versin
97
97
2000
2002
...
Unidades
50
4
...
LNEAS_DE_PEDIDO
Num_ped
742
742
742
...
Cod_art
ACC
EXC
WRD
ACC
...
Versin
2002
2000
97
2002
...
Num_lin
1
2
3
1
...
30
849 30
Cod_art
WRD
ACC
EXC
ACC
...
Versin
97
97
2000
2002
...
ndice de unicidad
Cod_art
WRD
ACC
EXC
ACC
...
Versin
97
2002
2000
2002
...
ndice con repeticiones
Cod_art Descripcin
WRD
ACC Access-97
Word-97
EXC
ACC Acces-2002
Excel-2000
... ...
Num_ped Fecha_ped
742
849 10-8-2002
5-7-2002
860 11-8-2002
... ...
PEDIDOS ARTCULOS
Unidades
50
4
...
LNEAS_DE_PEDIDO
Versin
97
97
2000
2002
...
Num_ped
742
742
742
...
Cod_art
ACC
EXC
WRD
ACC
...
Versin
2002
2000
97
2002
...
Num_lin
1
2
3
1
...
30
849 30
Marta Zorrilla Universidad de Cantabria
El problema del diseo I
El problema del diseo I El problema del diseo I
PROPIETARIOS: DNI LOCALES: CODIGO
NOMBRE UBICACION
DIRECCION SUPERFICIE
PROPIETARIOS: DNI LOCALES: CODIGO
NOMBRE UBICACION
DIRECCION SUPERFICIE
Ejemplo aclaratorio
Repeticin de informacin
Posibilidad de contradicciones en los datos
Problemas en inserciones
Prdida de informacin al borrar
Repeticin de informacin
Posibilidad de contradicciones en los datos
Problemas en inserciones
Prdida de informacin al borrar
Problemas del diseo
Primera alternativa
DNI NOMBRE DIRECCION CODIGO UBICACION SUPERFICIE
Locales_propietarios
Marta Zorrilla Universidad de Cantabria
El problema del diseo II
El problema del diseo II El problema del diseo II
Prdida de dependencias funcionales
Prdida de dependencias funcionales
Problemas del diseo
Segunda alternativa
DNI NOMBRE DIRECCION
Propietarios
CODIGO UBICACION SUPERFICIE
Locales
Marta Zorrilla Universidad de Cantabria
El problema del diseo III
El problema del diseo III El problema del diseo III
Slo un propietario para cada local
Slo un propietario para cada local
Problemas del diseo
Tercera alternativa
DNI NOMBRE DIRECCION
Propietarios
CODIGO UBICACION SUPERFICIE DNI
Locales
Marta Zorrilla Universidad de Cantabria
El problema del diseo IV
El problema del diseo IV El problema del diseo IV
La referencia entre tablas siempre es una relacin de 1 a n o de n a 1
Si se desea que un propietario pueda tener varios locales y, al mismo tiempo, que un
local pueda se de varios propietarios, la relacin es simtrica, es de n a n y no
puede ser resuelta con slo dos tablas. Para conseguirlo, es necesario introducir una
tabla auxiliar que tenga relaciones de de n a 1 con las de propietarios y locales.
Un propietario puede tener varios locales (n) mientras
que un local slo puede ser de un propietario (1).
Tercera alternativa
DNI NOMBRE DIRECCION
Propietarios
CODIGO UBICACION SUPERFICIE DNI
Locales
Cuarta alternativa
DNI NOMBRE DIRECCION
CODIGO UBICACION SUPERFICIE CODIGO DNI
Propietarios
Propiedad Locales
Marta Zorrilla Universidad de Cantabria
El lenguaje SQL I
El lenguaje SQL I El lenguaje SQL I
SQL (StructuredQueryLanguage)
SQL (StructuredQueryLanguage)
Lenguaje declarativo de acceso a los datos.
Estndar para las bases de datos relacionales.
Incluye la capacidad de actuar tanto sobre la estructura de la base
de datos como sobre sus propios datos.
Desarrollado en el San J os ResearchCenter (IBM)
Fue utilizado por primera vez en 1970.
En 1986: ANSI (AmericanNational StandardsInstitute) e
ISO (International StandardsOrganization)
publicaron las normas SQL/ANSI y SQL-86.
sta tuvo dos actualizaciones: SQL-89 y SQL-92
En la actualidad, se trabaja con el SQL:1999 (parte del SQL3)
y se est elaborando el SQL4
Marta Zorrilla Universidad de Cantabria
El lenguaje SQL II
El lenguaje SQL II El lenguaje SQL II
CREATE DATABASE GESTION;
CREATE TABLE PROPIETARIOS
(DNI CHAR(10) NOT NULL CONSTRAINT pk_prop PRIMARY KEY,
NOMBRE CHAR(25) NOT NULL,
DIRECCION CHAR(30));
CREATE TABLE LOCALES
(CODIGO CHAR(5) NOT NULL CONSTRAINT pk_loc PRIMARY KEY,
DNI CHAR(10) NOT NULL,
UBICACION CHAR(4) NOT NULL,
SUPERFICIE DEC(8,2) NOT NULL,
CONSTRAINT fk_loc FOREIGN KEY ( DNI ) REFERENCES PROPIETARIOS ( DNI ));
CREATE DATABASE GESTION;
CREATE TABLE PROPIETARIOS
(DNI CHAR(10) NOT NULL CONSTRAINT pk_prop PRIMARY KEY,
NOMBRE CHAR(25) NOT NULL,
DIRECCION CHAR(30));
CREATE TABLE LOCALES
(CODIGO CHAR(5) NOT NULL CONSTRAINT pk_loc PRIMARY KEY,
DNI CHAR(10) NOT NULL,
UBICACION CHAR(4) NOT NULL,
SUPERFICIE DEC(8,2) NOT NULL,
CONSTRAINT fk_loc FOREIGN KEY ( DNI ) REFERENCES PROPIETARIOS ( DNI ));
Definicin de datos. Ejemplo:
DNI NOMBRE DIRECCION
PROPIETARIOS
CODIGO UBICACION SUPERFICIE DNI
LOCALES
Marta Zorrilla Universidad de Cantabria
El lenguaje SQL III
El lenguaje SQL III El lenguaje SQL III
INSERT INTO PROPIETARIOS (DNI, NOMBRE, DIRECCION)
VALUES (13234567R, Sanz, Luis, Gran Va 26)
INSERT INTO PROPIETARIOS (DNI, NOMBRE, DIRECCION)
VALUES (13234567R, Sanz, Luis, Gran Va 26) PROPIETARIOS
DNI
NOMBRE
DIRECCION
LOCALES
CODIGO
DNI
UBICACION
SUPERFICIE
Insertar una nueva fila en la tabla PROPIETARIOS
SELECT CODIGO, UBICACION, NOMBRE, DIRECCION
FROM LOCALES, PROPIETARIOS
WHERE LOCALES.DNI = PROPIETARIOS.DNI AND
SUPERFICIE > 200
SELECT CODIGO, UBICACION, NOMBRE, DIRECCION
FROM LOCALES, PROPIETARIOS
WHERE LOCALES.DNI = PROPIETARIOS.DNI AND
SUPERFICIE > 200
Encontrar los locales con superficie mayor que 200 y su propietario
CODIGO UBICACION NOMBRE DIRECCION
L-31 Alta 236 Sanz, Luis Gran Va 26
L-234 Bailn 46 Laso, Ana Isabel II 38
L-9 Cuesta 2 Sanz , Luis Gran Va 26
L-302 Becedo 10 Fe, Pedro
Resultado
UPDATE PROPIETARIOS
SET DIRECCION =Alta 87
WHERE DNI = 20333444F
UPDATE PROPIETARIOS
SET DIRECCION =Alta 87
WHERE DNI = 20333444F
Modificar la direccin del propietario cuyo D.N.I. es 20333444F
DELETE FROM LOCALES
WHERE CODIGO = L-234
DELETE FROM LOCALES
WHERE CODIGO = L-234
Borrar el local de cdigo L-234
Manipulacin de datos. Ejemplos:
Marta Zorrilla Universidad de Cantabria
Otras restricciones I
Otras restricciones I Otras restricciones I
CREATE TABLE J UGADORES
(DNI CHAR(10) NOT NULL,
NOMBRE CHAR(25) NOT NULL,
DIRECCION CHAR(30) NOT NULL,
TELEFONO CHAR(15),
SEXO CHAR(1) CHECK ( SEXO in ( M , F ) NOT NULL,
FE_ALTA DATE DEFAULT today NOT NULL,
ESTATURA DEC(3,2)
CONSTRAINT Valor_estatura CHECK (ESTATURA >1,75)
PRIMARY KEY ( DNI ));
CREATE TABLE J UGADORES
(DNI CHAR(10) NOT NULL,
NOMBRE CHAR(25) NOT NULL,
DIRECCION CHAR(30) NOT NULL,
TELEFONO CHAR(15),
SEXO CHAR(1) CHECK ( SEXO in ( M , F ) NOT NULL,
FE_ALTA DATE DEFAULT today NOT NULL,
ESTATURA DEC(3,2)
CONSTRAINT Valor_estatura CHECK (ESTATURA >1,75)
PRIMARY KEY ( DNI ));
Otras restricciones:
Otras restricciones Otras restricciones:
- Valores requeridos
- Dominio de valores
- Valor por defecto
CREATE DOMAIN Estatura DEC(3,2)
CONSTRAINT Valor_estatura CHECK (Estatura >1,75)
Mediante la instruccin CREATE DOMAIN se pueden definir un tipo de dato de
usuario a partir de un tipo de dato estndar (no la incluyen todos los gestores)
Marta Zorrilla Universidad de Cantabria
Otras restricciones II
Otras restricciones II Otras restricciones II
Ejemplo: para cada fila de la tabla
LOCALES, los valores de DNI_propietario
y DNI_arrendatario no pueden ser iguales.
Codigo
DNI_propietario
DNI_arrendatario
Ubicacion
Superficie
DNI
Nombre
Direccion
PERSONAS LOCALES
X
Reglas de negocio
ALTER TABLE LOCALES WITH NOCHECK ADD
CONSTRAINT CK_locales CHECK (DNI_propietario <> DNI_arrendatario)
Los triggers son procesos predefinidos que entran en accin en respuesta a eventos
especficos de manipulacin de datos.
Codigo DNI_propietario DNI_arrendatario Ubicacion Superficie
L-31
L-234
L-9
L-302
Alta 236
Bailn 46
Cuesta 2
Becedo 10
220
350
280
255
50501502
40401402
30301302
40401402
60601602
50501502
70701702
60601602
LOCALES
UPDATE LOCALES SET DNI_propietario ='60601602'
WHERE DNI_propietario ='40401402'
Marta Zorrilla Universidad de Cantabria
CREATE TRIGGER CTRL_locales ON LOCALES FOR INSERT, UPDATE AS
DECLARE @numint
SELECT @num=count(*) FROM inserted I
WHERE I.dni_propietario=I.dni_arrendatario
IF (@num>0)
BEGIN
RAISERROR ('El DNI del propietario no puede coincidir con el DNI del Arrendatario.', 16, 1)
goto on_error
END
GoTo fin
on_error:
ROLLBACK TRANSACTION
fin:
CREATE TRIGGER CTRL_locales ON LOCALES FOR INSERT, UPDATE AS
DECLARE @numint
SELECT @num=count(*) FROM inserted I
WHERE I.dni_propietario=I.dni_arrendatario
IF (@num>0)
BEGIN
RAISERROR ('El DNI del propietario no puede coincidir con el DNI del Arrendatario.', 16, 1)
goto on_error
END
GoTo fin
on_error:
ROLLBACK TRANSACTION
fin:
Codigo DNI_propietario DNI_arrendatario Ubicacion Superficie
L-234
L-302
Bailn 46
Becedo 10
350
255
60601602
60601602
50501502
60601602
inserted
UPDATE LOCALES
SET DNI_propietario ='60601602'
WHERE DNI_propietario ='40401402'
UPDATE LOCALES
SET DNI_propietario ='60601602'
WHERE DNI_propietario ='40401402'
Ejemplo de trigger SQL SERVER
Ejemplo de Ejemplo de trigger trigger SQL SERVER SQL SERVER
Marta Zorrilla Universidad de Cantabria
Transacciones I
Transacciones I Transacciones I
BEGIN WORK
INSERT INTO BANCOS( ENTIDAD, NOMBRE )
VALUES ( 3322 , BSCH )
UPDATE OFICINAS
SET ENTIDAD= 3322
WHERE ENTIDAD= 0893
DELETE FROM BANCOS
WHERE ENTIDAD= 0893
Si no ha habido ningn error
COMMIT WORK
Y si ha habido algn error
ROLLBACK WORK
Transaccin: conjunto de
operaciones de manipulacin de
datos que deben ser consideradas
como una unidad.
ENTIDAD NOMBRE
ENTIDAD CODIGO_OFICINA POBLACION DIRECCION
0893 Santander
0059 Popular
3428 Bilbao Vizcaya
5632 Banesto
BANCOS
OFICINAS
0893 001 Madrid Castellana, 73
3428 022 Las Palmas Triana, 21
0893 022 Gldar R. Moreno, 3
5632 213 Oviedo Ura, 43
0893 300 Barcelona Diagonal, 435
Ejemplo: Eliminar el Banco Santander
de la base de datos y asignar todas sus
oficinas a una nueva entidad bancaria, el
BSCH, cuyo cdigo de entidad es el 3322
Propiedades:
ATOMICIDAD: todo o nada
CONSISTENCIA: coherencia de los datos
AISLAMIENTO: serializacin de transacciones
DURABILIDAD: los cambios son permanentes
Gestor de transacciones
Gestor de concurrencia
Marta Zorrilla Universidad de Cantabria
Transacciones II
Transacciones II Transacciones II
Inicio de transaccin
K = 1
Bloqueo de los datos afectados por la instruccin K
Apunte de la instruccin en el dispositivo LOG
Se puede ejecutar
la instruccin K?
K = n?
K = K+1
Desbloqueo de datos
Ejecucin de las instrucciones del dispositivo LOG
Desbloqueo de datos
Fin de transaccin
( con error )
Fin de transaccin
( sin error )
SI
NO
SI
NO
Marta Zorrilla Universidad de Cantabria
Aplicaciones de usuario
Aplicaciones de usuario Aplicaciones de usuario
En el caso de Programacin Centralizada las aplicaciones de usuario residen
en un solo sistema, en donde se ejecutan. El usuario accede mediante terminales
remotas o mediante PCs que emulan el funcionamiento de estas terminales.
El acceso a la la base de datos puede realizarse mediante:
Instrucciones SQL.
Utilidades de manipulacin de datos, sin escribir instruccionesSQL.
Aplicaciones desarrolladas expresamente para cada caso.
Mdulos de procesamiento
Pantallas y ventanas
stas presentan tres aspectos complementarios pero bien diferenciados:
La interfaz de comunicacin con el usuario.
La lgica de funcionamiento.
Gestin de datos de acuerdo al esquema relacional.
Mdulos de procesamiento desarrollados mediante:
Lenguajes de 3 generacin (C, Cobol, etc.), con instrucciones SQL embebidas.
Lenguajes de 4 generacin, 4GL (ms declarativos y orientados a datos).
Marta Zorrilla Universidad de Cantabria
Presentacin
Presentacin
(campos de pantalla) (campos de pantalla)
Flujo de los datos
Flujo de los datos Flujo de los datos
persona.dni
persona.nombre
persona.direccion
persona.telefono
persona.dni
persona.nombre
persona.direccion
persona.telefono
variable.dni
variable.nombre
variable.direccion
variable.telefono
variable.dni
variable.nombre
variable.direccion
variable.telefono
persona.dni
persona.nombre
persona.direccion
persona.telefono
persona.dni
persona.nombre
persona.direccion
persona.telefono
1
2
3
4
Procesamiento
Procesamiento
(variables) (variables)
Base de Datos
Base de Datos
(columnas) (columnas)
1.- Lectura de campos de la pantalla
2.- Instruccin SQL (INSERT, UPDATE, DELETE, SELECT, ...)
3.- Resultado de la instruccin SQL
4.- Volcado a campos de la pantalla
Marta Zorrilla Universidad de Cantabria
Modelos Cliente/Servidor
Modelos Cliente/Servidor Modelos Cliente/Servidor
Descargar de trabajo al ordenador central.
Aprovechar las capacidades de los PCs.
Programacin
Cliente/Servidor
Gestin de datos
Gestin de datos
Cliente
Cliente
Servidor
Servidor
Centralizado Centralizado
Presentacin Presentacin
remota remota
Proceso Proceso
distribuido distribuido
Acceso a datos Acceso a datos
remotos remotos
Bases de Datos Bases de Datos
distribuidas distribuidas
Gestin de datos
Gestin de datos
Gestin de datos
Gestin de datos
Gestin de datos
Gestin de datos
Gestin de datos
Gestin de datos
Gestin de datos
Gestin de datos
Procesamiento
Procesamiento
Procesamiento
Procesamiento
Procesamiento
Procesamiento
Procesamiento
Procesamiento
Presentacin
Presentacin
Presentacin
Presentacin
Presentacin Presentacin
distribuida distribuida
Gestin de datos
Gestin de datos
Procesamiento
Procesamiento
Procesamiento
Procesamiento
Presentacin
Presentacin
Presentacin
Presentacin
Procesamiento
Procesamiento
Presentacin
Presentacin
Presentacin
Presentacin
Presentacin
Presentacin
Marta Zorrilla Universidad de Cantabria
Aplicaciones
Middleware
Protocolo de
comunicaciones
Hardware
Datos y procesos
Middleware
Hardware
CLIENTE
SERVIDOR
Protocolo de
comunicaciones
C/S en dos niveles
C/S en dos niveles C/S en dos niveles
La aplicacin del cliente ha de comunicarse con el software de gestin de datos del
servidor.
Necesidad de otros componentes de software que proporcionen la capacidad de
interaccin en entornos que pueden ser heterogneos, el Middleware.
Middleware: Todo software distribuido necesario para la interaccin entre clientes y
servidores. Puede ser propietario del gestor de bases de datos que se utilice o estndar.
ODBC (Open Database Connectivity) interfaz escrita en C
JDBC para acceder a fuente de datos desde el lenguaje de programacin Java.
DAO: Modelo de objetos para hacer uso de esta tecnologa.
OLEDB acceso a cualquier fuente de datos (base de datos, hojas de clculo,...)
ADO Modelo de objetos para hacer uso de esta tecnologa.
Marta Zorrilla Universidad de Cantabria
Presentacin
Middleware
Protocolo de
comunicaciones
Hardware
Procesamiento
Middleware
Hardware
CLIENTE
SERVIDOR DE
TRANSACCIONES
Protocolo de
comunicaciones
C/S en tres niveles
C/S en tres niveles C/S en tres niveles
Gestin de datos
Middleware
Hardware
SERVIDOR
DE DATOS
Protocolo de
comunicaciones
Marta Zorrilla Universidad de Cantabria
Arquitectura de un sistema de bases de datos en la Web
Arquitectura de un sistema de bases de datos en la Web Arquitectura de un sistema de bases de datos en la Web
Tcnicas para el acceso a bases de datos en la Web:
Programacin CGI
La interfaz CGI permite ejecutar programas en el servidor web Se denomina CGI (interfaz de pasarela
comn) al conjunto de normas que rigen la interaccin entre los servidores HTTP y un conjunto de
programas especiales que se ejecutan en el servidor, destinados a procesar la informacin que envan
los clientes Web y generar documentos (generalmente HTML) de forma dinmica, a partir de esa
informacin y de otra almacenada del servidor.
Scripts de servidor
Son scripts que se ejecutan en el servidor web y, por tanto, pueden interactuar con cualquier aplicacin
instalada en el mismo, y en particular con los gestores de bases de datos. Por ejemplo:
ASP (Active Server Pages) de Microsoft, basadas en VBScript o J Script.
J SP (J ava Server Pages) de Sun, basadas en J ava.
ColdFusion de Allaire.
PHP de Open Source, organismo dedicado a la difusin de programas de dominio pblico.
Cada uno de ellos requiere su propio servidor de aplicaciones para el procesamiento de los scripts.
Marta Zorrilla Universidad de Cantabria
Procedimientos almacenados: MySQL
Procedimientos almacenados: Procedimientos almacenados: MySQL MySQL
delimiter //
CREATE PROCEDURE upd_precio (IN ipc DECIMAL(3,1))
BEGIN
UPDATE articulos SET precio= precio + (precio * ipc/100)
WHERE precio is not null;
END;
//
delimiter ;
delimiter //
CREATE PROCEDURE upd_precio (IN ipc DECIMAL(3,1))
BEGIN
UPDATE articulos SET precio= precio + (precio * ipc/100)
WHERE precio is not null;
END;
//
delimiter ;
Ejemplo: actualizar los precios de los artculos con el IPC
CALL upd_precio (10.0);
Marta Zorrilla Universidad de Cantabria
Funciones almacenadas: MySQL
Funciones almacenadas: Funciones almacenadas: MySQL MySQL
delimiter //
CREATE FUNCTION hello (s CHAR(20))
RETURNS CHAR(50)
RETURN CONCAT('Hello, ',s,'!');
//
delimiter ;
delimiter //
CREATE FUNCTION hello (s CHAR(20))
RETURNS CHAR(50)
RETURN CONCAT('Hello, ',s,'!');
//
delimiter ;
Ejemplo: Saluda al usuario que se le indique
SELECT hello('Marta');
Pueden ser llamadas dentro de una instruccin SQL

S-ar putea să vă placă și