아래의 내용에는 수업에서 배운 이론 내용 위주로 정리함.
커맨드 및 자세한 사용법은 다음 글을 참조.
접근 커맨드 정리
- \list(or \l) : 전체 Database Instance 목록
- \dt : 접속한 DB Instance의 Table 목록
- \ds : Sequence 목록
- \df : Function 목록
- \dv : View 목록
- \du : User 목록
데이터의 기본 형태(스프레드 시트 형태 예시)
1. Boy
BoyNo | BoyName | BoyMobile | GirlNo |
1 | Adam | 0414 1234 | 1 |
2 | Bob | 0414 1235 | 2 |
3 | Charlie | 0414 1238 | 2 |
4 | Dennis | <NULL> | <NULL> |
여기서 Boy 시트의 BoyNo는 데이터의 고유 번호인 Primary Key 이다.
GirlNo 는 Foreign Key가 된다.
GirlNo | GirlName | GirlMobile |
1 | Alice | 1234 4123 |
2 | Bonnie | 1234 1414 |
GirlNo 는 Girl 시트의 Primary Key이다.
핵심 기본 4가지 -> Create, Update, Insert, Delete.
1. CREATE
Create table Boy
(
boyNo integer,
boyName char(10),
girlNo integer,
boyMobile char(10),
CONSTRAINT boyNoPK PRIMARY KEY (boyNo),
CONSTRAINT girlNoFK FOREIGN KEY (girlNo) REFERENCES Girl ON DELETE RESTRICT
);
CONSTRAINT boyNoPK PRIMARY KEY (boyNo) -> boyNo를 Primary Key로 지정한다.
CONSTRAINT girlNoFK FOREIGN KEY (girlNo) REFERENCES Girl ON DELETE RESTRICT
-> girlNo를 FOREIGN KEY(외래키) 로 지정하고 REFERENCES Girl: girlNo 열이 참조하는 외부 테이블의 이름은 "Girl"이다.
이것은 현재 테이블의 girlNo 열이 "Girl" 테이블의 어떤 열과 일치해야 함을 나타낸다.
ON DELETE RESTRICT: 이 부분은 외래 키가 참조하는 행이 삭제될 때 어떻게 동작해야 하는지를 지정, 여기서는 "RESTRICT"로 설정되어 있으며, 이는 참조되는 행이 삭제되지 않도록 제한한다는 의미이다. 즉, 현재 행을 참조하는 다른 행이 있을 때만 삭제가 허용됨.
* 다른 ON DELETE 옵션으로는 CASCADE, SET NULL, SET DEFAULT 등이 있음
CREATE TABLE Girl
(
girlNo INTEGER,
girlName CHAR(10),
girlMobile CHAR(10),
CONSTRAINT girlNoPK PRIMARY KEY (girlNo)
);
INTEGER -> 숫자, CHAR(10) -> 글자(글자 수)
CONSTRAINT girlNoPK PRIMARY KEY (girlNo): 이 부분은 테이블에 제약 조건을 지정.
-> 여기에서는 "girlNoPK"라는 Pirmary Key 제약 조건을 girlNo 열에 지정하고 있음.
또한 기본 키는 테이블의 각 레코드를 고유하게 식별하며 고유하고 널이 아닌 값을 가져야 함
2. INSERT
INSERT INTO Girl VALUES(1, 'Alice', '0414 1234');
INSERT INTO Girl VALUES(2, 'Bonnie', '0414 1235');
INSERT INTO TableName VALUES() 식을 사용하여 스키마의 순서대로 넣어준다.
* SELECT * FROM Girl; 식을 통하여 Girl 시트만 선택해서 볼 수 있다.
Entity Integrity: 기본 키
- 각 테이블은 고유한 값을 가져야 하는 열(또는 열들)이 있어야 합니다.
- 예를 들면, 학생 번호, 은행 계좌와 같이 유일한 값을 가져야 하는 열이 있어야 합니다.
Referential Integrity: 외래 키
- 외래 키의 값은 (1) "소스" 테이블의 값과 일치하거나, (2) null일 수 있습니다.
- 테이블 간의 유효한 참조를 보장합니다.
* Nature Join
아무 조건 없이 두 시트를 붙혀버림. ( 보기 아주 불편함 🔥)
1강의 내용은 여기까지...
'UTS study' 카테고리의 다른 글
DATABASE # (0) | 2024.03.10 |
---|---|
DATABASE #3강 _ Entities and Relationships (0) | 2024.03.04 |
DATABASE #2강 _ The Single Entity (0) | 2024.03.04 |
DATABASE 수업 #0 _ PSQL 커맨드 모음 (0) | 2024.03.03 |