Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 Key=MUL 열을 생성하는 방법 완벽 가이드

MySQL에서 Key=MUL로 표시되는 열을 만들려면 ADD KEY를 사용해야 합니다. 기본 구문은 다음과 같습니다.

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName data type,
ADD KEY(yourColumnName);

예제 테이블 생성하기

위 구문을 실제로 이해하기 위해 먼저 간단한 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table Instructor
    -> (
    -> Instructor_Id int,
    -> Instructor_Name varchar(30),
    -> Instructor_CourseName varchar(100)
    -> );
Query OK, 0 rows affected (0.63 sec)

테이블 구조 확인하기

테이블 생성 후 DESC 명령어를 사용하여 테이블 구조를 확인할 수 있습니다. 이 시점에서는 어떤 열에도 MUL 키가 설정되어 있지 않습니다.

mysql> desc Instructor;

실행 결과는 다음과 같습니다.

+-----------------------+--------------+------+-----+---------+-------+
| Field                | Type         | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| Instructor_Id        | int(11)     | YES |     | NULL    |       |
| Instructor_Name      | varchar(30)  | YES |     | NULL    |       |
| Instructor_CourseName | varchar(100) | YES |     | NULL    |       |
+-----------------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

AUTO_INCREMENT 열에 Key=MUL 적용하기

이제 'Instructor_Id' 열을 Key=MUL로 지정하는 쿼리를 실행해 보겠습니다.

mysql> alter table Instructor modify column Instructor_Id int NOT NULL AUTO_INCREMENT,
    -> add key(Instructor_Id);
Query OK, 0 rows affected (2.88 sec)
Records: 0 Duplicates: 0 Warnings: 0

변경 후 다시 한 번 테이블 구조를 확인합니다.

mysql> desc Instructor;

실행 결과는 다음과 같습니다.

+-----------------------+--------------+------+-----+---------+----------------+
| Field                | Type         | Null | Key | Default | Extra         |
+-----------------------+--------------+------+-----+---------+----------------+
| Instructor_Id        | int(11)     | NO  | MUL | NULL    | auto_increment |
| Instructor_Name      | varchar(30)  | YES |     | NULL    |               |
| Instructor_CourseName | varchar(100) | YES |     | NULL    |               |
+-----------------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

일반 열(비기본 키)에 Key=MUL 적용하기

기본 키가 아닌 일반 열에 인덱스를 추가하려면 아래와 같은 쿼리를 사용합니다. 여기서는 'Instructor_Name' 열에 MUL 키를 적용해 보겠습니다.

mysql> alter table Instructor modify column Instructor_Name varchar(30) NOT NULL,
    -> add key(Instructor_Name);
Query OK, 0 rows affected (2.77 sec)
Records: 0 Duplicates: 0 Warnings: 0

마지막으로 테이블 구조를 다시 확인해 보면, 두 개의 필드에 Key 값이 MUL로 표시되는 것을 확인할 수 있습니다.

+-----------------------+--------------+------+-----+---------+----------------+
| Field                | Type         | Null | Key | Default | Extra         |
+-----------------------+--------------+------+-----+---------+----------------+
| Instructor_Id        | int(11)     | NO  | MUL | NULL    | auto_increment |
| Instructor_Name      | varchar(30)  | NO  | MUL | NULL    |               |
| Instructor_CourseName | varchar(100) | YES |     | NULL    |               |
+-----------------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

MUL 키란 무엇일까요?

참고로 MUL은 해당 열이 중복 값을 허용하는 비고유(non-unique) 인덱스의 첫 번째 열임을 의미합니다. PRIMARY KEY나 UNIQUE 제약 조건과 달리 동일한 값이 여러 행에 존재할 수 있으며, 주로 검색 성능 향상을 위해 사용됩니다.