Изменить первичный ключ таблицы Countrylanguage

MySQLMySQLBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте вы научитесь изменять первичный ключ таблицы countrylanguage в базе данных MySQL. Исходный первичный ключ был основан только на столбце CountryCode, но для лучшей организации вы создадите составной первичный ключ, используя оба столбца CountryCode и Language.

👀 Предварительный просмотр

MariaDB [world]> DESC countrylanguage;
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| CountryCode | char(3)       | NO   | PRI |         |       |
| Language    | char(30)      | NO   | PRI |         |       |
| IsOfficial  | enum('T','F') | NO   |     | F       |       |
| Percentage  | decimal(4,1)  | NO   |     | 0.0     |       |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.001 sec)

🎯 Задачи

В этом проекте вы научитесь:

  • Как обращаться к MySQL с использованием команды sudo без пароля
  • Как импортировать данные из SQL-файла в базу данных MySQL
  • Как изменить первичный ключ таблицы на составной ключ

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться в важности использования составного первичного ключа для лучшей организации данных
  • С уверенностью вносить изменения в структуру первичного ключа таблицы MySQL
  • Применять свои знания SQL-запросов для достижения желаемых изменений в базе данных

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sql(("SQL")) -.-> sql/DataDefinitionandIntegrityGroup(["Data Definition and Integrity"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) 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{{"Изменить первичный ключ таблицы Countrylanguage"}} sql/select -.-> lab-301358{{"Изменить первичный ключ таблицы Countrylanguage"}} mysql/alter_table -.-> lab-301358{{"Изменить первичный ключ таблицы Countrylanguage"}} sql/insert -.-> lab-301358{{"Изменить первичный ключ таблицы Countrylanguage"}} mysql/source -.-> lab-301358{{"Изменить первичный ключ таблицы Countrylanguage"}} sql/create_table -.-> lab-301358{{"Изменить первичный ключ таблицы Countrylanguage"}} sql/alter_table -.-> lab-301358{{"Изменить первичный ключ таблицы Countrylanguage"}} mysql/database -.-> lab-301358{{"Изменить первичный ключ таблицы Countrylanguage"}} sql/constraints -.-> lab-301358{{"Изменить первичный ключ таблицы Countrylanguage"}} end

Доступ к MySQL и импорт данных

В этом шаге вы научитесь обращаться к MySQL с использованием команды sudo без пароля и импортировать данные из /home/labex/project/world.sql в MySQL.

  1. Откройте терминал и выполните следующую команду, чтобы запустить службу MySQL:
sudo service mysql start
  1. Доступ к MySQL с использованием команды sudo без пароля:
sudo mysql
  1. Импортируйте данные из /home/labex/project/world.sql в MySQL и переключитесь на базу данных world:
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;

Изменить первичный ключ

В этом шаге вы научитесь изменить первичный ключ таблицы countrylanguage на составной ключ, состоящий из CountryCode и Language.

  1. Откройте файл changePri.sql.
  2. Добавьте следующие SQL-выражения в файл changePri.sql:
-- Delete the original primary key constraint
ALTER TABLE countrylanguage DROP PRIMARY KEY;

-- Add the compound primary key constraints
ALTER TABLE countrylanguage ADD PRIMARY KEY (CountryCode, Language);
  1. Сохраните файл changePri.sql.
  2. Запустите скрипт changePri.sql в MySQL:
MariaDB [world]> SOURCE /home/labex/project/changePri.sql;
  1. Проверьте изменения в таблице countrylanguage:
MariaDB [world]> DESC countrylanguage;

В выводе должно теперь отображаться составной первичный ключ, состоящий из CountryCode и Language.

+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| CountryCode | char(3)       | NO   | PRI |         |       |
| Language    | char(30)      | NO   | PRI |         |       |
| IsOfficial  | enum('T','F') | NO   |     | F       |       |
| Percentage  | decimal(4,1)  | NO   |     | 0.0     |       |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.001 sec)
✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.