Constraints(제약조건)
- 제약조건 : 우리가 테이블에서 정의한 특정 규칙이나 한도를 뜻합니다.
- 제약조건 종류는 Primary Key, Foreign Key, Unique Key 등이 있습니다.
Primary Key (기본키)란?
기본키(Primary Key)는 테이블 내의 각 행(row)을 고유하게 식별하는 열(column) 또는 열 그룹입니다.
기본키로 지정된 열은 중복된 값을 허용하지 않으며, NULL 값을 가질 수 없습니다. 하나의 테이블에는 오직 하나의 기본키만 존재할 수 있습니다.
Primary Key (기본키) 사용 방법
create table customers
(
customer_id INT,
first_name varchar(255),
last_name varchar(255),
email_address varchar(255),
number_of_complaints int,
primary key (customer_id)
);
Foreign Key (외래키)란?
외래키(Foreign Key)는 한 테이블의 열(column) 또는 열 그룹이 다른 테이블의 기본키(Primary Key)나 고유키(Unique Key)를 참조하도록 설정된 제약 조건입니다. 외래키는 테이블 간의 관계를 정의하며, 데이터의 무결성과 일관성을 유지하는 중요한 역할을 합니다.
Foreign Key(외래키) 사용 방법
-- 방법 1
alter table sales
ADD foreign key (customer_id) references customers(customer_id) on delete cascade;
-- 방법 2
CREATE TABLE sales
(
purchase_number INT AUTO_INCREMENT,
date_of_purchase DATE,
customer_id INT,
item_code VARCHAR(10),
PRIMARY KEY (purchase_number),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE CASCADE
);
여기서 (on delete cascade)는 부모 레코드에서 값이 삭제되면 이 값을 참조하는 하위 테이블의 모든 레코드 또한 제거 된다는 뜻이다.
그러므로 연쇄 삭제가 일어나니 주의해야 한다.
Unique Key (고유키)란?
고유키(Unique Key)는 데이터베이스 테이블에서 각 행(Row)을 고유하게 식별하기 위해 사용되는 제약 조건입니다.
고유키가 적용된 열(Column)은 중복된 값을 가질 수 없으며, 테이블 내에서 유일한 값을 유지해야 합니다. 이를 통해 데이터의 무결성을 보장하고, 효율적인 검색 및 데이터 관리가 가능해집니다.
Unique Key (고유키) 사용 방법
-- 방법 1
create table customers
(
customer_id INT,
first_name varchar(255),
last_name varchar(255),
email_address varchar(255),
number_of_complaints int,
primary key (customer_id)
unique key (email_address)
);
-- 방법 2
create table customers
(
customer_id INT,
first_name varchar(255),
last_name varchar(255),
email_address varchar(255),
number_of_complaints int,
primary key (customer_id)
);
alter table customers
add unique key (email_address);
위의 두 가지 방식으로 사용 하면 된다.
728x90
'Data Analyst > SQL' 카테고리의 다른 글
SQL - DELETE, TRUNCATE, Aggregate functions(집계함수), IFNULL - COALESCE (0) | 2024.08.29 |
---|---|
SQL - The INSERT Statement, The UPDATE Statement, COMMIT and ROLLBACK (0) | 2024.08.28 |
SQL - Wildcard, IS NULL, Between AND, Distinct, Aggregate Function, Group By, Having, Limit (0) | 2024.08.27 |
SQL - SELECT, WHERE, AND, OR, IN-NOT IN (0) | 2024.08.26 |
SQL - MySQL Constraints - 2 (0) | 2024.08.22 |