1. 데이터 타입
1) 테이블에 데이터가 저장되는 형태이다.
2) 데이터 유형
3) 문자형
-CHAR(길이) : 고정길이 문자열 저장. CHARACTER(길이)
예) CHAR(5) : 컴럼에 4자리 문자열을 저장하면 맨끝에 1자리가 공백으로 채워진다.
- VARCHAR(길이) : 가변길이 문자열 저장. CHARACTER VARYING(길이)
예) VARCHAR(5) : 컬럼에 4자리 문자열을 저장하면 4자리 문자열만 저장한다.
- TEXT : 길이 제한이 없는 가변길이 문자열
4) 숫자형
- NUMERIC(총자릿수, 소수점자릿수)
예) NUMERIC(7,3) : 최대 9999.999까지 저장한다.
- NUMERIC(총자릿수)
예) NUMERIC(7) : 최대 9999999까지 저장한다.
- SMALLINT : 정수형 저장
- INTEGER, INT
- BIGINT (스토리지 용량 많이 사용, DBMS 성능)
- SERIAL : 데이터가 저장될때 순차적으로 유일한 숫자(번호)가 저장한다.
5) 날짜형
- DATE : 날짜값 저장한다. yyyy-mm-dd (2022-09-21)과 같은 형식 사용한다.
- TIME
TIME(정밀도)
- 시간값 저장
- 시간값 최대 6자리의 정밀도를 가짐
- TIMESTAMP : 시간대(TIMEZONE)가 없는 년월일시분초.마이크로세컨드 저장한다.
- TIMESTAMPTZ :시간대(TIMEZONE)가 없는 년월일시분초.마이크로세컨드 저장한다.
2. 테이블 생성
1) 계약조건
- NOT NULL :컴럼의 값에 널이 들어갈수 없다. 반드시 데이터 값이 들어가야 한다.
- UNIQUE : UNIQUE 컬럼에 들어가는 값은 테이블 내에서 유일함을 보장한다.
- PRIMARY KEY : NOT NULL + UNIQUE한 값이 들어가는 것을 보장한다.
- CHECK : 컬럼의 값이 사용자가 지정한느 특정 표현식을 만족하는 테이터가 들어간다. ex) 학점 컬럼은 0.00 ~ 4.50 범위의 값만 허용한다.
- FOREIGN KEY : 해당 컬럼의 값은 참조하는 부모 테이블에 PK로써 존재하는 것을 보장한다.
3. 테이블 수정
1) 컬럼에 대한 ADD, DROP, RENAME
2) 컬럼에 대한 CHECK 제약조건 추가
3) 컬럼에 대한 UNIQUE 제약조건 추가
4. 테이블 내용(데이터) 비우기
5. 테이블 복사 명령
1) 기존 테이블의 테이블 구조 및 데이터를 복사한다.
6. 기본키 (PK, PRIMARY KEY)
1) 테이블 내에서 교유하게 행을 식별하는데 사용되는 컬럼 또는 컬럼이다.
2) 테이블 생성 + 기본키 지정
3) 테이블 생성 + 기본키 지정 + 제약조건명 정의
4) 테이블 생성, 기본키 지정
5) 테이블 생성, 데이터 입력, SERIAL 형식의 기본키 추가
7. 외래키 (FK, FOREIGN KEY)
1) (부모) 테이블의 기본키를 참조하는 (자식)테이블의 컬럼 또는 컬럼들의 조합이다.
2) 부모/자식 테이블 생성 및 외래키 생성 옵션 - NO ACTION ; 자식을 가지고 있는 부모테이블의 행을 삭제하려고 하면 삭제 못하게 하는 것이다.
3) 부모/자식 테이블 생성 및 외래키 생성 옵션 - SET NULL ; set null 옵션은 자식을 가지고 있는 부모행을 삭제하려고 하면 자식행의 값을 NULL로 세팅한다.
4) 부모/자식 테이블 생성 및 외래키 생성 옵션 - CASCADE ; CASCADE옵션은 자식을 가지고 있는 부모행을 삭제하려고 하면 자식행도 삭제해버린다.
8. 체크 제약조건
1) 컬럼값에 대한 제약을 거는 것이다.
9. UNIQUE 제약조건
1) 컬럼 혹은 컬럼 조합에 대한 유니크 제약을 거는 것이다.
2) 유니크 제약이 걸린 컬럼 혹은 컬럼 조합에 대한 인덱스가 자동으로 생성된다.
10. NOT NULL
1) 특정 컬럼에 값이 NULL이 들어오는 것을 차단하는 것이다.
2) NULL
- 알 수 없거나 정보가 누락되었다는 것을 나타낸다.
- 빈 문자열이나 숫자 0과는 다르다.
3) NULL 비교
- 특정 컬럼값이 NULL인지 아닌지 비교하는 방법
- IS NULL : 값이 NULL인지 판단
- IS NOT NULL : NULL이 아닌지 판단
'프로그래밍 > SQL' 카테고리의 다른 글
[SQL] WHERE ORDER BY GROUP BY LIKE LIMIT FETCH CAST 문자열 날짜 수학 집계 함수 (0) | 2022.09.27 |
---|---|
[SQL] 데이터 언어 종류 DDL DML DCL 데이터 수정 및 삭제 (0) | 2022.09.26 |
[SQL] 데이터 모델링 서식 설정과 데이터 모델링 예제 (0) | 2022.09.24 |
[ SQL ] 정규화 개념 목적 용어 정의 1차 2차 3차 (0) | 2022.09.23 |
[SQL] 식별자 비식별자 분류 관계 (0) | 2022.09.22 |