Descripción general de la lección y conocimientos necesarios
Para completar con éxito esta lección, se recomienda que complete tanto la instalación de MySQL (como se describe en la siguiente lección de Estudyando.com – Instalación de MySQL Server para la programación de bases de datos) y la Aplicación práctica para bases de datos relacionales y SQL: Creación de una base de datos en MySQL.
Deberias ser capaz de:
- Definir el modelo relacional
- Definir claves primarias y externas
- Realizar una función INSERT de SQL
Código de programa
Cuando creó una base de datos MySQL básica, creó cuatro tablas: coches, tipo de carro, fabricante y pistas. Las tablas se muestran en la Figura 1.
![]() |
La tabla de coches y la tabla de fabricante se unen a través del atributo ManufacturerID (clave principal para la tabla de fabricante; clave externa para la tabla de coches).
Crear la consulta SQL
Primero, haga clic en el icono + SQL en Workbench para crear una nueva consulta SQL como se muestra en la Figura 2:
![]() |
Considere el orden de entrada de datos. Si vamos a ingresar registros para vagones de tren, lo más probable es que desee ingresar datos del fabricante para tener una identificación de fabricante para el vagón de tren. Ingresemos esa consulta primero.
INSERT INTO train.manufacturer (ManufacturerName)
VALUES ('Athearn');
Haga clic en el icono Ejecutar:
![]() |
La clave principal, ManufacturerID, se numera automáticamente, por lo que no es necesario que la especifique. Repita el código anterior y agregue algunos fabricantes más: Atlas, Bowser, Kato, Marklin, etc. A continuación, haga clic con el botón derecho en la tabla de fabricantes en la pestaña Esquemas y seleccione la opción para consultar las primeras 1000 filas, como se muestra en la Figura 4.
![]() |
La figura 5 muestra los resultados de la consulta. Sus resultados pueden ser diferentes, según los datos que ingresó en la tabla:
![]() |
Aplicación de código
¡Ahora es tu turno de escribir consultas SQL!
Ahora mismo tenemos una identificación de fabricante. La tabla de coches tiene otra clave externa, carTypeID. Esto está conectado a la clave principal en la tabla de tipos de cartuchos. Ingrese registros en la tabla carType. Los tipos de vagones incluyen, pero no se limitan a: locomotora, furgón de cola, vagón de carbón, vagón de mineral, vagones, etc.
Preguntas de seguimiento
Con las dos tablas creadas hasta ahora, ahora debería poder ingresar registros en la tabla de autos. Responda las siguientes preguntas para mejorar sus habilidades.
Ingrese datos en la tabla de autos
Ingrese algunos datos de muestra en la tabla de automóviles, asegurándose de incluir los valores de clave externa que coincidan con las claves primarias del fabricante y las tablas de tipo de carro. Antes de ingresar, sugerimos consultar tanto las tablas carType como las del fabricante para que pueda acceder fácilmente a esos valores.
Ingrese datos en la tabla de pistas
Luego, ingrese registros en la tabla de pistas, asegurándose de ingresar ID de fabricante válidos. Los tipos de pistas pueden ser rectas, curvas, divisorias, motorizadas, etc.
Ingrese un ID de fabricante no válido
Ahora, ingrese un registro en la tabla de autos, pero ingrese un ID de fabricante no válido (por ejemplo, 905). ¿Qué sucede cuando intenta ejecutar la consulta?
Escala de vías y trenes
Observe cómo tenemos el atributo de escala en un par de tablas (pistas y autos). ¿Cómo podríamos cambiar la base de datos para mantener la normalización? ¿Cómo afectaría esto la forma en que ingresamos los datos?
Clave de respuesta
A continuación se encuentran las respuestas a la aplicación del código y las preguntas de seguimiento.
Aplicación de código
Debería haber ingresado varias líneas de SQL para ingresar los datos. El siguiente código puede ingresarse en el editor SQL y ejecutarse a la vez. ¡Solo asegúrese de tener el punto y coma al final de cada línea que desee ejecutar!
INSERT INTO train.cartype (carType)
VALUES ('furgón de cola');
INSERT INTO train.cartype (carType)
VALUES ('locomotora');
INSERT INTO train.cartype (carType)
VALUES ('vagón de carbón');
INSERT INTO train.cartype (carType)
VALUES ('mineral car');
INSERT INTO train.cartype (carType)
VALUES ('vagón');
Preguntas de seguimiento
Las respuestas a las preguntas de seguimiento se detallan a continuación.
Ingrese datos en la tabla de autos
Ingrese algunos datos de muestra en la tabla de carros, asegurándose de incluir los valores de clave externa que coincidan con las claves primarias del fabricante y las tablas de tipo de carro.
El carID es un campo que se incrementa automáticamente, por lo que no tenemos que ingresarlo. ¡Pero recuerde que carTypeID y ManufacturerID deben coincidir con los valores existentes que ingrese! El siguiente SQL es una entrada de muestra de coches para la tabla.
INSERT INTO train.cars (carTypeID, wheelCount, ManufacturerID, scale)
VALUES (1, 8, 1, 'N');
INSERT INTO train.cars (carTypeID, wheelCount, ManufacturerID, scale)
VALUES (1, 6, 3, 'HO');
INSERT INTO train.cars (carTypeID, wheelCount, ManufacturerID, scale)
VALUES (6, 4, 4, 'HO');
Puede parecer extraño ingresar principalmente números, pero este es el quid del modelo relacional. Las tablas se unen mediante claves primarias / externas que lo mantienen todo organizado. A medida que avance en el curso, redactará consultas que unan todos estos datos y los presenten de forma agradable.
Ingrese datos en la tabla de pistas
Luego, ingrese registros en la tabla de pistas, asegurándose de ingresar ID de fabricante válidos.
INSERT INTO train.tracks (trackType, scale, conectores, ManufacturerID)
VALUES ('Powered', 'HO', 4, 4);
La Figura 6 muestra una muestra de los tipos de vías que puede tener en una base de datos de trenes modelo.
![]() |
ID de fabricante no válido
Ingrese un ID de fabricante de 905 en la tabla de autos, como se muestra en la declaración INSERT:
INSERT INTO train.cars (carTypeID, wheelCount, ManufacturerID, scale)
VALUES (1, 12, 905, 'N');
Cuando ejecuta esta declaración, MySQL muestra un error en la parte inferior como se muestra en la Figura 7.
![]() |
Si pasa el cursor sobre el mensaje, dice:
Código de error: 1452. No se puede agregar o actualizar una fila secundaria: falla una restricción de clave externa ('trenes'. 'Autos', RESTRICCIÓN 'carMan' LLAVE EXTRANJERA ('ID de fabricante') REFERENCIAS 'fabricante' ('ID de fabricante') ON DELETE CASCADE EN CASCADA DE ACTUALIZACIÓN)
Esto significa que no hay ningún ID de fabricante coincidente de 905 en la tabla de fabricantes; deberá ingresar una identificación válida.
Normalización
Se repite el atributo de escala . Deberíamos crear otra tabla llamada scale y agregarle un scaleID . Esto requeriría que volvamos a ingresar los datos en la base de datos para reemplazar el valor de la escala en las tablas con el ID de la escala real.
Continúa con:
- Álgebra
Problemas de práctica del teorema binomial
Pasos del teorema del binomio Aunque el teorema del binomio es el atajo para elevar...
- Administración
Aplicación práctica: redacción de preguntas para entrevistas de trabajo
Preparación para escribir preguntas de entrevista Antes de entrevistar a un candidato potencial para su...
- Negocios
Aplicación práctica: preparación de estados financieros
Preparación de estados financieros Los estados financieros de una organización se encuentran entre sus documentos...
- Administración
Aplicación práctica: Infografía de los 14 principios de gestión de Henri Fayol
Por qué los 14 principios de gestión de Fayol son importantes en la actualidad Los...







