En este tema vamos a tratar el de la actualización de esos datos, es decir insertar nuevas filas, borrar filas o cambiar el contenido de las filas de una tabla. Estas operaciones modifican los datos almacenados en las tablas pero no su estructura, ni su definición.
Insertar varias filas INSERT INTO...SELECT
Podemos insertar en una tabla varias filas con una sola sentencia INSERT INTO…SELECT si los valores a insertar se pueden obtener como resultado de una consulta. Cada fila resultado de la SELECT forma una lista de valores que son los que se insertan en una nueva fila de la tabla destino.
Ejemplo:
INSERT INTO repres (numemp, oficinarep, nombrerep) SELECT numemp, oficina, nombre FROM empleados WHERE titulo = 'rep ventas'
Selecciona los datos de los empleados que se acreditan con el titulo de rep ventas y los almacena en la tabla repres.
Modificar el contenido de las filas ( UPDATE )
La sentencia UPDATE modifica los valores de una o más columnas en las filas seleccionadas de una o varias tablas.
UPDATE origen SET campo = expresión
• Origen puede ser un nombre de tabla, un nombre de consulta o una composición de tablas, también puede incluir la cláusula IN si la tabla a modificar se encuentra en una base de datos externa.
• La cláusula SET especifica qué columnas van a modificarse y qué valores asignar a esas columnas
• campo, es el nombre de la columna a la cual queremos asignar un nuevo valor por lo tanto debe ser una columna de la tabla origen
• La expresión en cada asignación debe generar un valor del tipo de dato apropiado para la columna indicada. La expresión debe ser calculable a partir de los valores de la fila que se está actualizando. Expresión no puede ser una subconsulta.
Ejemplo
UPDATE alumnos SET edad =20
Modifica el valor del campo edad en 20
Ejemplo:
Queremos poner a cero el limite de credito de los clientes asignados a empleados de la oficina 12.
UPDATE clientes SET limitecredito = 0
WHERE repclie IN (SELECT numemp FROM empleados WHERE oficina = 12);
Borrar filas (DELETE)
La sentencia DELETE elimina filas de una tabla.
DELETE * FROM pedidos WHERE clie IN (SELECT numclie FROM clientes WHERE nombre = 'Julian López');
DELETE pedidos.* FROM pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie WHERE nombre = 'Julian López';
DELETE * FROM pedidos; o DELETE FROM pedidos; Borra todas las filas de pedidos
ACTIVIDAD DE APRENDIZAJE
EJERCICIO 10
Hacer una copia de las tablas que
hay en la base de datos
1.- clic derecho en una tabla ,
elegir copiar
2.- clic derecho en un lugar vacio
del área de tablas y elegir pegar
Cambiar el nombre a las tablas que
se copiaron
1.- clic derecho sobre el nombre de
una tabla y elegir cambiar nombre.
Consulta 1
Eliminar los contenidos de cada
tabla
Delete * from mastros2
Delete * from alumnos2
CONSULTA 2
INSERTA EN UNA NUEVA TABLA LOS
ALUMNOS QUE ESTUDIAN EN EL GRUPO 505
Insert intto alumnos2(matricula,
nombres, apellidos, teléfono, especialidad, aula, faltas, reportes, fec_nac,
localidad, grupo, domicilio, padre, no_trabajador) SELECT matricula, nombres,
apellidos, teléfono, especialidad, aula, faltas, reportes, fec_nac, localidad,
grupo, domicilio, padre, no_trabajador from alumnos
alumnos2
|
|||||||||||||
matricula
|
nombres
|
apellidos
|
telefono
|
especialidad
|
aula
|
faltas
|
reportes
|
fec_nac
|
localidad
|
grupo
|
domicilio
|
padre
|
no_trabajador
|
090780095-7
|
heidi natali
|
carmona arriga
|
4163432
|
informatica
|
5
|
0
|
2
|
23/03/1993
|
santa cruz
|
505
|
20 de Noviembre #8
|
hector Carmona
|
1
|
120780031-7
|
Lizbeth guadalupe
|
valencia lozano
|
4168614
|
informatica
|
5
|
0
|
0
|
15/04/1997
|
tamazula
|
505
|
morelos#372
|
aidee lozano
|
3
|
120780261-0
|
genesis natalia
|
Godinez Rodriguez
|
4164567
|
informatica
|
5
|
0
|
2
|
23/09/1996
|
tamazula
|
505
|
col. San Antonio #28
|
miguel godinez
|
1
|
CONSULTA 3
EN LA TABLA MAESTROS 2 INSERTA LOS
DATOS DE LOS MAESTROS QUE VIVEN EN TAMAZULA
Insert into maestros2(nombre,
apellido, domicilio, teléfono, localidad, notrabajador, fec_nac, salario)
SELECT nombre, apellido, domicilio, teléfono, localidad, notrabajador, fec_nac,
salario from maestros where loclaidad=”Tamazula”
maestros2
|
|||||||
nombre
|
apellido
|
domicilio
|
telefono
|
localidad
|
notrabajador
|
fec_nac
|
salario
|
Jose enrique
|
vivas torres
|
conocido
|
tamazula
|
1
|
19/05/1974
|
$3,000.00
|
Consulta 4
Actualizar las faltas a los alumnos
que están en la tabla alumnos2 a los cuales se les justificaran todas
UPDATE alumnos2 set faltas=0
alumnos2
|
|||||||||||||
matricula
|
nombres
|
apellidos
|
telefono
|
especialidad
|
aula
|
faltas
|
reportes
|
fec_nac
|
localidad
|
grupo
|
domicilio
|
padre
|
no_trabajador
|
090780095-7
|
heidi natali
|
carmona arriga
|
4163432
|
informatica
|
5
|
0
|
2
|
23/03/1993
|
santa cruz
|
505
|
20 de Noviembre #8
|
hector Carmona
|
1
|
120780031-7
|
Lizbeth guadalupe
|
valencia lozano
|
4168614
|
informatica
|
5
|
0
|
0
|
15/04/1997
|
tamazula
|
505
|
morelos#372
|
aidee lozano
|
3
|
120780261-0
|
genesis natalia
|
Godinez Rodriguez
|
4164567
|
informatica
|
5
|
0
|
2
|
23/09/1996
|
tamazula
|
505
|
col. San Antonio #28
|
miguel godinez
|
1
|
5. Modificar el salario del maestro
incrementando el 20%
UPDATE maestros2 set salario =
(salario + (salario*.20))
maestros2
|
|||||||
nombre
|
apellido
|
domicilio
|
telefono
|
localidad
|
notrabajador
|
fec_nac
|
salario
|
Jose enrique
|
vivas torres
|
conocido
|
tamazula
|
1
|
19/05/1974
|
$3,600.00
|
5. Modifica
dejando en cero los reportes de los alumnos donde su apellido comience por local.
UPDATE alumnos2 set reportes = 0
WHERE Apellidos LIKE "A*" OR Apellidos LIKE "E*" OR
Apellidos LIKE "I*" OR Apellidos LIKE "O*" OR Apellidos
LIKE "U*"
Como ningún apellido empieza con
vocal se sugiere:
UPDATE alumnos2 set reportes = 0
WHERE Apellidos LIKE "G*"
alumnos2
|
|||||||||||||
matricula
|
nombres
|
apellidos
|
telefono
|
especialidad
|
aula
|
faltas
|
reportes
|
fec_nac
|
localidad
|
grupo
|
domicilio
|
padre
|
no_trabajador
|
090780095-7
|
heidi natali
|
carmona arriga
|
4163432
|
informatica
|
5
|
0
|
2
|
23/03/1993
|
santa cruz
|
505
|
20 de Noviembre #8
|
hector Carmona
|
1
|
120780031-7
|
Lizbeth guadalupe
|
valencia lozano
|
4168614
|
informatica
|
5
|
0
|
0
|
15/04/1997
|
tamazula
|
505
|
morelos#372
|
aidee lozano
|
3
|
120780261-0
|
genesis natalia
|
Godinez Rodriguez
|
4164567
|
informatica
|
5
|
0
|
0
|
23/09/1996
|
tamazula
|
505
|
col. San Antonio #28
|
miguel godinez
|
1
|
Eliminar a los alumnos que hayan
nacido en el año 1993
Delete * from alumnos2 where year(fec_nac)= 1993
alumnos2
|
|||||||||||||
matricula
|
nombres
|
apellidos
|
telefono
|
especialidad
|
aula
|
faltas
|
reportes
|
fec_nac
|
localidad
|
grupo
|
domicilio
|
padre
|
no_trabajador
|
120780031-7
|
Lizbeth guadalupe
|
valencia lozano
|
4168614
|
informatica
|
5
|
0
|
0
|
15/04/1997
|
tamazula
|
505
|
morelos#372
|
aidee lozano
|
3
|
120780261-0
|
genesis natalia
|
Godinez Rodriguez
|
4164567
|
informatica
|
5
|
0
|
0
|
23/09/1996
|
tamazula
|
505
|
col. San Antonio #28
|
miguel godinez
|
1
|
Consulta 9
Eliminar las filas de los alumnos que tomaron
clases del trabajador 1
DELETE * FROM ALUMNOS2 WHERE
No_trabajador=1
alumnos2
|
|||||||||||||
matricula
|
nombres
|
apellidos
|
telefono
|
especialidad
|
aula
|
faltas
|
reportes
|
fec_nac
|
localidad
|
grupo
|
domicilio
|
padre
|
no_trabajador
|
120780031-7
|
Lizbeth guadalupe
|
valencia lozano
|
4168614
|
informatica
|
5
|
0
|
0
|
15/04/1997
|
tamazula
|
505
|
morelos#372
|
aidee lozano
|
3
|
Elabore en su libreta algunos enunciados de consulta que hagan operaciones para insertar registros a alguna tabla nueva, actualice la información de algunos campos de los registros que haya en la tabla, elimine registros según el criterio determinado.
Lista de cotejo de evaluacion 1.2.1
No hay comentarios.:
Publicar un comentario