[프로그래밍] DataBase

[DataBase] Table 제약조건

JHVan 2024. 5. 12. 22:11

데이터베이스의 테이블에 저장된 데이터가 특정 규칙을 따르도록 강제하는 규칙 또는 제한

데이터의 정확성, 일관성, 신뢰성을 보장하기 위해 사용

 

PRIMARY KEY (기본 키 제약 조건)

  • 각 행을 고유하게 식별하는 데 사용되는 열(또는 열의 조합)에 적용
  • 기본 키로 지정된 열은 NULL 값을 가질 수 없으며, 테이블 내에서 각 행은 고유한 기본 키 값을 가져야 함

users 테이블에 user_id를 기본 키로 설정하는 예

CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

 

FOREIGN KEY (외래 키 제약 조건) 

  • 두 테이블 간의 관계를 정의하고, 참조 무결성을 유지하기 위해 사용
  • 외래 키 값은 참조되는 테이블의 기본 키 또는 고유 키와 일치해야 함

orders 테이블에서 user_id를 외래 키로 설정하여 users 테이블의 user_id와 연결하는 예

CREATE TABLE orders (
    order_id SERIAL PRIMARY KEY,
    order_date DATE NOT NULL,
    user_id INTEGER,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
);

 

UNIQUE (고유 제약 조건) 

  • 열에 저장된 모든 값이 고유해야 함을 지정
  • NULL 값은 고유 값으로 간주되지 않으므로, 하나의 컬럼에 여러 NULL 값이 있을 수 있음

users 테이블에서 email이 유일하도록 설정하는 예

CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL
);

 

CHECK (체크 제약 조건) 

  • 열에 저장될 수 있는 값의 범위를 지정

products 테이블에서 price가 0보다 크도록 제한하는 예

CREATE TABLE products (
    product_id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL NOT NULL,
    CHECK (price > 0)
);

 

NOT NULL (널이 아닌 제약 조건) 

  • 열에 NULL 값이 허용되지 않음을 지정
  • 데이터가 반드시 입력되어야 하는 열에 사용

users 테이블에서 usernameemail이 NULL이 될 수 없도록 설정하는 예

CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

'[프로그래밍] DataBase' 카테고리의 다른 글

[DataBase] SQL 구문  (0) 2024.05.15
[DataBase] SQL  (0) 2024.05.15
[DataBase] 무결성  (0) 2024.05.12
[DataBase] Key  (0) 2024.05.11
[DataBase] DataBase Table  (0) 2024.05.10