
Primary Key(기본 키)
데이터베이스 테이블 내의 모든 레코드에서 고유한 아이디를 제공한다.
NULL값이 존재할 수 없다.UNIQUE하다.CREATE TABLE user {
id int PRIMARY KEY
}
PRIMARY KEY 붙여준다.중복값과 NULL값이 없어야 한다.CREATE TABLE user {
id int PRIMARY KEY AUTO_INCREMENT
}
❓모든 테이블 마다 기본키가 있어야 하나❓
기본 키를 정의하지 않고 테이블을 생성할 수 는 있지만 DB의 제어 및 관리, 최적화를 위해서라면 기본 키를 생성하는 것이 바람직하다.
Foreign Key(왜래 키)
데이터가 일관될 수 있도록 돕는 역할을 한다. 보통은 두 개의 데이터베이스 테이블을 잇고자 기본 키와 함께 사용된다. 일종의 테이블을 연결하는 가상의 다리 역할을 한다
CREATE TABLE country (
country_id integer,
name varchar(50),
population integer);
CREATE TABLE city (
city_id integer,
name varchar(50),
country_id integer);
제한 표현이 없는 상태에서 데이터베이스는 두 테이블간의 관계를 파악하지 못한다. 따라서 우리가 외래키로 설정한 city테이블의 country_id는 기본 키인 country 테이블의 country_id에 존재하지 않는 값을 입력해도 아무런 문제가 없이 실행된다.
이를 방지하고 DB에게 두 테이블간의 관계를 알려주기 위해 제한 표현을 사용한다.
1. country 테이블에 기본 키 생성하기
DROP TABLE country;
CREATE TABLE country(
country_id integer,
name varchar(50),
population integer,
PRIMARY KEY (country_id) );
2. 기본 키와 외래 키를 정의한 새로운 테이블 생성
DROP TABLE city;
CREATE TABLE city(
city_id integet,
name varchar(50),
country_id integer,
PRIMARY KEY (city_id),
FOREIGN KEY (country_id) REFERENCES country(country_id) );
FOREIGN KEY (country_id) REFERENCES country(country_id)
-> FK는
country_id이고 이것은country(country_id)참조되었다.