logo

MySQL 고유 키

MySQL의 고유 키는 열에 저장될 모든 값이 고유하도록 보장하는 단일 필드 또는 필드 조합입니다. 이는 열에 저장할 수 없음을 의미합니다. 중복된 값 . 예를 들어, 'student_info' 테이블에 있는 학생의 이메일 주소와 출석 번호 또는 'Employee' 테이블에 있는 직원의 연락처 번호는 고유해야 합니다.

MySQL을 사용하면 테이블에서 UNIQUE 제약 조건이 있는 두 개 이상의 열을 사용할 수 있습니다. 그것은 받아들일 수 있습니다 없는 값이지만 MySQL은 열당 하나의 null 값만 허용했습니다. 그것은 보장합니다 진실성 테이블에 다른 값을 저장하기 위한 열 또는 열 그룹.

고유 키의 필요성

  • 두 레코드가 동일한 값을 열에 저장하는 것을 방지하는 데 유용합니다.
  • 체계적인 방식으로 정보에 접근할 수 있도록 데이터베이스의 무결성과 신뢰성을 유지하는 고유한 값만 저장합니다.
  • 또한 테이블의 고유성을 유지하기 위해 외래 키와 함께 작동합니다.
  • 테이블에 null 값이 포함될 수 있습니다.

통사론

다음 구문은 고유 키를 생성하는 데 사용됩니다. MySQL .

테이블에 하나의 고유 키 열만 생성하려면 아래와 같은 구문을 사용하십시오.

 CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... ); 

테이블에 두 개 이상의 고유 키 열을 생성하려면 아래와 같은 구문을 사용하십시오.

 CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) ); 

고유 제약 조건에 대한 이름을 지정하지 않은 경우 MySQL은 이 열에 대한 이름을 자동으로 생성합니다. 따라서 테이블을 생성할 때 제약조건 이름을 사용하는 것이 좋습니다.

매개변수 설명

다음 표에서는 매개변수에 대해 자세히 설명합니다.

매개변수 이름 설명
테이블_이름 우리가 만들 테이블의 이름입니다.
열1, 열2 테이블에 포함된 열 이름입니다.
제약_이름 고유 키의 이름입니다.
컬럼_이름 고유 키가 될 열 이름입니다.

고유 키 예

다음 예에서는 MySQL에서 고유 키가 사용되는 방법을 설명합니다.

이 명령문은 테이블 '을 생성합니다. 학생2 ' UNIQUE 제약 조건이 있는 경우:

 CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) ); 

다음으로, 아래 나열된 삽입 쿼리를 실행하여 작동 방식을 이해하세요.

 mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Peter', '[email protected]', 22, 'Texas'), (2, 'Suzi', '[email protected]', 24, 'California'), (3, 'Joseph', '[email protected]', 23, 'Alaska'); mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Stephen', '[email protected]', 22, 'Texas'); 

산출

아래 출력에서 ​​우리는 첫 번째를 볼 수 있습니다 INSERT 쿼리 올바르게 실행되지만 두 번째 문이 실패하고 다음과 같은 오류가 발생합니다. Stud_ID 키에 대해 '1' 항목이 중복되었습니다.

문자열을 int로 변환 java
MySQL 고유 키

고유 키를 정의하려는 경우 여러 열 , 아래와 같이 쿼리를 사용합니다.

 CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25), CONSTRAINT uc_rollno_email Unique(Roll_No, Email) ); 

출력에서 고유 키 값에 두 개의 열이 포함되어 있음을 알 수 있습니다. 롤_아니요 그리고 이메일 .

MySQL 고유 키

이를 확인하려면 다음 명령문을 실행하십시오.

 mysql> SHOW INDEX FROM Student3; 

여기서는 고유 제약 조건이 테이블에 성공적으로 추가되었음을 확인할 수 있습니다.

Q1은 몇 달입니까?
MySQL 고유 키

고유 키 삭제

ALTER TABLE 문을 사용하면 테이블에서 고유 키를 삭제할 수도 있습니다. 고유 키를 삭제하는 데 다음 구문이 사용됩니다.

 ALTER TABLE table_name DROP INDEX constraint_name; 

위 구문에서, 테이블_이름 수정하려는 테이블의 이름입니다. 제약_이름 제거할 고유 키의 이름입니다.

이 문은 uc_rollno_email 테이블에서 영구적으로 제한됩니다.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

이를 위해 SHOW INDEX 문을 실행할 수 있습니다.

ALTER TABLE 문을 사용하는 고유 키

이 명령문을 사용하면 기존 테이블을 수정할 수 있습니다. 때로는 기존 테이블의 열에 고유 키를 추가하고 싶을 때가 있습니다. 그런 다음 이 명령문은 해당 열에 대한 고유 키를 추가하는 데 사용됩니다.

통사론

다음은 고유 키를 추가하는 ALTER TABLE 문의 구문입니다.

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

이 명령문은 테이블 '을 생성합니다. 학생3 ' 테이블 정의에 고유 키 열이 없습니다.

 CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) ); 

테이블을 생성한 후 이 테이블에 고유 키를 추가하려면 아래와 같이 ALTER TABLE 문을 실행해야 합니다.

 mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email); 

두 문이 모두 성공적으로 실행된 출력을 볼 수 있습니다.

MySQL 고유 키

이를 확인하려면 다음 명령문을 실행하십시오.

 mysql> SHOW INDEX FROM Student3; 

여기서는 고유 제약 조건이 테이블에 성공적으로 추가되었음을 확인할 수 있습니다.

MySQL 고유 키