countrylanguage 테이블의 기본 키 수정

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 MySQL 데이터베이스의 countrylanguage 테이블의 기본 키를 수정하는 방법을 배우게 됩니다. 초기 기본 키는 CountryCode 열만을 기반으로 했지만, 더 나은 구성을 위해 CountryCodeLanguage 열을 모두 사용하여 복합 기본 키를 생성할 것입니다.

👀 미리보기

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)

🎯 작업

이 프로젝트에서는 다음을 배우게 됩니다:

  • 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접근하는 방법
  • SQL 파일을 MySQL 데이터베이스로 가져오는 방법
  • 테이블의 기본 키를 복합 키로 수정하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • 더 나은 데이터 구성을 위해 복합 기본 키를 사용하는 것의 중요성을 이해합니다.
  • MySQL 테이블의 기본 키 구조를 자신 있게 변경할 수 있습니다.
  • 원하는 데이터베이스 수정을 위해 SQL 문에 대한 지식을 적용할 수 있습니다.

MySQL 접속 및 데이터 가져오기

이 단계에서는 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접근하고, /home/labex/project/world.sql에서 MySQL 로 데이터를 가져오는 방법을 배우게 됩니다.

  1. 터미널을 열고 다음 명령을 실행하여 MySQL 서비스를 시작합니다:
sudo service mysql start
  1. 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접근합니다:
sudo mysql
  1. /home/labex/project/world.sql에서 MySQL 로 데이터를 가져오고 world 데이터베이스로 전환합니다:
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;
✨ 솔루션 확인 및 연습

기본 키 수정

이 단계에서는 countrylanguage 테이블의 기본 키를 CountryCodeLanguage로 구성된 복합 키로 수정하는 방법을 배우게 됩니다.

  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. MySQL 에서 changePri.sql 스크립트를 실행합니다:
MariaDB [world]> SOURCE /home/labex/project/changePri.sql;
  1. countrylanguage 테이블에 대한 변경 사항을 확인합니다:
MariaDB [world]> DESC countrylanguage;

이제 출력 결과는 CountryCodeLanguage로 구성된 복합 기본 키를 표시해야 합니다.

+-------------+---------------+------+-----+---------+-------+
| 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 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.