소개
이 프로젝트에서는 MySQL 데이터베이스의 countrylanguage 테이블의 기본 키를 수정하는 방법을 배우게 됩니다. 초기 기본 키는 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)
🎯 작업
이 프로젝트에서는 다음을 배우게 됩니다:
- 비밀번호 없이
sudo명령을 사용하여 MySQL 에 접근하는 방법 - SQL 파일을 MySQL 데이터베이스로 가져오는 방법
- 테이블의 기본 키를 복합 키로 수정하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 더 나은 데이터 구성을 위해 복합 기본 키를 사용하는 것의 중요성을 이해합니다.
- MySQL 테이블의 기본 키 구조를 자신 있게 변경할 수 있습니다.
- 원하는 데이터베이스 수정을 위해 SQL 문에 대한 지식을 적용할 수 있습니다.
MySQL 접속 및 데이터 가져오기
이 단계에서는 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접근하고, /home/labex/project/world.sql에서 MySQL 로 데이터를 가져오는 방법을 배우게 됩니다.
- 터미널을 열고 다음 명령을 실행하여 MySQL 서비스를 시작합니다:
sudo service mysql start
- 비밀번호 없이
sudo명령을 사용하여 MySQL 에 접근합니다:
sudo mysql
/home/labex/project/world.sql에서 MySQL 로 데이터를 가져오고world데이터베이스로 전환합니다:
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;
기본 키 수정
이 단계에서는 countrylanguage 테이블의 기본 키를 CountryCode와 Language로 구성된 복합 키로 수정하는 방법을 배우게 됩니다.
changePri.sql파일을 엽니다.- 다음 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);
changePri.sql파일을 저장합니다.- MySQL 에서
changePri.sql스크립트를 실행합니다:
MariaDB [world]> SOURCE /home/labex/project/changePri.sql;
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 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



