SQL 기초 - 8. TABLE KEY

냄비짱·2022년 7월 10일
0

SQL 기초

목록 보기
9/11
post-thumbnail
post-custom-banner

1. PRIMARY KEY

  • 테이블의 각 레코드를 식별
  • 중복되지 않은 고유값을 포함
  • NULL 값을 포함할 수 없음
  • 테이블 당 하나의 기본키를 가짐
  • column 단일, 복수 column에 모두 지정 가능

🎯 KEY 생성


- 새로운 table을 생성할 때 key 입력

✍ 코드

CREATE TABLE tablename
(
column1 datatype NOT NULL,
coulmn2 datatype NOT NULL,
...
CONSTRAINT constraint_name            => 생략 가능
PRIMARY KEY (column1, column2, ...)
);
  • 기존 table에 새로운 key를 입력할 때

✍ 코드

ALTER TABLE tablename
ADD PRIMARY KEY (column1, column2, ...);

- 예제 1 : 단일 column 에 primary key 입력

✍ 입력

CREATE table person
(
pid int NOT NULL,
name varchar(16),
age int,
sex char,
PRIMARY KEY (pid)
);

desc person;

💻 출력

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| pid   | int         | NO   | PRI | NULL    |       |  # key 등록 완료
| name  | varchar(16) | YES  |     | NULL    |       |
| age   | int         | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.02 sec)

- 예제 2 : 복수 column 에 primary key 입력

✍ 입력

CREATE table animal
(
name varchar(16) NOT NULL,
type varchar(16) NOT NULL,
age int,
CONSTRAINT PK_Person
PRIMARY KEY (name, type)
);

desc animal;

💻 출력

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(16) | NO   | PRI | NULL    |       |
| type  | varchar(16) | NO   | PRI | NULL    |       |
| age   | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

📌 테이블 당 기본 key는 하나 뿐이다.
- primary key를 설정해주는 모든 column이 하나의 key


🎯 KEY 삭제

✍ 코드

ALTER TABLE tablename
DROP PRIMARY KEY;

📌 삭제 시에는 key 값 입력이 필요없다.
- primary key는 table 당 하나 이므로 별도의 key값 입력이 필요 없다.

2. FOREIGN KEY

profile
개발도상인 냄비짱
post-custom-banner

0개의 댓글