Modificar la clave primaria de la tabla Countrylanguage

MySQLMySQLBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás cómo modificar la clave primaria de la tabla countrylanguage en una base de datos MySQL. La clave primaria inicial se basaba solo en la columna CountryCode, pero para una mejor organización, crearás una clave primaria compuesta utilizando las columnas CountryCode y Language.

👀 Vista previa

MariaDB [world]> DESC countrylanguage;
+-------------+---------------+------+-----+---------+-------+
| Campo       | Tipo          | Nulo | Clave | Predeterminado | Extra |
+-------------+---------------+------+-----+---------+-------+
| CountryCode | char(3)       | NO   | PRI |         |       |
| Idioma      | char(30)      | NO   | PRI |         |       |
| EsOficial   | enum('T','F') | NO   |     | F       |       |
| Porcentaje  | decimal(4,1)  | NO   |     | 0.0     |       |
+-------------+---------------+------+-----+---------+-------+
4 filas en set (0.001 segundos)

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo acceder a MySQL utilizando el comando sudo sin contraseña
  • Cómo importar datos de un archivo SQL en una base de datos MySQL
  • Cómo modificar la clave primaria de una tabla a una clave compuesta

🏆 Logros

Después de completar este proyecto, podrás:

  • Comprender la importancia de utilizar una clave primaria compuesta para una mejor organización de datos
  • Modificar con confianza la estructura de la clave primaria de una tabla MySQL
  • Aplicar tus conocimientos de instrucciones SQL para lograr las modificaciones deseadas en la base de datos

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/DataDefinitionandIntegrityGroup(["Data Definition and Integrity"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") sql/BasicSQLCommandsGroup -.-> sql/select("SELECT statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/alter_table("Table Modification") sql/BasicSQLCommandsGroup -.-> sql/insert("INSERT INTO statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") sql/BasicSQLCommandsGroup -.-> sql/create_table("CREATE TABLE statements") sql/BasicSQLCommandsGroup -.-> sql/alter_table("ALTER TABLE statements") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") sql/DataDefinitionandIntegrityGroup -.-> sql/constraints("Constraints") subgraph Lab Skills mysql/use_database -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} sql/select -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} mysql/alter_table -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} sql/insert -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} mysql/source -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} sql/create_table -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} sql/alter_table -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} mysql/database -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} sql/constraints -.-> lab-301358{{"Modificar la clave primaria de la tabla Countrylanguage"}} end

Acceder a MySQL e Importar los Datos

En este paso, aprenderás cómo acceder a MySQL utilizando el comando sudo sin ninguna contraseña e importar los datos de /home/labex/project/world.sql en MySQL.

  1. Abra una terminal y ejecute el siguiente comando para iniciar el servicio MySQL:
sudo service mysql start
  1. Acceda a MySQL utilizando el comando sudo sin ninguna contraseña:
sudo mysql
  1. Importe los datos de /home/labex/project/world.sql en MySQL y cambie a la base de datos world:
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;

Modificar la Clave Primaria

En este paso, aprenderás cómo modificar la clave primaria de la tabla countrylanguage a una clave compuesta formada por CountryCode y Language.

  1. Abra el archivo changePri.sql.
  2. Agregue las siguientes instrucciones SQL al archivo changePri.sql:
-- Eliminar la restricción de clave primaria original
ALTER TABLE countrylanguage DROP PRIMARY KEY;

-- Agregar las restricciones de clave primaria compuesta
ALTER TABLE countrylanguage ADD PRIMARY KEY (CountryCode, Language);
  1. Guarde el archivo changePri.sql.
  2. Ejecute el script changePri.sql en MySQL:
MariaDB [world]> SOURCE /home/labex/project/changePri.sql;
  1. Verifique los cambios en la tabla countrylanguage:
MariaDB [world]> DESC countrylanguage;

La salida ahora debe mostrar la clave primaria compuesta formada por CountryCode y Language.

+-------------+---------------+------+-----+---------+-------+
| Campo       | Tipo          | Nulo | Clave | Predeterminado | Extra |
+-------------+---------------+------+-----+---------+-------+
| CountryCode | char(3)       | NO   | PRI |         |       |
| Idioma      | char(30)      | NO   | PRI |         |       |
| EsOficial   | enum('T','F') | NO   |     | F       |       |
| Porcentaje  | decimal(4,1)  | NO   |     | 0.0     |       |
+-------------+---------------+------+-----+---------+-------+
4 filas en set (0.001 segundos)
✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.