D-22-SQL

박초화·2024년 1월 24일
0
  1. Primary Key(기본키)
  • 테이블의 각 레코드를 식별
  • 중복되지 않은 고유값을 포함
  • NULL 값을 포함할 수 없음
  • 테이블 당 하나의 기본키를 가짐
  1. Primary Key 생성 문법 - table 생성시

  2. primary key 삭제 문법

alter table tablename
drop primary key;
  1. Primary Key 생성 문법 - 기존 table에서 추가
alter table tablename
add primary key(col1, col2,...);
  1. Foreign Key(외래키)
  • 한 테이블을 다른 테이블과 연결해주는 역할을 함
  • 참조되는 테이블의 항목은 그 테이블의 기본키(혹은 단일값)
  1. Foreign Key 생성 문법
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)
    );
    
# constraint 생략하면 이름 자동생성됨
create table job
    -> (
    -> jid int not null,
    -> name varchar(16),
    -> pid int,
    -> primary key (jid),
    -> foreign key (pid) references person(pid)
    -> );
  1. 자동생성된 constraint 이름 확인 예제
mysql> show create table job;
+-------+------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                                 |
+-------+------------------------------------------------------------------------------------------------------------------------------------+
| job   | CREATE TABLE `job` (
  `jid` int NOT NULL,
  `name` varchar(16) DEFAULT NULL,
  `pid` int DEFAULT NULL,
  PRIMARY KEY (`jid`),
  KEY `pid` (`pid`),
  CONSTRAINT `job_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `person` (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+--------------------------------------------------------------
  1. Foreign key 삭제 문법
alter table tablename
drop foreign key FK_constraint;
  1. Foreign Key 생성 문법 - 기존 table에서 추가
alter table tablename
add foreign key (col) references REF_tablename(REF_col);

alter table orders 
add foreign key (pid) references person(pid);
profile
도전적인 개발자

0개의 댓글