데이터베이스에서는 데이터의 무결성을 보장하기 위해 제약 조건을 사용합니다. 제약 조건은 데이터베이스의 테이블에 설정되며, 특정 규칙을 지키도록 강제합니다. SQL에서는 다양한 종류의 제약 조건을 지원하며, 이를 활용하여 데이터의 정확성과 일관성을 유지할 수 있습니다.
1. 기본키 (Primary Key)
기본키는 테이블의 각 레코드를 유일하게 식별하는 역할을 합니다. 기본키는 테이블에 한 개만 설정할 수 있으며, 중복된 값을 가질 수 없습니다. 일반적으로 기본키는 특정 컬럼에 설정되며, 해당 컬럼을 사용하여 레코드를 조회하거나 수정할 수 있습니다.
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
2. 외래키 (Foreign Key)
외래키는 다른 테이블과의 관계를 나타내는데 사용됩니다. 외래키는 다른 테이블의 기본키와 연결되며, 해당 테이블의 데이터와 다른 테이블의 데이터 간에 일관성을 유지할 수 있도록 합니다. 외래키를 설정하려면 외래키 제약 조건을 정의해야 합니다.
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
3. 유니크 (Unique)
유니크 제약 조건은 해당 컬럼에 중복된 값을 입력할 수 없도록 합니다. 기본키와는 달리 유니크 제약 조건은 여러 개 설정할 수 있습니다. 유니크 제약 조건을 설정하면 해당 컬럼의 값을 고유하게 유지할 수 있습니다.
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE,
phone_number VARCHAR(20) UNIQUE
);
4. NOT NULL
NOT NULL 제약 조건은 특정 컬럼에 NULL 값을 허용하지 않도록 합니다. 이는 해당 컬럼에 항상 값이 존재해야 함을 의미합니다.
CREATE TABLE products (
product_id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
데이터 액세스
데이터베이스에서 데이터를 액세스하려면 SQL 문을 사용하여 쿼리를 작성해야 합니다. 액세스할 데이터베이스 테이블을 지정하고 원하는 데이터를 검색하거나 수정하는 등 다양한 작업을 수행할 수 있습니다.
-- employees 테이블에서 모든 레코드 선택
SELECT * FROM employees;
-- employees 테이블에서 특정 조건을 만족하는 레코드만 선택
SELECT * FROM employees WHERE age > 30;
-- employees 테이블에 새로운 레코드 삽입
INSERT INTO employees (employee_id, name, age) VALUES (1, 'John', 35);
-- employees 테이블의 레코드 수정
UPDATE employees SET age = 40 WHERE employee_id = 1;
-- employees 테이블에서 레코드 삭제
DELETE FROM employees WHERE employee_id = 1;
SQL을 사용하여 데이터를 액세스하면 다양한 작업을 수행할 수 있으며, 제약 조건을 통해 데이터의 무결성을 유지할 수 있습니다.
참고: SQL 제약 조건