Saltar la navegación

2. Lenguaje de manipulación de datos

Inserción, eliminación y modificación de registros

1. INSERT

Inserta nuevos registros en una tabla existente.
INSERT ... VALUES e INSERT ... SET insertan registros basados en valores explícitamente especificados.
La forma INSERT ... SELECT inserta registros seleccionados de otra tabla o tablas.

  • Primer modo de inserción

INSERT
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...

Ejemplo:

insert into libros (ide, titulo) values(2,"libro");

  • Segundo modo de inserción

INSERT
[INTO] tbl_name
SET col_name={expr | DEFAULT}, ...

Ejemplo:

 insert into libros set ide=3,titulo="nuevo";

  • Tercer modo de inserción

INSERT
[INTO] tbl_name [(col_name,...)]
SELECT ...

Ejemplo:

insert into libros (ide,titulo) select * from editoriales;

 2. REPLACE

Funciona exactamente como INSERT, excepto que si un valor de la tabla tiene el mismo valor que un nuevo registro para un índice PRIMARY KEY o UNIQUE , el antiguo registro se borra antes de insertar el nuevo.

  • Primer modo de reemplazo

REPLACE
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...

Ejemplo:

replace into libros (ide, titulo) values(2,"libro");

  • Segundo modo de reemplazo

REPLACE
[INTO] tbl_name
SET col_name={expr | DEFAULT}, ...

Ejemplo:

replace into libros set idl=2,ide=3,titulo="Raspberry Pi 3";

  • Tercer modo de reemplazo

REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
SELECT ...

Ejemplo:

replace into libros (ide,titulo) select * from editoriales;

3. UPDATE

Actualiza los valores de los atributos de tablas existentes con nuevos valores. La cláusula SET indica qué columna modificar y los valores que puede recibir. La cláusula WHERE , si se da, especifica qué registros deben actualizarse. De otro modo, se actualizan todos los registros. La cláusula LIMIT es el límite de registros a actualizar.

UPDATE tbl_name
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]

Ejemplo:

update libros set fecha='2020-02-20' where ide=3 limit 2;

4. DELETE

DELETE FROM tbl_name
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]

Borra los registros de tbl_name que satisfacen la condición dada por where_definition, y retorna el número de registros borrados.

Ejemplo:

delete from libros order by titulo desc limit 1;

Tarea 2.1 - Insertar, eliminar y modificar registros

Fecha de entrega:
17 de septiembre
Modalidad:
Individual

Desarrollo de la actividad:

  • Crea una tabla con cuatro atributos
    • El primer atributo de tipo entero para almacenar tu llave primaria
    • El segundo atributo de tipo varchar
    • El tercer atributo de tipo enum
    • El cuarto atributo de tipo date
  • Crea una segunda tabla con la misma estructura de la tabla anterior
  • Realiza las siguientes instrucciones SQL
    • Inserta tres registros a la primera tabla con el comando INSERT ... VALUES
    • Inserta dos registros a la segunda tabla con el comando INSERT ... SET
    • Inserta dos registros en la primera tabla con el comando INSERT ... SELECT, tomando información de la segunda tabla
    • Inserta un registro en la primera tabla con el comando REPLACE ... VALUES
    • Modifica la fecha de un registro de la primera tabla con el comando REPLACE .., SET
    • Modifica el atributo de tipo enum de la primera tabla con el comando UPDATE
    • Elimina los tres registros más antiguos (de acuerdo al valor del atributo de tipo date) utilizando el comando DELETE ... WHERE
  • Capturar pantallas durante la ejecución de los comandos

Detalles de la entrega:

  • Enviar al correo jpena@suryucatan.tecnm.mx
  • Adjuntar archivo en formato PDF
    • Incluir instrucción SQL a modo texto
    • Incluir el pantallazo al ejecutar la instrucción SQL
  • Escribir el correo con asunto: 5A ó 5B + Apellido1 Nombre1  + - Tarea 2.1 (ejemplo del asunto de correo: 5B Peña Jimmy - Tarea 2.1)

Tarea 2.2 - Consultas

Fecha de entrega:
24 de septiembre
Modalidad:
Individual

Preparación:

  • Modifica tu BD biblioteca, insertando nuevos registros a la tabla libros, de acuerdo a la siguiente imagen

Insert Libros

Desarrollo de la actividad:

  • Realizarás las consultas SQL que respondan a las siguientes preguntas:

    • ¿Cuántas editoriales hay?

    • ¿Cuál es el libro más antiguo?

    • ¿Cuántos libros hay por editorial? (Listar nombre de la editorial y total de libros)

    • ¿De qué editorial hay menos libros? (Listar nombre de la editorial)

    • ¿Qué libros tienen en su título las letras "y" y "r"? (Listar el título y nombre de editorial)

  • Al ejecutar cada consulta SQL captura tu pantalla como evidencia

Detalles de la entrega:

  • Enviar al correo jpena@suryucatan.tecnm.mx
  • Adjuntar archivo en formato PDF
    • Anexar el comando SQL a modo texto que responda a la pregunta presentada
    • Anexar pantallazo al ejecutar el script
  • Escribir el correo con asunto: 5A ó 5B + Apellido1 Nombre1  + - Tarea 2.2 (ejemplo del asunto de correo: 5A Peña Jimmy - Tarea 2.2)

Join y Subconsultas

JOIN

Esta instrucción se emplea para combinar dos o más tablas, tomando un campo común de las tablas, normalmente declaradas como llaves primaria y foránea, respectivamente.

Para explicar y ejemplificar la combinación de la información de dos tablas, se empleará la Base de Datos biblioteca, la cual está integrada por dos tablas editoriales y libros.

tablas

A partir de la información presentada de las tablas editoriales y libros, se puede realizar una consulta clásica, combinando la información de ambas tablas por medio de la instrucción WHERE.

where

Otra forma de combinar la información es por medio de la instrucción JOIN acompañada de USING, en la cual declaramos el atributo en común.

using

También podemos combinar información de ambas tablas por medio de la reunión natural, con la instrucción NATURAL JOIN.

Natural Join

Como se puede observar, en todos los casos previos, la combinación de las tablas editoriales y libros no muestra información de la editorial Prentice Hall, dado que no tiene algún libro relacionado. Para visualizar la información de todos los registros de la tabla padre, aún cuando no tengan algún registro relacionado en la tabla hijo, se ha de emplear la instrucción NATURAL LEFT JOIN.

Left Join

A pesar de que los ejemplo previos tratan de la combinación de dos tablas, también podemos realizar la unión de resultados de dos consultas por medio de la instrucción UNION.

union

SUBCONSULTAS

Una subconsulta es un comando SQL en el que aparece una instrucción SELECT dentro de otra instrucción SELECT.

Ejemplo 1. Listar las editoriales que hayan publicado libros cuyo título contenga la palabra datos.

  • Lo primero sería listar los libros que contengan la palabra datos

subconsulta 1 parte 1

  • Posterior, relacionar este resultado con la tabla editoriales, para listar el nombre de la editorial

subconsulta 1 parte 2

  • Por último, de dicho resultado, visualizar únicamente el nombre de la editorial, para ello será necesario asignarle un alias a la consulta previa, en este caso se le asignó el alias resultado

subconsulta 1 parte 3

Ejemplo 2. Listar las editoriales que hayan publicado más de dos libros.

  • Primero debemos identificar cuántos libros ha publicado cada editorial, en esta ocasión se usó el alias total al resultado de la cuenta de libros

subconsulta 2 parte 1

  • Posteriormente seleccionaremos únicamente las editoriales que cumplan con tener más de dos libros, para este paso usaremos la instrucción HAVING, la cual es empleada para realizar condiciones sobre los grupos formados con la instrucción GROUP BY

subconsulta 2 parte 2

  • Por último, listaremos únicamente el nombre de la editorial, para ello se usará el alias consulta al resultado anterior

subconsulta 2 parte 3

Reto

Lee e interpreta la ejecución de las siguiente subconsultas.

reto 1

reto 2

Variables y Vistas

Variables

La definición de una variable en MySQL va precedida de la instrucción SET y del símbolo @. Para consultar el valor almacenado se emplea la instrucción SELECT.

Ejemplo. Asignar a la variable e el nombre de la primera editorial y visualizar su contenido.

Variables parte 1

Ejemplo 2. Listar el registro de la tabla editoriales, cuyo nombre coincide con la variable e.

Variables parte 2

Vistas

Una vista es una consulta que se presenta como una tabla. Las vistas tienen la misma estructura que una tabla: filas y columnas. Se crean con el comando CREATE VIEW definiendo un nombre para almacenar esta nueva estructura.

Ejemplo. Crear una vista que contenga el nombre de los libros con sus editoriales.

create view

Para visualizar el contenido de una vista, se emplea el mismo tratamiento como si se tratase de una tabla, es decir, se emplea el comando SELECT.

mostrar vista

Tarea 2.3 Subconsultas

Fecha de entrega:
18 de octubre
Modalidad:
Binas o individual

Desarrollo de la actividad:

  • Crea una base de datos (tema libre), que contenga dos tablas relacionadas, empleando llaves primarias y llaves foráneas.
  • Inserta cuatro registros a la tabla padre (aquella que define como llave primaria el atributo en común de las dos tablas).
  • Inserta diez registros a la tabla hijo (aquella que contiene la llave foránea).
  • Realiza la unión de dos consultas, primero definirás el enunciado (la instrucción en español que debe realizar) y posterior el comando SQL que resuelve dicha instrucción.
  • Realiza cuatro subconsultas, primero definirás el enunciado (la instrucción en español que debe realizar) y posterior el comando SQL que resuelve dicha instrucción.
  • Crea dos vistas que apoyen para consultar e interpretar la información de la base de datos, incluye la descripción de las vistas.

Detalles de la entrega:

  • Enviar al correo jpena@suryucatan.tecnm.mx
  • Adjuntar archivo en formato PDF, anexar:
    • La descripción de la instrucción a realizar
    • El comando SQL a modo texto que responda a la pregunta presentada
    • El pantallazo al ejecutar el comando
  • Escribir el correo con asunto: 5A ó 5B + Apellido1 Nombre1 + , Apellido2 Nombre2 - Tarea 2.3 (ejemplo del asunto de correo: 5A Peña Jimmy, Peña Jair- Tarea 2.3)