Você está na página 1de 11

3.5 Instrucciones INSERT, UPDATE, DELETE.

Para poder probar las expresiones que vienen como ejemplo en estas diapositivas, hay que crear una Base de Datos de prueba y las tablas correspondientes, aada tuplas suficientes a esas tablas, las que se muestran en estos apuntes son solo una muestra. Cuando termine de probar todo lo que aqu se sugiere, aplique los conocimientos obtenidos para aadir datos y obtener consultas sobre las tablas correspondientes a su proyecto. Las consultas que obtenga le ayudarn a validar la viabilidad de su esquema. Introduccin insert into <tabla> values (<lista de valores>) 3.1 Instruccin INSERT forma bsica _ Ejemplo: insert into Materias values ( 0,'8013', 'Dibujo',4 ) _ Familiarcese con esta sintxis y con la forma en que las GUI Tools le permitan aadir tuplas a las tablas. Materias 1 8807 Estructuras de datos I 8 2 8213 Geologa 6 3 8013 Dibujo 4 4 8821 Bases de Datos I 8 5 8825 Arquitectura de Computadoras I 10 6 8126 Bioingeniera 10 7 8917 Bases de Datos I 10 3.1 Instruccin INSERT forma bsica _Para los ejemplos de las pginas siguientes recuerde establecer las llaves primarias y candidatas necesarias. Tambin establezca Integridad Referencial (Includas las tablas de dominio correspondientes). _Intente aadir tuplas con valores duplicados en llaves candidatas y primaria y valores en los que falle la integridad referencial para que se familiarice con los errores. InasistAlum 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad

3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro. select * from InasistAlum where hora='16:00' select fecha,motivo,control from InasistAlum where hora='16:00' La Hora no es CHAR, sino tipo TIME. select * from InasistAlum where hora<='12:00' select IdAlumno from InasistAlum where hora<='12:00' 3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro. InasistAlum 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad select distinct IdAlumno from InasistAlum where hora<='12:00' 3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro. InasistAlum 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad 3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro. select nombre,fecha

from Alumnos,InasistAlum where hora='16:00' and Alumnos.IdAlumno=InasistAlum.IdAlumno InasistAlum IdInAlum IdAlumno Fecha Hora Motivo 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad Alumnos IdAlumno Control Nombre Domicilio FechaNac CURP 1 98040151 Lpez Parejita Zarco 123 07/02/1981 LJC11 2 97040587 Alvarado M. Alberto Negrete 1002 24/03/1982 ARJ22 3 97040014 Molina Mario Fresno 1410 23/06/1981 MNL33 4 96040121 Jurez Garca Benito Patoni 100 31/03/1982 JFJ44 select distinct Materias.nombre from Materias, Materias Mat2 where Materias.nombre=Mat2.nombre and Materias.IdMateria<>Mat2.IdMateria 3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro. Materias 1 8807 Estructuras de datos I 8 2 8213 Geologa 6 3 8013 Dibujo 4 4 8821 Bases de Datos I 8 5 8825 Arquitectura de Computadoras I 10 6 8126 Bioingeniera 10 7 8917 Bases de Datos I 10 select nombre,day(FechaNac) as dia from Alumnos where month(FechaNac)=3 union select nombre,day(FechaNac) as dia from Maestros where month(FechaNac)=3 3.2 Consultas Bsicas SELECT, WHERE y funciones Alumnos a nivel de registro. 1 98040151 Lpez Parejita Zarco 123 07/02/1981 LJC11 2 97040587 Alvarado M. Alberto Negrete 1002 24/03/1982 ARJ22 3 97040014 Molina Mario Fresno 1410 23/06/1981 MNL33

4 96040121 Jurez Garca Benito Patoni 100 31/03/1982 JFJ44 Maestros 1 X11 Xavier Lopez Chabelo Templo Atenea 111 17/12/1961 2 A22 Aristteles Coliseo 122 20/11/1965 3 T44 Tchaikovski Insurgentes 1000 03/05/1964 4 RH99 Robin Houd Aquiles Serdn 1102 20/03/1979 5 B33 Botticelli Sandro Catalua 343 29/03/1963 6 F77 Fernndez Jos Ramn Coapa 3221 31/07/1953 3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro. select * from Materias where creditos between 6 and 8 select * from Materias where nombre like '%datos%' Materias 1 8807 Estructuras de datos I 8 2 8213 Geologa 6 3 8013 Dibujo 4 4 8821 Bases de Datos I 8 5 8825 Arquitectura de Computadoras I 10 6 8126 Bioingeniera 10 7 8917 Bases de Datos I 10 select distinct control from InasistAlum where fecha between '2001/03/06' and '2001/03/08' 3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro. InasistAlum 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad 3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro.

select * from Maestros where Calle like 'C%' select Nombre from Maestros

where Nombre like '_o%' Maestros 1 X11 Xavier Lopez Chabelo Templo Atenea 111 17/12/1961 2 A22 Aristteles Coliseo 122 20/11/1965 3 T44 Tchaikovski Insurgentes 1000 03/05/1964 4 RH99 Robin Houd Aquiles Serdn 1102 20/03/1979 5 B33 Botticelli Sandro Catalua 343 29/03/1963 6 F77 Fernndez Jos Ramn Coapa 3221 31/07/1953 3.2 Consultas Bsicas SELECT, WHERE y funciones a nivel de registro. select * from Alumnos where control like '%1' select * from Alumnos where control not like '_ _ _ _ _ 1 _ _' select Colonia,Calle,NumeroExt,NumeroInt,Nombre from Alumnos order by Colonia,Calle,NumeroExt,NumeroInt Alumnos IdAlumno Control Nombre Domicilio FechaNac CURP 1 98040151 Lpez Parejita Zarco 123 07/02/1981 LJC11 2 97040587 Alvarado M. Alberto Negrete 1002 24/03/1982 ARJ22 3 97040014 Molina Mario Fresno 1410 23/06/1981 MNL33 4 96040121 Jurez Garca Benito Patoni 100 31/03/1982 JFJ44 3.3 Consultas sobre Mltiples Tablas 3.3.1 Subconsultas select control from alumnos where curp not in (select curp from maestros) select curp from Maestros where curp in (select curp from alumnos) Alumnos 1 98040151 Lpez Parejita Zarco 123 07/02/1981 LJC11 2 97040587 Alvarado M. Alberto Negrete 1002 24/03/1982 ARJ22 3 97040014 Molina Mario Fresno 1410 23/06/1981 MNL33 4 96040121 Jurez Garca Benito Patoni 100 31/03/1982 JFJ44 Maestros 1 X11 Xavier Lopez Chabelo Templo Atenea 111 17/12/1961 2 A22 Aristteles Coliseo 122 20/11/1965 3 T44 Tchaikovski Insurgentes 1000 03/05/1964 4 RH99 Robin Houd Aquiles Serdn 1102 20/03/1979 5 B33 Botticelli Sandro Catalua 343 29/03/1963 6 F77 Fernndez Jos Ramn Coapa 3221 31/07/1953 3.3.2 Operadores JOIN

select curp,claveMat,clavePer,grupo,horario from Grupos,GposMaes where Grupos.IdGrupo=GposMaes.IdGrupo select curp,claveMat,clavePer,grupo,horario from Grupos left join GposMaes on Grupos.IdGrupo=GposMaes.IdGrupo GposMaes Curp IdGrupo X11 1 A22 3 B33 4 F77 5 X11 2 Grupos 1 8126 2000V 4B 35 L Ma Mi J V S 7-9 T9 2 8815 2000V 4Z 30 L Ma Mi J V S 9-11 T4 3 8821 1999B 6X 30 L Ma Mi J 10-11 T1 4 8821 1999A 6X 35 L Ma J V 11-12 T5, Mi 11-13 LC 5 8010 2001A 3C 35 L Mi J V 7-8 T1 6 8010 2001A 3D 30 L Mi J V 16-17 T10 7 8807 2002A 3X 25 L Ma Mi J 10-11 T1 8 8807 2002A 3Y 25 L Ma Mi J 9-10 T9 3.4 Funciones de Agrupacin select count(*) from Materias select count(distinct creditos) from Materias

Materias 1 8807 Estructuras de datos I 8 2 8213 Geologa 6 3 8013 Dibujo 4 4 8821 Bases de Datos I 8 5 8825 Arquitectura de Computadoras I 10 6 8126 Bioingeniera 10 7 8917 Bases de Datos I 10 3.4 Funciones de Agrupacin select colonia, count(*) from Alumnos group by colonia Alumnos 1 98040151 Lpez Parejita Zarco 123 07/02/1981 LJC11 2 97040587 Alvarado M. Alberto Negrete 1002 24/03/1982 ARJ22 3 97040014 Molina Mario Fresno 1410 23/06/1981 MNL33 4 96040121 Jurez Garca Benito Patoni 100 31/03/1982 JFJ44

3.4 Funciones de Agrupacin selectmotivo,count(*) from InasistAlum group by motivo order by 2 desc selectmotivo,count(*) from InasistAlum group by motivo having count(*)>1 order by 2 desc selectmotivo,count(*) as faltas from InasistAlum group by motivo having faltas>1 order by faltas desc InasistAlum 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad 3.4 Funciones de Agrupacin select control,month(fecha) as mes,count(*) as faltas from InasistAlum where motivo= "Injustificada" group by control,mes order by faltas desc InasistAlum 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad 3.4 Funciones de Agrupacin select control,count(*) as TotFaltas, count(distinct fecha) as TotDias from InasistAlum group by control order by TotDias desc,TotFaltas desc Relacin RESULTANTE Control TotFaltas TotDias 98040151 4 4 97040014 3 1 96040121 1 1 InasistAlum IdInAlum IdAlumno Fecha Hora Motivo

1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad select max(creditos) from Materias select min(creditos) from Materias select avg(creditos) from Materias 3.4 Funciones de Agrupacin Materias 1 8807 Estructuras de datos I 8 2 8213 Geologa 6 3 8013 Dibujo 4 4 8821 Bases de Datos I 8 5 8825 Arquitectura de Computadoras I 10 6 8126 Bioingeniera 10 7 8917 Bases de Datos I 10 select clave,nombre from Materias where creditos in (select max(creditos) from Materias) 3.4 Funciones de Agrupacin InasistAlum 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad insert puede combinarse con select para aadir ms de una tupla a la vez. Ejemplo: A partir de las tablas de abajo, aadir a la tabla Calificaciones las tuplas necesarias para que se asienten las notas obtenidas por los alumnos en sus materias correspondientes CarrerasAlumnos 419 539 317 217

627 115 735 843 Retcula 385 1 10 3 113 193 2 12 2 297 4 11 2 483 Calificaciones insert into Calificaciones select IdAlumno,IdMateria, 'Normal',0 from Reticula,CarrerasAlumnos where Reticula.IdCarrera=CarrerasAlumnos.IdCarrera 3.5 Instrucciones INSERT, UPDATE, DELETE CarrerasAlumno 419 539 317 217 627 115 735 843 Retcula 385 1 10 3 113 193 2 12 2 297 4 11 2 483 Calificaciones 4 10 Normal 0 4 1 Normal 0

4 9 Normal 0 5 8 Normal 0 3 10 Normal 0 3 1 Normal 0 3 9 Normal 0 2 10 Normal 0 2 1 Normal 0 2 9 Normal 0 6 12 Normal 0 6 9 Normal 0 1 10 Normal 0 1 1 Normal 0 1 9 Normal 0 7 8 Normal 0 8 11 Normal 0 8 8 Normal 0 delete from <relacin> where <expresin> Ejemplo: Eliminar la inasistencias de los alumnos que tuvieron solo una delete from InasistAlum where IdAlumno in (select IdAlumno from InasistAlum group by control having count(*)=1) 3.5 Instrucciones INSERT, UPDATE, DELETE Si la versin de MySQL no soporta esta sintxis, hay que guardar el resultado de la subconsulta en otra tabla para poder completarla InasistAlum IdInAlum IdAlumno Fecha Hora Motivo 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad Update <relacin> set <expresin asignacin> where <condicin> update Materias set creditos=HorasTeo*3+HorasPra*2 where clave like '18%' 3.5 Instrucciones INSERT, UPDATE, DELETE Materias

1 1810 Estructuras de Datos 10 4 2 2 1533 Inv. De Operaciones II 8 4 0 3 1001 Matemticas I 8 4 0 4 1805 Probabilidad y Estadstica 6 3 0 5 1806 Programacin orientada a objetos 8 3 2 6 1813 Fundamentos de Bases de Datos 8 4 0 update Calificaciones set Result = Result 1 where IdAlumno in (select IdAlumno from InasistAlum group by IdAlumno having count(*)>2) 3.5 Instrucciones INSERT, UPDATE, DELETE InasistAlum 1 1 05/03/2001 16:00 Deportes 2 1 06/03/2001 16:00 Enfermedad 3 1 07/03/2001 16:00 Injustificada 4 1 08/03/2001 16:00 Injustificada 5 3 01/03/2001 09:00 Enfermedad 6 3 01/03/2001 10:00 Injustificada 7 3 01/03/2001 11:00 Injustificada 8 4 09/03/2001 16:00 Enfermedad Calificaciones IdAlumno IdMateria Etapa Result 4 10 Normal 90 4 1 Normal 70 4 9 Normal 93 5 8 Normal 71 3 10 Normal 78 3 1 Normal 82 3 9 Normal 80 2 10 Normal 100 2 1 Normal 98 2 9 Normal 90 6 12 Normal 100 6 9 Normal 70 1 10 Normal 90 1 1 Normal 88 1 9 Normal 0 7 8 Normal 76 8 11 Normal 99 8 8 Normal 91

Você também pode gostar