[SQL] 기본 키(Primary Key)와 외래 키(Foreign Key)DB2024. 8. 8. 00:54
Table of Contents
728x90
SQL 기본 키와 외래 키
기본 키(Primary Key, PK)
기본키는 테이블 내의 각 행을 고유하게 식별하는 데 사용되는 열 또는 열 집합이다.
기본키는 고유해야 하며, NULL 값을 가질 수 없다.
기본 키의 특징
- 고유성 : 각 행을 고유하게 식별한다. 즉, 중복값 존재 X
- NULL 불가 : 기본 키는 NULL 값을 가질 수 없다.
기본 키 예제
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(100),
BirthDate DATE
);
위 예제에서는 StudentID
열은 Student
테이블의 기본 키로 설정되어 있다.
따라서 StudentID
는 각 학생을 고유하게 식별하며, NULL 값을 가질 수 없다.
외래 키(Foreign Key, FK)
외래 키는 한 테이블의 열이 다른 테이블의 기본 키를 참조하도록 설정된 열이다.
두 테이블 간의 관계를 정의하는 데 사용된다.
외래 키의 특징
- 무결성 : 외래 키는 참조하는 기본 키가 존재해야 한다.
- 다른 테이블과의 관계 : 외래 키는 두 테이블 간의 관계를 정의한다.
- NULL 가능성 : 외래키는 NULL 값을 가질 수 있다.
외래 키 예제
CREATE TABLE Enrollments (
EnrollmentID INT PRIMARY KEY,
StudentID INT,
CourseID INT,
FOREIGN KEY (StudentID) REFERENCES Students(StudentID)
);
위의 예제에서 StudentID 열은 Enrollments 테이블에서 외래키로 설정되어 있으며, 이는 Students 테이블의 StudentID 열을 참조한다.
이렇게 설정함으로써 Enrollments 테이블의 StudentID 값은 Students 테이블에 존재해야 한다.
기본 키와 외래 키의 관계
예제 코드
CREATE TABLE Students(
StudentID INT PRIMARY KEY,
Name VARCHAR(100),
BirthDate DATE
);
create table Enrollments (
EnrollmentID INT PRIMARY KEY,
StudentID INT,
CourseID INT,
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
create table Courses(
CourseID INT PRIMARY KEY,
CourseName VARCHAR(100)
);
이 예제에서는 Students 테이블과 Courses 테이블 간의 관계를 Enrollments 테이블을 통해 관리한다.
이를 통해 데이터베이스는 학생과 코스 간의 등록 관계를 효율적으로 관리할 수 있다.
결론
기본키와 외래키는 데이터베이스 설계의 핵심 요소이다.
기본키는 테이블의 각 행을 고유하게 식별하고, 외래키는 테이블 간의 관계를 정의한다.
이를 통해 데이터의 무결성을 유지하고, 효율적인 데이터베이스 관리를 할 수 있다.
참고사이트 및 영상
'DB' 카테고리의 다른 글
[DB] 일관성(Consistency) (0) | 2024.12.01 |
---|---|
[DB] 고립성(Isolation) (0) | 2024.12.01 |
[DB] 원자성(Atomicity) (0) | 2024.11.27 |
[DB] 트랜잭션(Transaction) (0) | 2024.11.26 |
[DB] django 에서 다대다(Many-to-Many) 관계 예시 (1) | 2024.09.16 |
@mane Lab :: 마네의 연구소
배움에 즐거움을 느끼는 마네의 연구소입니다. 이미지 출처 : https://www.instagram.com/hoseobiiiiiii._.0410/
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!