[sql] 제약 조건과 데이터 액세스

데이터베이스에서는 데이터의 무결성을 보장하기 위해 제약 조건을 사용합니다. 제약 조건은 데이터베이스의 테이블에 설정되며, 특정 규칙을 지키도록 강제합니다. 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 제약 조건