[SQL] PRIMARY KEY, FOREIGN KEY

김주하·2024년 3월 12일

Primary key(기본키)

  • 테이블의 각 레코드를 식별
  • 중복되지 않은 고유값을 포함
  • NULL값을 포함할 수 없음
  • 테이블 당 하나의 기본키를 가짐 (여러 컬럼에 기본키 설정 가능, 이때 여러 컬럼을 하나의 기본키로 봄)

Primary key 설정

ex)pid를 기본키로 가지는 person테이블 생성

create table person
    (
       pid int NOT NULL,
       name varchar(16),
       age int,
       sex char,
       primary key(pid)
     );

ex)두 컬럼을 기본키로 가지는 테이블 생성

create table animal
     (
        name varchar(16) NOT NULL,
        type varchar(16) NOT NULL,
        age int,
        primary key (name, type)
     );

Primary key 삭제

alter table person
drop primary key;

Primary key 재지정

alter table person
add primary key (pid)
alter table animal
add constraint PK_animal
primary key (name, type);

Foreign key (외래키)

-한 테이블을 다른 테이블과 연결해주는 역할
-참조되는 테이블의 항목은 그 테입블의 기본키 (혹은 단일값)

Foreign key 지정 1

CREATE TABLE orders
(
   oid INT NOT NULL,
   order_no VARCHAR(16),
   pid INT,
   PRIMARY KEY (oid),
   CONSTRAINT FK_person FOREIGN KEY (pid) REFERENCES person(pid)
);

Foreign key 지정 2

create table job
     (
         jid int not null,
         name varchar(16),
         pid int,
         primary key (jid),
         foreign key (pid) references person(pid)
     );

constraint 확인하기

show create table job;


->'job_ibfk_1'가 자동으로 생성됨을 확인

Foreign key 삭제

alter table orders
drop foreign key FK_person;

Foreign key 삭제됐음을 확인하기

show create table orders;


-> CONSTRAINT 사라짐

Foreign key 다시 생성

alter table orders
add foreign key (pid) references person(pid);

0개의 댓글