Programación en Bases de Datos
Profesor: Dr. Herman Aguilar Mayo Estudiante: Juan Pablo Badal Arias Materia: Programación en Bases de Datos (Grupo 6A8) Fecha: 25/03/2019 División Académica: Informática y Sistemas Carrera Profesional: Licenciado en Sistemas Computacionales
Ejercicios
1
Programación en Bases de Datos
2
Contenido CAPITULO 1 ............................................................................................................................ 4 Suma (n1, n2) ............................................................................................................................ 4 ANEXO A. Suma .................................................................................................................... 5 Es primo (n)............................................................................................................................... 6 ANEXO B. Primo .................................................................................................................... 7 Factorial (n) ............................................................................................................................... 8 ANEXO C. Factorial ............................................................................................................... 9 Factorial Recursiva (n) .......................................................................................................... 10 ANEXO D. Factorial Recursiva ............................................................................................ 11 Sumatoria (n) .......................................................................................................................... 12 ANEXO E. Sumatoria ........................................................................................................... 13 Sumatoria Recursiva (n) ........................................................................................................ 14 ANEXO F. Sumatoria Recursiva .......................................................................................... 15 Es par (n) ................................................................................................................................. 16 ANEXO G. Par ...................................................................................................................... 17 Máximo Común Divisor (n1, n2) .......................................................................................... 18 ANEXO H. Máximo Común Divisor .................................................................................... 19 Máximo Común Divisor Recursivo (n1, n2) ........................................................................ 20 ANEXO I. Máximo Común Divisor Recursivo .................................................................... 21 Es Palíndromo ......................................................................................................................... 22 ANEXO J. Palíndromo .......................................................................................................... 23 Vocal Interna .......................................................................................................................... 24 ANEXO K. Vocal Interna ..................................................................................................... 25
Ejercicios
Programación en Bases de Datos
3
Consonante Interna ................................................................................................................ 26 ANEXO L. Consonante Interna ............................................................................................ 27 CAPITULO 2 .......................................................................................................................... 28 Modelo ..................................................................................................................................... 28 DDL ....................................................................................................................................... 29 CAPITULO 3 .......................................................................................................................... 41 Esquema .................................................................................................................................. 41 PRIMERA CORRIDA .......................................................................................................... 46 SEGUNDA CORRIDA ......................................................................................................... 59 CAPITULO 4 .......................................................................................................................... 71 Autenticar ................................................................................................................................ 71 Especificación........................................................................................................................ 73 PRIMERA CORRIDA .......................................................................................................... 80 SEGUNDA CORRIDA CON PASSWORD INCORRECTO .............................................. 84 Curp1 ....................................................................................................................................... 88 Especificación........................................................................................................................ 90 CORRIDA DE LA CURP ..................................................................................................... 95 Curp2 ....................................................................................................................................... 97 Especificación........................................................................................................................ 99 CALCULAR CURP DE LA MUJER ................................................................................. 104 CALCULAR CURP DEL HOMBRE ................................................................................. 106
Ejercicios
Programación en Bases de Datos CAPITULO 1 Suma (n1, n2) create or replace FUNCTION SUMAR_NUMEROS ( Z IN NUMBER , W IN NUMBER ) RETURN NUMBER AS
/*Se declaran las variables*/ Calcular NUMBER;
BEGIN
/*Se declara la operación*/ Calcular := Z + W;
/*Returna el valor*/ RETURN calcular; END SUMAR_NUMEROS;
Ejercicios
4
Programación en Bases de Datos ANEXO A. Suma
Ejercicios
5
Programación en Bases de Datos
Es primo (n) create or replace FUNCTION PRIMO ( Z IN NUMBER ) RETURN VARCHAR2 AS var1 varchar(20); BEGIN /*Se declara una condición donde a Z sera menos 1*/ FOR I IN 2..Z-1 LOOP /*Devuelve el resto de dividir Z entre I*/ IF MOD(Z,I)=0 THEN VAR1:='NO ES PRIMO'; /*Goto es una sentencia que desvia el flujo de la ejecución*/ GOTO paso1; ELSE VAR1:='ES PRIMO'; /*Se finaliza el ciclo FOR Y IF*/ END IF; END LOOP; /*Termina la ejecución de GOTO*/ <<paso1>> RETURN VAR1; END PRIMO;
Ejercicios
6
Programación en Bases de Datos ANEXO B. Primo
Ejercicios
7
Programación en Bases de Datos
8
Factorial (n) create or replace FUNCTION FACTORIAL ( Z IN NUMBER ) RETURN NUMBER AS fx int; BEGIN /*Inicializa con valor de 1 fx*/ fx:=1; /*Se declara un ciclo for hasta donde llegue Z sera multiplicado por fx*/ for i in 1..Z loop fx := fx * i; end loop; /*returna fx*/ RETURN fx; END FACTORIAL;
Ejercicios
Programación en Bases de Datos ANEXO C. Factorial
Ejercicios
9
Programación en Bases de Datos
Factorial Recursiva (n) create or replace FUNCTION FACTORIAL_RECURSIVA ( V_NUM IN NUMBER ) RETURN NUMBER AS
BEGIN
/*Si V_NUM es menor o igual que 1 va returna 1*/ IF (V_NUM<=1) THEN RETURN 1;
/*Si no se cumple la condición de arriba, entonces se hace la siguiente operación*/ ELSE RETURN V_NUM*FACTORIAL_RECURSIVA(V_NUM-1); END IF; END FACTORIAL_RECURSIVA;
Ejercicios
10
Programación en Bases de Datos ANEXO D. Factorial Recursiva
Ejercicios
11
Programación en Bases de Datos
Sumatoria (n) create or replace FUNCTION SUMATORIA ( SUMA IN NUMBER ) RETURN NUMBER AS
resul NUMBER;
BEGIN resul := 0; /*Se invoca el ciclo donde SUMA es el resultado esperado, para que sea sumado asi mismo*/ FOR i in 1..SUMA loop resul := resul + i;
/*Se finaliza el for y returna el valor*/ end loop; RETURN resul;
END SUMATORIA;
Ejercicios
12
Programación en Bases de Datos
ANEXO E. Sumatoria
Ejercicios
13
Programación en Bases de Datos
Sumatoria Recursiva (n) create or replace FUNCTION SUMATORIA_RECURSIVA ( N_NUM IN NUMBER ) RETURN NUMBER AS
BEGIN
/*Si N_NUM es menor o igual que 1 va returna 1*/ IF (N_NUM<=1) THEN RETURN 1;
/*Si no se cumple la condición de arriba, entonces se hace la operación*/ ELSE
/*Se llama asi mismo la función*/ RETURN N_NUM+SUMATORIA_RECURSIVA (N_NUM-1); END IF; END SUMATORIA_RECURSIVA;
Ejercicios
14
Programación en Bases de Datos ANEXO F. Sumatoria Recursiva
Ejercicios
15
Programación en Bases de Datos
Es par (n) create or replace FUNCTION ES_PAR ( Z IN NUMBER ) RETURN VARCHAR AS res varchar(20); BEGIN
/*Se declara la condición donde cada numero de Z se divide en 2*/ IF MOD (Z, 2)=0 then /*Mostrara el mensaje'*/ res:='Es par';
else /*En el caso que no se cumpla sera impar por default*/ res:='Es impar'; end if; RETURN res; END ES_PAR;
Ejercicios
16
Programación en Bases de Datos ANEXO G. Par
Ejercicios
17
Programación en Bases de Datos
Máximo Común Divisor (n1, n2) create or replace FUNCTION MCD ( Z IN NUMBER , Y IN NUMBER ) RETURN NUMBER AS BEGIN /*Son condiciones donde Y y Z no deben ser 0 y si es asi returnara el mismo*/ If Y = 0 Then Return Z; Else If Z = 0 Then Return Y; /*Donde Z debe ser mayor o igual a Y para determinar el MCD de los numeros teclados*/ Else If Z >= Y Then Return MCD(Z - Y, Y); Else Return MCD(Z, Y - Z); End if; End if; End if; END MCD;
Ejercicios
18
Programación en Bases de Datos ANEXO H. Máximo Común Divisor
Ejercicios
19
Programación en Bases de Datos
Máximo Común Divisor Recursivo (n1, n2) create or replace FUNCTION MCD_RECURSIVO ( Z IN NUMBER , Y IN NUMBER ) RETURN VARCHAR2 AS MCD NUMBER; BEGIN /*Si Z es menor que Y entonces se divide*/ If Z < Y Then Return MCD_RECURSIVO (Y, Z); Else /*Si Y es igual a 0, returna 0*/ If Y = 0 Then Return Z; Else /*Sino returna asi mismo*/ Return MCD_RECURSIVO (Y, MOD (Z, Y)); End if; End if; END MCD_RECURSIVO;
Ejercicios
20
Programación en Bases de Datos ANEXO I. Máximo Común Divisor Recursivo
Ejercicios
21
Programación en Bases de Datos
Es Palíndromo create or replace FUNCTION PALINDROMO ( STR IN VARCHAR2 ) RETURN VARCHAR2 AS l VARCHAR2(50); t VARCHAR2(50); resul varchar2(50); len varchar2(50); BEGIN len := length(str); FOR i IN REVERSE 1..len LOOP l := Substr(STR, i, 1); /*aquí || Se utilizan para la concatenación de cuerdas*/ t := t ||'' ||l; END LOOP; /*Si t es igual a STR entonces es palindromo sino sera lo contrario*/ IF t = STR THEN resul := ('Es palindromo'); ELSE resul :=('No palindromo'); END IF; return resul; END PALINDROMO;
Ejercicios
22
Programación en Bases de Datos ANEXO J. Palíndromo
Ejercicios
23
Programación en Bases de Datos
Vocal Interna create or replace FUNCTION VOCALINTERNA ( NOMBRE IN VARCHAR2 ) RETURN VARCHAR2 AS C CHAR; BEGIN /*Va comenzar en la posición dos*/ FOR i IN 2..Length(NOMBRE) LOOP c := Substr(NOMBRE, i, 1);
/*Compruebe si el carácter actual es vocal*/ IF c IN ( 'A', 'E', 'I', 'O', 'U' ) OR c IN ( 'a', 'e', 'i', 'o', 'u' ) THEN
RETURN c; END IF; END LOOP; END VOCALINTERNA;
Ejercicios
24
Programación en Bases de Datos ANEXO K. Vocal Interna
Ejercicios
25
Programación en Bases de Datos
Consonante Interna create or replace FUNCTION COSONANTEINTERNA ( NOMBRE IN VARCHAR2 ) RETURN VARCHAR2 AS C CHAR; BEGIN /*Va comenzar en la posición dos*/ FOR i IN 2..Length(NOMBRE) LOOP c := Substr(NOMBRE, i, 1);
/*Compruebe si el carácter actual es cosonante*/ IF c IN ( 'B', 'C', 'D', 'F', 'G','H','J','K','L','M','N','Ñ','P','Q', 'R','S','T','V','W','X','Y','Z' ) OR c IN ( 'b', 'c', 'd', 'f', 'g','h','j','k','l','m','n','ñ','p','q', 'r','s','t','v','w','x','y','z' ) THEN RETURN c; END IF; END LOOP; END COSONANTEINTERNA;
Ejercicios
26
Programación en Bases de Datos ANEXO L. Consonante Interna
Ejercicios
27
Programación en Bases de Datos CAPITULO 2 Modelo
Ejercicios
28
Programación en Bases de Datos
29
DDL -- Generado por Oracle SQL Developer Data Modeler 18.4.0.339.1532 -en: 2019-03-08 12:31:33 CST -sitio: Oracle Database 11g -tipo: Oracle Database 11g
CREATE TABLE actores ( actor_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, apellido_paterno VARCHAR2(50), apellido_materno VARCHAR2(50) ); COMMENT ON TABLE actores IS 'Es el actor principal de la pelÝcula, por el c·al es necesario saber el dato del protagonista.'; COMMENT ON COLUMN actores.actor_id IS 'Esta columna es la llave primaria de la tabla actor. Sera llenada con una secuencia.'; COMMENT ON COLUMN actores.nombre IS 'Este es el nombre del actor. Debe de ir en may·scula.'; COMMENT ON COLUMN actores.apellido_paterno IS 'Este es el apellido paterno del actor. Debe de ir en may·scula.'; COMMENT ON COLUMN actores.apellido_materno IS 'Este es el apellido materno del actor. Debe de ir en may·scula.'; ALTER TABLE actores ADD CONSTRAINT actores_ck_apellidos CHECK ( apellido_paterno IS NOT NULL OR apellido_materno IS NOT NULL ); ALTER TABLE actores ADD CONSTRAINT actores_pk PRIMARY KEY ( actor_id ); CREATE TABLE asientos ( asiento_id NUMBER(10) NOT NULL, fila VARCHAR2(10) NOT NULL, numero NUMBER(10) NOT NULL, sala_id NUMBER(10) NOT NULL ); COMMENT ON TABLE asientos IS 'Registro de los asientos que seran ocupados por los clientes.';
Ejercicios
30
Programación en Bases de Datos COMMENT ON COLUMN asientos.asiento_id IS 'Esta columna es la llave primaria de la tabla asiento. Sera llenada con una secuencia.'; COMMENT ON COLUMN asientos.fila IS 'La fila estara agrupada por numeros, por el c·al el cliente va a eligir c·al le parece adecuada.'; COMMENT ON COLUMN asientos.numero IS 'Es el n·mero de fila que va a ocupar el cliente.'; COMMENT ON COLUMN asientos.sala_id IS 'Este el tipo de sala que el cliente quiere ver, ya sea en 2D, 3D et...'; ALTER TABLE asientos ADD CONSTRAINT asientos_pk PRIMARY KEY ( asiento_id ); CREATE TABLE boletos ( boleto_id NUMBER(10) NOT fecha DATE NOT NULL, precio NUMBER(20) NOT funcion_id NUMBER(10) NOT asiento_id NUMBER(10) NOT pelicula_id NUMBER(10) NOT cliente_id NUMBER(10) NOT );
NULL, NULL, NULL, NULL, NULL, NULL
COMMENT ON TABLE boletos IS 'Aqui sera registrado los boletos que fueron comprados o Internet.';
reservados por
COMMENT ON COLUMN boletos.boleto_id IS 'Esta columna es la llave primaria de la tabla boleto. Sera llenada con una secuencia.'; COMMENT ON COLUMN boletos.fecha IS 'Fecha en la que el boleto fue comprando para darle acceso total al cliente.'; COMMENT ON COLUMN boletos.precio IS 'Precio de la pelÝcula que se esta comprando el cliente.'; COMMENT ON COLUMN boletos.funcion_id IS 'Es el registro de la pelÝcula de tal manera que el cliente allß elegido.'; COMMENT ON COLUMN boletos.asiento_id IS 'Asiento elegido por el cliente.'; COMMENT ON COLUMN boletos.pelicula_id IS 'Nombre de la pelÝcula que el cliente eligi¾
en el boleto.';
COMMENT ON COLUMN boletos.cliente_id IS 'Nombre dek cliente que esta comprando el boleto.';
Ejercicios
Programación en Bases de Datos
31
ALTER TABLE boletos ADD CONSTRAINT boletos_ck_precio CHECK ( precio >= 0 ); ALTER TABLE boletos ADD CONSTRAINT boletos_pk PRIMARY KEY ( boleto_id ); CREATE TABLE cines cine_id nombre direccion telefono municipio_id );
( NUMBER(10) NOT NULL, VARCHAR2(50) NOT NULL, VARCHAR2(100) NOT NULL, NUMBER(10) NOT NULL, NUMBER(10) NOT NULL
COMMENT ON TABLE cines IS 'Aqui se registra la informaci¾n del cine para dar su localizaci¾n de ubicaci¾n para el cliente.'; COMMENT ON COLUMN cines.cine_id IS 'Esta columna es la llave primaria de la tabla cine. Sera llenada con una secuencia.'; COMMENT ON COLUMN cines.nombre IS 'Es el nombre del cine en la c·al elige el cliente para ver la funci¾n de la pelÝcula que desea ver. Debe de ir en may·scula.' ; COMMENT ON COLUMN cines.direccion IS 'Esta es la direcci¾n en donde se localiza el ciine para ver la pelÝcula.'; COMMENT ON COLUMN cines.telefono IS 'Este es el n·mero del cine para contactarlo. Debe de ir solo 10 digÝtos en este caso.'; COMMENT ON COLUMN cines.municipio_id IS 'Es lugar en donde el cine se encuentra ubicado por ello se debe saber el municipio.'; ALTER TABLE cines ADD CONSTRAINT telefono_ck_1 CHECK ( telefono = 10 ); ALTER TABLE cines ADD CONSTRAINT cines_pk PRIMARY KEY ( cine_id ); CREATE TABLE clasificaciones ( clasificacion_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, descripcion VARCHAR2(200) NOT NULL ); COMMENT ON TABLE clasificaciones IS 'Son las clasificaciones que se manejan en el cine, va dependiendo del genero de la pelÝcula.'; COMMENT ON COLUMN clasificaciones.clasificacion_id IS 'Esta columna es la llave primaria de la tabla clasificacion. Sera llenada con una secuencia.';
Ejercicios
Programación en Bases de Datos COMMENT ON COLUMN clasificaciones.nombre IS 'Este es el nombre de la clasificacion. Debe de ir en may·scula.'; COMMENT ON COLUMN clasificaciones.descripcion IS 'Sera la descripci¾n en general de la clasificac¾n para saber c·al es preferible para el tipo de cliente ya sea ni±os o adultos.' ; ALTER TABLE clasificaciones ADD CONSTRAINT clasificaciones_pk PRIMARY KEY ( clasificacion_id ); CREATE TABLE clientes ( cliente_id nombre apellido_paterno apellido_materno "fecha_nacimiento " telefono email calle numero_callle sexo localidad_id municipio_id );
NUMBER(10) NOT NULL, VARCHAR2(50) NOT NULL, VARCHAR2(50), VARCHAR2(50), DATE NOT NULL, NUMBER(10) NOT NULL, VARCHAR2(50) NOT NULL, VARCHAR2(100) NOT NULL, VARCHAR2(10) NOT NULL, NUMBER(1) NOT NULL, NUMBER(10) NOT NULL, NUMBER(10) NOT NULL
COMMENT ON TABLE clientes IS 'Tabla para registrar a los clientes del cine, habrß el cliente 1 como mostrador para ventas de clientes no registrados.'; COMMENT ON COLUMN clientes.cliente_id IS 'Esta columna es la llave primaria de la tabla cliente. Sera llenada con una secuencia.'; COMMENT ON COLUMN clientes.nombre IS 'Este es el nombre del cliente. Debe de ir en may·scula.'; COMMENT ON COLUMN clientes.apellido_paterno IS 'Este es el apellido paterno del cliente. Debe de ir en may·scula.'; COMMENT ON COLUMN clientes.apellido_materno IS 'Este es el apellido materno del cliente. Debe de ir en may·scula.'; COMMENT ON COLUMN clientes."fecha_nacimiento " IS 'Este esta es la fecha de nacimiento del cliente. Nos sirve para obtener la edad del cliente.'; COMMENT ON COLUMN clientes.telefono IS 'Este es el n·mero del cliente. Debe de ir solo 10 digÝtos en este caso.'; COMMENT ON COLUMN clientes.email IS
Ejercicios
32
Programación en Bases de Datos
33
'Este es email del cliente. Debe ir en may·scula y con el simbolo @.'; COMMENT ON COLUMN clientes.calle IS 'Esta es la calle en donde se localiza el cliente. Debe de ir en may·scula.'; COMMENT ON COLUMN clientes.numero_callle IS 'Este es el numero de calle del cliente para su locaclizaci¾n mas especificada.'; COMMENT ON COLUMN clientes.sexo IS 'En este caso se manejaran 1 que representara el sexo femenino y 2 sera en este caso masculino del sexo del cliente.'; COMMENT ON COLUMN clientes.localidad_id IS 'Es necesario saber en donde vive el cliente en este caso se debe especificar su localidad.'; COMMENT ON COLUMN clientes.municipio_id IS 'Es necesario saber en donde naci¾ el cliente en este caso se debe especificar su municipio.'; ALTER TABLE clientes ADD CONSTRAINT clientes_ck_apellidos CHECK ( apellido_paterno IS NOT NULL OR apellido_materno IS NOT NULL ); ALTER TABLE clientes ADD CONSTRAINT clientes_ck_correo CHECK ( email LIKE '%@%.%' ); ALTER TABLE clientes ADD constraint clientes_ck_sexo CHECK ( check(sexo IN( '1', '2' ));) ; ALTER TABLE clientes ADD CONSTRAINT clientes_ck_telefono CHECK ( telefono = 10 ); ALTER TABLE clientes ADD CONSTRAINT clientes_pk PRIMARY KEY ( cliente_id ); CREATE TABLE creditos ( credito_id NUMBER(10) pelicula_id NUMBER(10) actor_id NUMBER(10) orden NUMBER(10) );
NOT NOT NOT NOT
NULL, NULL, NULL, NULL
COMMENT ON TABLE creditos IS 'Es el registro de todas las personas que contribuyeron a la creaci¾n del video. Desde los protagonistas hasta el ayudante del asistente.' ; COMMENT ON COLUMN creditos.credito_id IS 'Esta columna es la llave primaria de la tabla credito. Sera llenada con una secuencia.'; COMMENT ON COLUMN creditos.pelicula_id IS
Ejercicios
Programación en Bases de Datos 'Aqui se muestra el crÚdito de la pelÝcula proyectada a lo ·ltimo de quienes colaboraron.'; COMMENT ON COLUMN creditos.actor_id IS 'Este es actor principal que interpreta la pelÝcula.'; COMMENT ON COLUMN creditos.orden IS 'Se va ordenar para cuando se muestre la cartelera se muestre el actor principal.'; ALTER TABLE creditos ADD CONSTRAINT creditos_pk PRIMARY KEY ( credito_id ); CREATE TABLE estados ( estado_id NUMBER(50) NOT NULL, nombre VARCHAR2(50) NOT NULL, clave_segoto VARCHAR2(2) NOT NULL ); COMMENT ON TABLE estados IS 'Registro de los estados donde el cliente se ubica.'; COMMENT ON COLUMN estados.estado_id IS 'Esta columna es la llave primaria de la tabla estado. Sera llenada con una secuencia.'; COMMENT ON COLUMN estados.nombre IS 'Es el nombre del estado. Debe de ir en may·scula.'; COMMENT ON COLUMN estados.clave_segoto IS 'Es una clave del estado para identificarlo.'; ALTER TABLE estados ADD CONSTRAINT estados_pk PRIMARY KEY ( estado_id ); CREATE TABLE funciones ( funcion_id NUMBER(10) NOT fecha DATE NOT NULL, precio NUMBER(20) NOT sala_id NUMBER(10) NOT pelicula_id NUMBER(10) NOT );
NULL, NULL, NULL, NULL
COMMENT ON TABLE funciones IS 'PelÝcula registrada para la proxima funci¾n a estrenar.'; COMMENT ON COLUMN funciones.funcion_id IS 'Esta columna es la llave primaria de la tabla funcion. Sera llenada con una secuencia.'; COMMENT ON COLUMN funciones.fecha IS 'Fecha en la que la funcion se va a a estrenar.';
Ejercicios
34
Programación en Bases de Datos
35
COMMENT ON COLUMN funciones.precio IS 'Precio de la pelÝcula que va a costar.'; COMMENT ON COLUMN funciones.sala_id IS 'Es el tipo de salas que estara disponible la pelÝcula.'; COMMENT ON COLUMN funciones.pelicula_id IS 'Nombre de la pelÝcula que sera registrada.'; ALTER TABLE funciones ADD CONSTRAINT funciones_ck_precio CHECK ( precio >= 0 ); ALTER TABLE funciones ADD CONSTRAINT funciones_pk PRIMARY KEY ( funcion_id ); CREATE TABLE generos ( genero_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, descripcion VARCHAR2(200) NOT NULL ); COMMENT ON TABLE generos IS 'Es el registro del tipo de pelÝcula que se va a estrenar en este caso puede que sea de aventuras Comedias, Dramßticas o de Terror etc...' ; COMMENT ON COLUMN generos.genero_id IS 'Esta columna es la llave primaria de la tabla genero. Sera llenada con una secuencia.'; COMMENT ON COLUMN generos.nombre IS 'Este es el nombre del genero. Debe de ir en may·scula.'; COMMENT ON COLUMN generos.descripcion IS 'Esta campo sera la descripci¾n del genero.'; ALTER TABLE generos ADD CONSTRAINT generos_pk PRIMARY KEY ( genero_id ); CREATE TABLE idiomas ( idioma_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, subtitulo VARCHAR2(50) NOT NULL ); COMMENT ON TABLE idiomas IS 'Este sera el idoma de la pelÝcula y de igual manera se registrara el subtitulo de dicha pelÝcula.'; COMMENT ON COLUMN idiomas.idioma_id IS 'Esta columna es la llave primaria de la tabla idioma. Sera llenada con una secuencia.'; COMMENT ON COLUMN idiomas.nombre IS
Ejercicios
Programación en Bases de Datos
36
'Este es el nombre del idioma por el c·al pueda variar el idioma. Debe de ir en may·scula.'; COMMENT ON COLUMN idiomas.subtitulo IS 'Este es el nombre del subtitulo por el c·al pueda variar el idioma. Debe de ir en may·scula.'; ALTER TABLE idiomas ADD CONSTRAINT idiomas_pkv2 PRIMARY KEY ( idioma_id ); CREATE TABLE localidades ( localidad_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, codigo_postal NUMBER(5) NOT NULL, municipio_id NUMBER(10) NOT NULL ); COMMENT ON TABLE localidades IS 'Registro de las localidades donde se localiza el cliente ya que si es por lÝnea su compra es necesario conocer su direcci¾n exacta por si gana premios.' ; COMMENT ON COLUMN localidades.localidad_id IS 'Esta columna es la llave primaria de la tabla localidad. Sera llenada con una secuencia.'; COMMENT ON COLUMN localidades.nombre IS 'Es el nombre de la localidad en la c·al se ubica el cliente para que lo puedan ubicar.Debe de ir en may·scula.'; COMMENT ON COLUMN localidades.codigo_postal IS 'Es un identificador del municipio. Debe de ir solo 5 digÝtos en este caso.'; COMMENT ON COLUMN localidades.municipio_id IS 'Es el municipio al que pertenece la localidad.'; ALTER TABLE localidades ADD CONSTRAINT localidades_pk PRIMARY KEY ( localidad_id ); CREATE TABLE municipios ( municipio_id NUMBER(10) NOT NULL, nombre VARCHAR2(50) NOT NULL, estado_id NUMBER(50) NOT NULL ); COMMENT ON TABLE municipios IS 'Registro de los municipios donde se ubica el cliente.'; COMMENT ON COLUMN municipios.municipio_id IS 'Esta columna es la llave primaria de la tabla municipio. Sera llenada con una secuencia.'; COMMENT ON COLUMN municipios.nombre IS
Ejercicios
Programación en Bases de Datos 'Es el nombre del municipio. Debe de ir en may·scula.'; COMMENT ON COLUMN municipios.estado_id IS 'Es el estado al que pertenece el municipio.'; ALTER TABLE municipios ADD CONSTRAINT municipios_pk PRIMARY KEY ( municipio_id ); CREATE TABLE peliculas pelicula_id titulo duracion sinopsi genero_id clasificacion_id idioma_id );
( NUMBER(10) NOT NULL, VARCHAR2(200) NOT NULL, NUMBER(3) NOT NULL, VARCHAR2(4000) NOT NULL, NUMBER(10) NOT NULL, NUMBER(10) NOT NULL, NUMBER(10) NOT NULL
COMMENT ON TABLE peliculas IS 'Es para registrar la pelicula que estan aproximamente a estranarse.'; COMMENT ON COLUMN peliculas.pelicula_id IS 'Esta columna es la llave primaria de la tabla pelicula. Sera llenada con una secuencia. '; COMMENT ON COLUMN peliculas.titulo IS 'Nombre del titulo de la pelicula con el c·al sera registrada para su pr¾ximo estreno.'; COMMENT ON COLUMN peliculas.duracion IS 'La duraci¾n sera en minutos, es el tiempo en que tarda la pelÝcula.'; COMMENT ON COLUMN peliculas.sinopsi IS 'Es una introducci¾n de lo que se trata la pelÝcula.'; COMMENT ON COLUMN peliculas.genero_id IS 'Registro del genero que pertenece a la pelÝcula.'; COMMENT ON COLUMN peliculas.clasificacion_id IS 'Es el tipo de clasificaci¾n ya sea para ni±os, adultos o para ambos.'; COMMENT ON COLUMN peliculas.idioma_id IS 'Es el idoma que esta la pelÝcula que se vaya a ver.'; ALTER TABLE peliculas ADD CONSTRAINT peliculas_pk PRIMARY KEY ( pelicula_id ); CREATE TABLE salas ( sala_id NUMBER(10) NOT NULL, nombre VARCHAR2(10) NOT NULL, cine_id NUMBER(10) NOT NULL ); COMMENT ON TABLE salas IS
Ejercicios
37
Programación en Bases de Datos 'Es el tipo de sala en donde va a ver el cliente la pelÝcula ya sea en 2D, 3D etc...'; COMMENT ON COLUMN salas.sala_id IS 'Esta columna es la llave primaria de la tabla sala. Sera llenada con una secuencia.'; COMMENT ON COLUMN salas.nombre IS 'Este es el nombre de la sala. Debe de ir en may·scula.'; COMMENT ON COLUMN salas.cine_id IS 'Es la ubicaci¾n del cine en donde va a ver la pelÝcula el cliente.'; ALTER TABLE salas ADD CONSTRAINT salas_pk PRIMARY KEY ( sala_id ); ALTER TABLE asientos ADD CONSTRAINT asientos_salas_fk FOREIGN KEY ( sala_id ) REFERENCES salas ( sala_id ); ALTER TABLE boletos ADD CONSTRAINT boletos_asientos_fk FOREIGN KEY ( asiento_id ) REFERENCES asientos ( asiento_id ); ALTER TABLE boletos ADD CONSTRAINT boletos_clientes_fk FOREIGN KEY ( cliente_id ) REFERENCES clientes ( cliente_id ); ALTER TABLE boletos ADD CONSTRAINT boletos_funciones_fk FOREIGN KEY ( funcion_id ) REFERENCES funciones ( funcion_id ); ALTER TABLE boletos ADD CONSTRAINT boletos_peliculas_fk FOREIGN KEY ( pelicula_id ) REFERENCES peliculas ( pelicula_id ); ALTER TABLE cines ADD CONSTRAINT cines_municipios_fk FOREIGN KEY ( municipio_id ) REFERENCES municipios ( municipio_id ); ALTER TABLE clientes ADD CONSTRAINT clientes_localidades_fk FOREIGN KEY ( localidad_id ) REFERENCES localidades ( localidad_id ); ALTER TABLE clientes ADD CONSTRAINT clientes_municipios_fk FOREIGN KEY ( municipio_id ) REFERENCES municipios ( municipio_id ); ALTER TABLE creditos ADD CONSTRAINT creditos_actores_fk FOREIGN KEY ( actor_id ) REFERENCES actores ( actor_id ); ALTER TABLE creditos ADD CONSTRAINT creditos_peliculas_fk FOREIGN KEY ( pelicula_id )
Ejercicios
38
Programación en Bases de Datos REFERENCES peliculas ( pelicula_id ); ALTER TABLE funciones ADD CONSTRAINT funciones_peliculas_fk FOREIGN KEY ( pelicula_id ) REFERENCES peliculas ( pelicula_id ); ALTER TABLE funciones ADD CONSTRAINT funciones_salas_fk FOREIGN KEY ( sala_id ) REFERENCES salas ( sala_id ); ALTER TABLE localidades ADD CONSTRAINT localidades_municipios_fk FOREIGN KEY ( municipio_id ) REFERENCES municipios ( municipio_id ); ALTER TABLE municipios ADD CONSTRAINT municipios_estados_fk FOREIGN KEY ( estado_id ) REFERENCES estados ( estado_id ); ALTER TABLE peliculas ADD CONSTRAINT peliculas_clasificaciones_fk FOREIGN KEY ( clasificacion_id ) REFERENCES clasificaciones ( clasificacion_id ); ALTER TABLE peliculas ADD CONSTRAINT peliculas_generos_fk FOREIGN KEY ( genero_id ) REFERENCES generos ( genero_id ); ALTER TABLE peliculas ADD CONSTRAINT peliculas_idiomas_fk FOREIGN KEY ( idioma_id ) REFERENCES idiomas ( idioma_id ); ALTER TABLE salas ADD CONSTRAINT salas_cines_fk FOREIGN KEY ( cine_id ) REFERENCES cines ( cine_id );
------------------
Informe de Resumen de Oracle SQL Developer Data Modeler: CREATE TABLE CREATE INDEX ALTER TABLE CREATE VIEW ALTER VIEW CREATE PACKAGE CREATE PACKAGE BODY CREATE PROCEDURE CREATE FUNCTION CREATE TRIGGER ALTER TRIGGER CREATE COLLECTION TYPE CREATE STRUCTURED TYPE CREATE STRUCTURED TYPE BODY CREATE CLUSTER
15 0 41 0 0 0 0 0 0 0 0 0 0 0 0
Ejercicios
39
Programación en Bases de Datos --------------------------
CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE
CONTEXT DATABASE DIMENSION DIRECTORY DISK GROUP ROLE ROLLBACK SEGMENT SEQUENCE MATERIALIZED VIEW MATERIALIZED VIEW LOG SYNONYM TABLESPACE USER
0 0 0 0 0 0 0 0 0 0 0 0 0
DROP TABLESPACE DROP DATABASE
0 0
REDACTION POLICY
0
ORDS DROP SCHEMA ORDS ENABLE SCHEMA ORDS ENABLE OBJECT
0 0 0
ERRORS WARNINGS
0 0
Ejercicios
40
Programación en Bases de Datos CAPITULO 3 Esquema
Ejercicios
41
Programación en Bases de Datos
Aquí se visualiza el modelo relacional así como se muestra se da aceptar.
Ejercicios
42
Programación en Bases de Datos
Aquí es para generar el archivo DDL.
Ejercicios
43
Programación en Bases de Datos
Aquí es donde se generan las tablas y se genera el código del DDL para copiar.
Ejercicios
44
Programación en Bases de Datos
Se entra en el programa de SQLDeveloper para crear las tablas.
Ejercicios
45
Programación en Bases de Datos PRIMERA CORRIDA
Aquí se pega el código DDL y se ejecuta para la creación de las tablas.
Ejercicios
46
Programación en Bases de Datos
Aquí se está ejecutando las tablas.
Ejercicios
47
Programación en Bases de Datos
Se muestran los resultados obtenidos de la ejecución finalizada en SQLDeveloper.
Ejercicios
48
Programación en Bases de Datos
Ejercicios
49
Programación en Bases de Datos
50
Se muestra a continuación los errores identificados que se deben corregir, en general solo era un error que generaba los demás errores.
Ejercicios
Programación en Bases de Datos
Ejercicios
51
Programación en Bases de Datos
Ejercicios
52
Programación en Bases de Datos
Ejercicios
53
Programación en Bases de Datos
Ejercicios
54
Programación en Bases de Datos
Ejercicios
55
Programación en Bases de Datos
Ejercicios
56
Programación en Bases de Datos
Ejercicios
57
Programación en Bases de Datos
Ejercicios
58
Programación en Bases de Datos SEGUNDA CORRIDA
59
Aquí se vuelve a generar el DDL pero se debe dar clic en “DROP” y seleccionar posteriormente tablas, para que elimine las tablas como entrada y vuelva ejecutar el código desde 0.
Ejercicios
Programación en Bases de Datos
Aquí s e ejecuta primero la instrucción “DROP” para borrar las tablas.
Ejercicios
60
Programación en Bases de Datos
En la segunda corrida ya se muestra las tablas correctamente ejecutadas.
Ejercicios
61
Programación en Bases de Datos
Ejercicios
62
Programación en Bases de Datos
Ejercicios
63
Programación en Bases de Datos
Ejercicios
64
Programación en Bases de Datos
Ejercicios
65
Programación en Bases de Datos
Ejercicios
66
Programación en Bases de Datos
Ejercicios
67
Programación en Bases de Datos
Ejercicios
68
Programación en Bases de Datos
Ejercicios
69
Programación en Bases de Datos
Se muestra en nuestra base de datos las tablas ya guardadas
Ejercicios
70
Programación en Bases de Datos CAPITULO 4
71
Autenticar create or replace PROCEDURE AUTENTICAR ( P_USUARIO_ID IN NUMBER , P_PASSWORD IN OUT VARCHAR2 , P_NOMBRE OUT VARCHAR2 , P_FECHA OUT DATE , P_VALIDO OUT NUMBER , P_ERROR OUT VARCHAR2 ) AS BEGIN /*El parametro con el nombre p_valido que inicializa en 0 indica que el usuario o password no son válidos y si es asi se manda un mensaje de texto que está almacenado en el parametro p_error*/ p_valido:=0; p_error := 'usuario / password no valido'; /*Se hace un for donde se declara la variable U que sera de entrada y se integra en parentesis el select que es para seleccionar el nombre de la tabla usuarios donde se valida si es igual al dato de la base de datos*/ for u in (select nombre from usuarios where usuario_id = p_usuario_id and password = p_password) loop /*Indica que el password no se mostrara en el campo ya ejecutado de manera correcta de lo contrario si es inválido lo mostrara porque no es null*/ p_password := null; /*Aqui trae el nombre del usuario de la tabla por medio la variable U ya declara anteriormente*/ p_nombre := u.nombre; /*Muestra la fecha en la que accedió el usuario, ya que se extrae con sysdate*/ p_fecha := sysdate;
Ejercicios
Programación en Bases de Datos /*Indica que accedió el usuario correctamente*/ p_valido:=1; /*Aqui es donde muestra el mensaje de texto del error de usuario y password declarado al principio*/ p_error:=null; /*Termina el ciclo for*/ end loop; END AUTENTICAR;
Ejercicios
72
Programación en Bases de Datos
Especificación
p_usuario_id: entrada carácter, contiene la clave de usuario a autenticar. p_password: entrada y salida varchar2, contiene la contraseña del usuario a autenticar (debería ser un hash), se limpia para que no regrese. p_nombre: salida carácter, nombre del usuario autenticado, nulo si no lo es. p_fecha: salida date, contiene la fecha y hora del servidor al momento de ser autenticado, nulo si no lo es. p_valido: salida numérica, 0 no autenticado, 1 sí autenticado, usa valores lógicos con número, podría ser otra codificación. p_error: salida carácter, mensaje de error en caso de no ser válido.
Ejercicios
73
Programación en Bases de Datos En la hoja de trabajo de mi base de datos cree en la tabla usuario con los atributos usuario_id, nombre y password ya que se utilizarán para insertar los datos del usuario y validar el autenticar para que el usuario sea validado en el sistema y de igual manera se hace un ALTER TABLE que indica la llave primaria que es la clave única del registro.
Se inserta los datos en la tabla que creamos de USUARIOS con sus atributos correspondientes, y así sucesivamente se va guardando en la tabla y en el mensaje de salida se muestra que la fila fue insertada. Como se muestra a continuación:
Ejercicios
74
Programación en Bases de Datos
Ejercicios
75
Programación en Bases de Datos
Ejercicios
76
Programación en Bases de Datos
Se muestra los datos ya almacenados en la tabla USUARIOS.
Ejercicios
77
Programación en Bases de Datos
78
Se debe crear el procedimiento AUTENTICAR donde se le debe especificar los parámetros que se utilizaran ya sea IN, IN OUT o OUT y el tipo de dato para identificar si va ir de Varchar2, Number y Date etc. Ya que al aceptar crea la estructura principal para declarar la lógica del problema a resolver.
Ejercicios
Programación en Bases de Datos
79
Se muestra la estructura del procedimiento con los parámetros definidos, ahora declarar en el BEGIN la instrucción que va a realizar en este caso se va a validar la tabla USUARIOS con los datos ya existentes en caso contrario se debe indicar con un mensaje que el “usuario o password no son válidos”.
Ejercicios
Programación en Bases de Datos PRIMERA CORRIDA
Se ejecuta el procedimiento para hacer la prueba si el usuario existe en la tabla USUARIOS.
Se muestra de bajo la acción ejecutada correctamente a la base de datos.
Ejercicios
80
Programación en Bases de Datos
81
Aquí se muestra que el usuario Óscar Gómez López está registrado y que su password es correcto. Sucesivamente se ira mostrando los resultados de los campos correspondientes.
Ejercicios
Programación en Bases de Datos
Se muestra la fecha en que el usuario accedió.
1 significa que fue valido solo un usuario en este caso contrario mostraría 0.
Ejercicios
82
Programación en Bases de Datos
No se muestra ningún error porque el usuario accedió correctamente.
Ejercicios
83
Programación en Bases de Datos SEGUNDA CORRIDA CON PASSWORD INCORRECTO
Ejercicios
84
Programación en Bases de Datos
85
Se muestra el password porque no coincide con el dato registrado en la tabla USUARIOS.
No se muestra el nombre porque el usuario_id no coincidió con la base de datos donde está registrado los nombres.
Ejercicios
Programación en Bases de Datos
No procede porque el usuario no accedió correctamente.
No accedió el usuario por lo que nos mostrara en 0.
Ejercicios
86
Programación en Bases de Datos
Muestra el mensaje de “usuario / password no valido” donde el texto lo dice todo que no coincidieron con la base de datos.
Ejercicios
87
Programación en Bases de Datos
88
Curp1 CREATE OR REPLACE PROCEDURE CURP1 ( P_NOMBRE IN VARCHAR2 , P_APELLIDO_PATERNO IN VARCHAR2 , P_APELLIDO_MATERNO IN VARCHAR2 , P_FECHA_NACIMIENTO IN DATE , P_SEXO IN VARCHAR2 , P_ESTADO IN VARCHAR2 , P_CURP OUT VARCHAR2 ) AS
v_SEXO VARCHAR(10); V_ESTADO VARCHAR(10);
BEGIN
/*Se declara un if donde al ingresar al campo p_sexo debemos colocar 1 si es mujer de lo contrario cualquier numero mayor a 1 sera hombre*/
if p_SEXO=1 then v_SEXO:='M'; else v_SEXO:='H';
/*Se termina el if*/ end if;
Ejercicios
Programación en Bases de Datos
89
/*Aqui se manda a llamar la tabla estados donde esta almacenados las clave segob donde se le pasara al parametro v_estado cuando el estado_id sea igual al dato del campo p_estado*/
Select clave_segob into V_ESTADO from estados where estado_id = p_estado;
/*En el parámetro p_curp se hace una concatenación donde las letras se irán poniendo juntas, también se declara un SUBSTR que es para obtener una parte específica de una cadena de caracteres y de igual manera se manda a llamar la función de vocal y consonante interna*/
P_CURP := substr (P_APELLIDO_PATERNO, 1,1) || VOCALINTERNA(p_APELLIDO_PATERNO)|| substr (p_APELLIDO_MATERNO, 1,1) || substr (p_NOMBRE, 1,1)|| to_char (p_FECHA_NACIMIENTO, 'yymmdd')|| v_sexo|| v_estado||COSONANTEINTERNA(p_APELLIDO_PATERNO)|| COSONANTEINTERNA (p_APELLIDO_MATERNO)||COSONANTEINTERNA(p_NOMBRE);
END CURP1;
Ejercicios
Programación en Bases de Datos
Especificación
p_nombre: entrada del carácter, nombre de la persona para calcular su CURP. p_apellido_paterno: entrada del carácter, contiene el primer apellido de la persona para para calcular su CURP. p_apellido_materno: entrada del carácter, contiene el segundo apellido de la persona para para calcular su CURP. p_fecha_nacimiento: entrada como DATE, contiene la fecha en la que nació la persona para calcular su CURP. p_sexo: entrada del carácter, contiene el sexo ya sea hombre que será representado con “H” y mujer con “M” al momento de calcular la CURP. p_estado: entrada del carácter, donde contiene por medio del ID la clave SEGOB usada para identificar el estado en el cálculo de la CURP. p_curp: salida del carácter, donde se mostrará la CURP de la persona ya concatenada.
Ejercicios
90
Programación en Bases de Datos
91
Se muestra a continuación que se insertaron los datos en la tabla ESTADOS como su clave SEGOB de cada uno, para que se pueda utilizar en el procedimiento de la CURP.
Ejercicios
Programación en Bases de Datos
Se muestra los datos insertados correctamente.
Ahora se muestran los datos almacenados correctamente en la base de datos.
Ejercicios
92
Programación en Bases de Datos
93
Se debe crear el procedimiento CURP1 donde se le debe especificar los parámetros que se utilizaran y el tipo de dato. Ya que solo P_CURP será de salida porque mostrará las letras concatenadas de los datos parámetros declarados.
Ejercicios
Programación en Bases de Datos
94
Se muestra el procedimiento ya guardado y listo para comenzar a declarar las variables o parámetros para extraer las cadenas con SUBSTR y de igual manera con un SELECT se extraerá la clave SEBOG para cada estado.
Ejercicios
Programación en Bases de Datos CORRIDA DE LA CURP
Se ejecuta el procedimiento para sacar mi CURP, ya que los parámetros son de entradas.
La ejecución del procedimiento fue ejecutada correctamente.
Ejercicios
95
Programación en Bases de Datos
Se muestra como salida la CURP1 ya calculada correctamente.
Ejercicios
96
Programación en Bases de Datos
97
Curp2 create or replace PROCEDURE CURP2 ( P_PERSONA_ID IN VARCHAR2 , P_CURP OUT VARCHAR2 ) AS v_SEXO VARCHAR(10); V_ESTADO VARCHAR(10); BEGIN
/*Se hace un for donde se declara la variable U que sera de entrada y se integra en parentesis el select que es para seleccionar los campos de la tabla personas donde persona_id sea igual al parametro p_persona_id donde sera de entrada para hacer la comparacion en la base de datos*/
for u in (select APELLIDO_PATERNO, APELLIDO_MATERNO, NOMBRE,FECHA_NACIMIENTO,SEXO, ESTADO from personas where persona_id = p_persona_id) loop
/*Se declara un if donde se declara u.sexo para recibir el dato que contiene en la tabla persona y asi comparar ese dato y obtener si es 1 colocar M de mujer de lo contrario cualquier numero mayor a 1 sera hombre*/
if u.SEXO=1 then v_SEXO:='M'; else v_SEXO:='H';
/*Se termina el if*/ end if;
Ejercicios
Programación en Bases de Datos
98
/*Aqui se manda a llamar la tabla estados donde esta almacenados las clave segob donde se le pasara al parametro v_estado que va extraer la clave cuando el nombre de la tabla estados sea igual al dato del nombre del campo estado de la tabla personas entonces trae su clave segob que esta en la tabla estados*/
Select clave_segob into v_estado from estados where NOMBRE = u.estado;
/*En el parámetro p_curp se hace una concatenación donde las letras se irán poniendo juntas, también se declara un SUBSTR que es para obtener una parte específica de una cadena de caracteres y de igual manera se manda a llamar la función de vocal y consonante interna y de igual manera se extraera de la tabla personas con la variable u de entrada*/
P_CURP := substr (u.APELLIDO_PATERNO, 1,1)|| VOCALINTERNA(u.APELLIDO_PATERNO)|| substr (u.APELLIDO_MATERNO, 1,1) || substr (u.NOMBRE, 1,1) || to_char (u.FECHA_NACIMIENTO, 'yymmdd')||v_SEXO||v_estado||COSONANTEINTERNA(u.APELLIDO_PATERNO)||COSONANTEINTER NA(u.APELLIDO_MATERNO)||COSONANTEINTERNA(u.NOMBRE);
/*Se termina el for*/
END LOOP;
END CURP2;
Ejercicios
Programación en Bases de Datos
Especificación
p_persona_id: entrada del carácter, contiene la clave para identificar a la persona que se requiera calcular su CURP. p_curp: salida del carácter, donde se mostrará la CURP de la persona ya concatenada.
Ejercicios
99
Programación en Bases de Datos
100
Se crea la tabla personas con los datos necesarios y la llave primaria, como también la columna estado donde se ingresará el estado donde pertenece la persona y así declarar en el procedimiento donde nombre que pertenece en la tabla ESTADOS sea igual al campo estado y así extraer la clave SEGOB.
Ejercicios
Programación en Bases de Datos
Se muestra a continuación que se insertaron los datos en la tabla PERSONAS con su estado de cada uno donde nació, para que se pueda utilizar en el procedimiento de la CURP.
Ahora se muestran los datos almacenados correctamente en la tabla personas listo para calcular su CURP.
Ejercicios
101
Programación en Bases de Datos
102
Se debe crear el procedimiento CURP2 donde se le debe especifican dos parámetros que son persona_id que será de entrada y P_CURP de salida.
Ejercicios
Programación en Bases de Datos
103
Se muestra la estructura del procedimiento con los parámetros definidos, ahora declarar en el BEGIN la instrucción que va a realizar en este caso se va a calcular la CURP de cada persona mediante el ID con los datos respetivamente guardados en la base de datos de la tabla persona.
Ejercicios
Programación en Bases de Datos CALCULAR CURP DE LA MUJER
104
Se inicializa el procedimiento CURP2 con un ID de MUJER para calcular su CURP ya que solo se maneja como entrada persona_id y P_CURP como de salida.
Ejercicios
Programación en Bases de Datos
105
Procedimiento ejecutado correctamente y se muestra que se extrajo la M de mujer en la tabla de personas que esta con el número 1 que representa en el código del IF como M.
Ejercicios
Programación en Bases de Datos CALCULAR CURP DEL HOMBRE
106
Se ejecuta la segunda corrida del procedimiento CURP2 con un ID de HOMBRE para calcular su CURP ya que solo se maneja como entrada persona_id y P_CURP como de salida.
Ejercicios
Programación en Bases de Datos
107
Procedimiento ejecutado correctamente y se muestra que se extrajo la H del hombre en la tabla de personas que esta con el número 2 que representa en el código del IF con else como H.
Ejercicios