La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Insercion de datos.. Tabla persona. create procedure insertarpersona varchar(25),

Presentaciones similares


Presentación del tema: "Insercion de datos.. Tabla persona. create procedure insertarpersona varchar(25),"— Transcripción de la presentación:

1 Insercion de datos.

2 Tabla persona.

3 create procedure insertarpersona char(1)) as insert into persona (DNI, Nombre, Apellido, Ciudad, DireccionCalle, DireccionNum, Telefono, FechaNacimiento,

4 exec insertarpersona ' ', 'juan', 'perez', 'concepcion', 'ongolmo', '34',' ', ' ', '1'

5 Qué problema podría surgir al insertar una nueva persona? Que condicion se podría aplicar aquí?

6 Persona con ese ID ya existe…

7 create procedure insertarpersona1 char(1)) as if not exists(select * from persona where begin insert into persona (DNI, Nombre, Apellido, Ciudad, DireccionCalle, DireccionNum, Telefono, FechaNacimiento, print Persona insertada.' end else print 'Ya existe una persona con ese DNI.'

8 Que pasa si se ingresa en el atributo varon un valor distinto a 0 o 1?

9 create procedure insertarpersona2 char(1)) as if not exists(select * from persona where begin in ('0', '1') begin insert into persona (DNI, Nombre, Apellido, Ciudad, DireccionCalle, DireccionNum, Telefono, FechaNacimiento, print 'Persona insertada.' end else print 'Persona debe ser 1 o 0' end else print 'Ya existe una persona con ese DNI.'

10 RETURN. Salida incondicional del procedimiento. Las instrucciones que siguen a RETURN no se ejecutan. Sintaxis RETURN [ integer_expression ] Argumentos. integer_expression: Es el valor entero que se devuelve. Los procedimientos almacenados pueden devolver un valor entero al procedimiento que realiza la llamada o a una aplicación. Tipos devueltos Opcionalmente devuelve int.

11 Veamos el ejemplo anterior usando RETURN

12 CREATE procedure insertarpersona3 char(1)) as if not exists(select * from persona where begin in ('0', '1') begin insert into persona (DNI, Nombre, Apellido, Ciudad, DireccionCalle, DireccionNum, Telefono, FechaNacimiento, return 0 end else return 1 end else return 2

13 Como se ejecuta esto?

14 int '264562', 'juan', 'perez', 'concepcion', 'ongolmo', '34',' ', ' ', '3' print 'Datos de persona ingresados correctamente.' else print 'Atributo varon de Persona debe ser 0 o 1.' else print 'Ya existe persona con ese dni.'

15 Si solo queremos conocer el valor de la variable status:

16 int '264562', 'juan', 'perez', 'concepcion', 'ongolmo', '34',' ', ' ', '1' ********************** int '364562', 'juan', 'perez', 'concepcion', 'ongolmo', '34',' ', ' ', '1' print 'Status es: ' as varchar) ********************** int ' ', 'juan', 'perez', 'concepcion', 'ongolmo', '34',' ', ' ', '1' select /* as Status*/

17

18 Return siempre hara salir de la rutina programada… Return no devuelve valor…

19 create procedure insertarpersona char(1)) as if not exists(select * from persona where begin in ('0', '1') begin insert into persona (DNI, Nombre, Apellido, Ciudad, DireccionCalle, DireccionNum, Telefono, FechaNacimiento, print 'Datos de persona ingresados' select * from persona where return end else print 'Atributo varon de Persona debe ser 0 o 1.' end else print 'Ya existe persona con ese dni.'

20 create procedure insertarpersona char(1)) as if not exists(select * from persona where begin in ('0', '1') begin insert into persona (DNI, Nombre, Apellido, Ciudad, DireccionCalle, DireccionNum, Telefono, FechaNacimiento, print 'Datos de persona ingresados' return select * from persona where end else print 'Atributo varon de Persona debe ser 0 o 1.' end else print 'Ya existe persona con ese dni.'

21 Uso de parametros de entrada con valores por defecto: Create procedure proc int=default) Default puede ser NULL

22 Ejercicio. Insertar nuevo registro en tabla titulacion. Usar RETURN Tomar en cuenta?

23 –Si hay otra titulacion con ese id –Id titulacion no puede ser null –Nombre titulacion no puede ser null

24 create PROCEDURE insert_Titulacion varchar(20)=NULL) AS is NULL return 1 else is NULL return 2 else if not exists (select * from titulacion where begin INSERT INTO Titulacion (IdTitulacion,Nombre) return 0 end else return 3

25 int , Aleman' print 'Debe ingresar un ID de titulación' print 'Debe haber un nombre de titulación relacionada con el ID' print 'Se ingreso titulación correctamente' print 'Ya existe titulacion con ese id'

26 Insertar datos en tabla Alumno. Recordar: Cuál(es) seria(n) la(s) condicion(es) para poder hacer la inserción?

27 (Asumiendo que valores son <> de NULL) 1.No debe haber otro alumno con el mismo id. 2.Para ser ingresado como alumno, debe estar como persona. (integridad referencial) 3.No puede haber otro alumno con el mismo DNI (duplicacion)

28 create procedure insertaralumno varchar(9)) as if not exists(select * from alumno where begin if exists (Select * from persona where begin if not exists (select * from alumno where begin insert into alumno (idalumno, DNI) return 0 end else return 1 end else return 2 end else return 3

29 int 'A02024', ' A' print 'Alumno ingresado correctamente.' else print 'Ya hay un alumno con ese DNI' else print 'No esta ingresado como persona' else print 'Ya existe alumno con ese id.'

30 Ejercicio. Insertar datos en tabla alumnoasignatura. Usar IF ELSE, RETURN, PRINT Qué condiciones se deben tomar en cuenta? (Realizar)

31 Otras condiciones… Alumnos solo pueden tomar cierta cantidad de ramos…: 3 ramos. … Alumnos pueden tomar solo hasta 20 creditos…(TAREA)

32 create procedure insertaralumnoasignatura1 numeric(6)) as if (select count(*) from alumnoasignatura where and return 1 /*registro ya existe*/ else begin if exists (select * from alumno where existe el alumno...*/ begin if exists (select * from asignatura where existe el ramo*/ begin if (select count(idasignatura) from alumnoasignatura where begin insert into alumnoasignatura (IdAlumno, IdAsignatura) return 0 /*se inserto registro*/ end else return 4 /*ya tiene 3 ramos registrados*/ end else return 2 /*ramo no existe*/ end else return 3 /*alumno no existe*/ end

33 int 'A010101', print 'Registro ingresado correctamente.' else print 'Registro ya existe' else print 'Ramo no registrado' else print 'Alumno no registrado' else print 'Alumno ya tiene 3 ramos registrados'

34 Otras… Ejercicio. Por ejemplo, los ramos de la titulación Matemáticas sólo pueden ser tomados por alumnos varones. (Realizar)

35 Modificar/Update datos de una tabla. Ejercicio. AP que modifique nombre, creditos y costebasico de una asignatura a partir de su id. Como seria? Usar IF ELSE y RETURN

36 Create PROCEDURE updateAsignatura numeric) AS if exists (select * from asignatura where begin UPDATE Asignatura SET WHERE return 0 end else return 1

37 int , 'Ingles', 4, 20 print 'Registro actualizado.' else print 'No se pudo actualizar, asignatura no existe.'

38 Ejercicio. Crear un PA que modifique el telefono de una persona a partir de su nombre. Que pasa si hay 2 personas con el mismo nombre? (Realizar)

39 Que pasa si quiero actualizar un id de alguna tabla? Tomar en cuenta restricciones de integridad: cascade/restrict Otras condiciones?

40 Actualizar id de tabla titulacion: es usada en asignatura. Si esta en cascade…que significa?

41

42 create PROCEDURE updatetitulacion1 numeric(6)) AS if (select count(*) from titulacion where begin if (select count(*) from titulacion where begin update titulacion set where return 0 end else return 2 end else return 1

43 int , print 'Se actualizo id titulacion' else print 'No existe esa titulacion' print 'Id nuevo ya esta tomado'

44 Si esta en restrict, que significa?

45

46 Create PROCEDURE updatetitulacion numeric(6)) AS if (select count(*) from titulacion where begin if exists (select * from asignatura where begin update asignatura set idtitulacion=NULL where update titulacion set where update asignatura set where idtitulacion is NULL return 0 end else begin update titulacion set where return 1 end else return 2

47 int , print 'Se actualizo id en titulacion y tb en asignatura' else print 'Se actualizo id en titulacion' else print 'No existe esa titulacion'

48 Tambien podria imprimirse un mensaje diciendo que no se puede actualizar…


Descargar ppt "Insercion de datos.. Tabla persona. create procedure insertarpersona varchar(25),"

Presentaciones similares


Anuncios Google