브래의 슬기로운 코딩 생활
데이터베이스 3주차 정리 본문
Primary Key (기본키)
Primary Key (기본키) 설정하기
CREATE TABLE table_name(
column1 datatype NOT NULL PRIMARY KEY,
column2 datatype,
…
);
ALTER TABLE table_name
ADD PRIMARY KEY (column_name);
이 경우에는 primary key로 설정하는 column이 NOT NULL이어야 한다.
Unique Key (유니크키)
Unique Key (유니크키) 설정하기
CREATE TABLE table_name(
column1 datatype UNIQUE,
column2 datatype UNIQUE,
column3 datatype,
…
);
혹은
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
…,
UNIQUE INDEX index1_name (column1),
UNIQUE INDEX index2_name (column2)
);
이미 만들어진 테이블 스키마를 수정할 때:
ALTER TABLE table_name
ADD UNIQUE INDEX index_name (column_name);
혹은
ALTER TABLE table_name
ADD UNIQUE (column_name);
Index Key (인덱스키)
Index Key (인덱스키) 설정하기
테이블을 새로 만들 때 (column1,2에 대해 인덱스를 만드는 경우):
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
…,
INDEX index1_name (column1),
INDEX index2_name (column2)
);
이미 만들어진 테이블 스키마를 수정할 때:
ALTER TABLE table_name
ADD INDEX index_name (column_name);
AUTO_INCREMENT
AUTO_INCREMENT는 각 칼럼의 기본값으로 설정해 줄 수 있는 옵션 중 하나이다.
- 주로 고유 식별자 번호를 자동으로 발급하는데 사용된다.
- 레코드의 값이 중복되지 않고 1씩 자동 증가하게 된다
※ INSERT INTO로 레코드 추가시 AUTO_INCREMENT에 해당하는 컬럼에 NULL을 넣거나
입자 목록에서 생략하면 자동으로 값이 채워진다.
예시)
INSERT INTO market VALUES(NULL, '김민준', '사과', 50, 1300, '2023-03-07 10:10:10’);
OR
INSERT INTO market (seller, product, amount, price, reg_date)
VALUES('김민준', '사과', 50, 1300, '2023-03-07 10:10:10’);
실습 / 답
무결성 제약조건
> account의 Primary key인 nickname 안에 값들은 NULL 값이나 중복 값이 될 수 없다
> market의 seller에는 account(nickname) 안에 존재하지 않는 값이 들어갈 수 없다.
> market의 seller와 product에는 문자열, amount에는 INT, price에는 BIGINT, reg_date에는 DATETIME 형식의 값이 들어가야 한다.
개념적 Key의 종류
슈퍼키
투플을 유일하게 식별할 수 있는 값이면 모두 슈퍼키가 될 수 있음
(고객 릴레이션 예)
고객번호 | 이름 | 주민번호 | 주소 | 핸드폰 |
1 | 박지성 | 810101-1111111 | 영국 맨체스터 | 000-5000-0001 |
2 | 김연아 | 900101-2222222 | 대한민국 서울 | 000-6000-0001 |
3 | 장미란 | 830101-2333333 | 대한민국 강원도 | 000-7000-0001 |
4 | 추신수 | 820101-1444444 | 미국 클리블랜드 | 000-8000-0001 |
EX) (주민번호), (주민번호, 이름), (주민번호, 이름, 주소), (주민번호, 이름, 핸드폰), (고객번호), (고객번호, 이름, 주소), (고객번호, 이름, 주민번호, 주소, 핸드폰) 등
후보키
(주문 릴레이션 예)
기본키
릴레이션 이름(속성1, 속성2, …. 속성N)
EX) 고객(고객번호, 이름, 주민번호, 주소, 핸드폰) 도서(도서번호, 도서이름, 출판사, 가격)
대리키
대체키
외래키
인덱스 더 알아보기*
인덱스는 B-Tree 형태로 만들어진다
B-Tree : Balanced Tree, 균형트리. DBMS는 빠른 값 검색을 위해 Key를 B-Tree로 정렬해 둔다.*
B-Tree의 말단에 바로 데이터를 정렬해 두는 방식도 있다. 클러스터 방식이라고 한다.*
*논클러스터 방식
*클러스터 방식
'2-1 > 데이터베이스' 카테고리의 다른 글
데이터베이스 5주차 과제 (0) | 2023.04.04 |
---|---|
데이터베이스 5주차 정리 (0) | 2023.04.03 |
데이터베이스 4주차 정리 (0) | 2023.03.27 |
데이터베이스 2주차 정리 (0) | 2023.03.13 |
데이터베이스 1주차 정리 (0) | 2023.03.06 |