[DBMS]SQL 기초
카테고리: DBMS
[7] SQL 기초
7.1. 데이터 타입
- 테이블에 데이터가 저장되는 형태
- 데이터 유형
- 문자형
- CHAR(길이) : 고정길이 문자열 저장
- CHARATER(길이)
- 예) CHAT(5) : 컬럼에 4자리 문자열을 저장하면 맨 끝이 1자리가 공백으로 채워짐
- VARCHAR(길이) : 가변길이 문자열 저장
- CHARCTER VARCHAR(길이)
- 예) VARCHAR(5) : 컬럼에 4자리 문자열을 저장하면 4자리 문자열만 저장함
- TEXT : 길이 제한이 없는 가변길이 문자열 저정
- VARCHAR
- 숫자형
- NUMERIC(총자리수, 소수점자릿수)
- 예) NUMERIC(7,3) : 최대 9999.999 까지 저장
- NUMERIC(총자리수)
- 예) NUMERIC(7) : 최대 9999999 까지 저장
- SMALLINT : 정수형 데이터 저장 , 크기는 2BYTE
- INTEGER , INT : 크기는 4BYTE
- BIGINT (스토리지 용량 많이 사용, DBMS 성능 저하)
- SERIAL
- 데이터가 저장될때 순차적으로 유일한 숫자(번호)가 저장
- NUMERIC(총자리수, 소수점자릿수)
- 날짜형
- DATE
- 날짜값 저장
- 일자 데이터를 저장
- yyyy-mm-dd (2020-09-21) 과 같은 형식 사용
- TIME
- TIME(정밀도)
- 시간값 저장
- 시간 데이터 저장
- 시간값 최대 6자리의 정밀도를 가짐
- TIMESTAMP
- 일자와 시간 데이터를 모두 저장
- TIMESTAMPTZ
- 시간대(TIMEZONE)가 없는 년월일시분초.마이크로세컨드 저장
- TIMESTAMP’Z’?
- 시간대(TIMEZONE)가 있는 년월일시분초.마이크로세컨드 저장
- INTERVAL
- 시간 간격
- DATE
- BOOLEAN 형
- BOOLEAN
- 참과 거짓의 값을 저장
- BOOLEAN
7.2. 테이블 생성
- 제약조건
- 테이블을 구성하는 각각의 컬럼들은 제약조건을 가질 수 있음.
- NOT NULL
- 컬럼의 값이 NULL이 들어갈수 없다.
- 반드시 데이터 값이 들어가야 함.
- UNIQUE
- UNIQUE 컬럼에 들어가는 값은 테이블 내에서 유일함을 보장함
- 해당 제약 조건이 있는 컬럼의 값은 테이블 내에서 유일해야 한다
- PRIMARY KEY
- NOT NULL + UNIQUE 한 값이 들어가는 것을 보장함
- CHECK
- 해당 제약 조건이 있는 컬럼은 지정하는 조건에 맞는 값이 들어가야 함.
- 컬럼의 값이 사용자가 지정하는 특정 표현식을 만족하는 데이터가 들어감.
- ex) 학점 컬럼은 0.00 ~ 4.50 범위의 값만 허용함
- FOREIGN KEY
- 해당 칼럼의 값은 참조하는 부모 테이블에 PK로써 존재하는 것을 보장함
- REFERENCES
- 해당 제약 조건이 있는 컬럼의 값은 참조하는 테이블의 특정 컬럼에 값이 존재해야 함
- NOT NULL
- 테이블을 구성하는 각각의 컬럼들은 제약조건을 가질 수 있음.
- CTAS (CREATE TABLE AS SELECT)
- SELECT 문을 기반으로 하는 CREATE TABLE 할수 있는 CREATE 문
-
문법
CREATE TABLE NEW_TABLE AS SELECT 문
CREATE TABLE IF NOT EXISTS NEW_TABLE AS SELECT 문
7.3. 테이블 수정
- 컬럼에 대한 ADD, DROP, RENAME
- 컬럼에 대한 CHECK 제약조건 추가
- 컬럼에 대한 UNIQUE 제약조건 추가
7.4. 테이블 내용(데이터) 비우기
- TRUNCATE table : 데이터 비우기
- drop table : 테이블 삭제
- drop table if exists : 오류 대신 ‘테이블 없음, 무시함’ 뜸
- delete from 조건 : 튜플 단위 삭제
7.5. 테이블 복사 명령
- 기존 테이블의 테이블 구조 및 데이터를 복사. 단, 제약조건은 복사 안됨.
7.6. 기본키 (PK, PRIMARY KEY)
- 테이블내에서 고유하게 행을 식별하는데 사용되는 컬럼 또는 컬럼들의 조합
- 테이블 생성 + 기본키 지정
- 테이블 생성 + 기본키 지정 + 제약조건명 정의
- 테이블 생성, 기본키지정(ALTER TABLE + ADD)
- 테이블 생성, 데이터 입력, SERIAL 형싱의 기본키 추가
7.7. 외래키 (FK, FOREIGN KEY)
- (부모) 테이블의 기본키를 참조하는 (자식)테이블의 컬럼 또는 컬럼들의 조합
- 부모/자식 테이블 생성 및 외래키 생성 옵션 - NO ACTION : 삭제 안됨
- 부모/자식 테이블 생성 및 외래키 생성 옵션 - SET NULL : 삭제 후 NULL 채움
- 부모/자식 테이블 생성 및 외래키 생성 옵션 - CASCADE : 종속된 자식것까지 삭제
7.8. CHECK 체크 제약조건
- 컬럼값에 대한 제약을 거는 것임
7.9. UNIQUE 제약조건
- 컬럼 혹은 컬럼 조합에 대한 유니크 제약을 거는 것임.
- 유니크 제약이 걸린 컬럼 혹은 컬럼 조합에 대한 인덱스가 자동으로 생성됨.
7.10. NOT NULL
- 특정 칼럼에 값이 NULL 이 들어오는 것을 차단
- NULL
- 알 수 없거나 정보가 누락되었음
- 빈 문자열이나 숫자 0 과는 다름
- NULL 비교
- 특정 컬럼 값이 NULL 인지 아닌지 비교하는 방법
- IS NULL : NULL 인지 판단
- IS NOT NULL : NULL 이 아닌지 판단
댓글 남기기