- NUMERIC(p,q) : 소수점 자리 표시 가능 (p = 전체자리수, q = 소수점자리수)
- SERIAL(INTEGER default, 1부터 차례로 들어감)
- TIMESTAMP : 현재 세계 표준시(TIMESTAMPTZ : 시간대 정보 반영)
- TIME WITH TIME ZONE : 시간정보만표시 + TIMESTAMPTZ
- TIMEZONE : 현재 위치이며 수정 가능 (ex. 'Asia/Seoul)
- JSONB : 이진 형태로 분해 후 저장, 처리속도가 JSON보다 빠르지만 입력이 느림,
'2020-07-26 20:00:25+09' 형태로 집어넣으면 각각의 자료형에 맞게 값이 추가가 된다.
CAST(연산자) data AS want_data_type : 형변환 === data::want_data_type
(SELECT '3000'::INTEGER; === SELECT CAST ('3000' AS INTEGER);)
NUMERIC(p, s)로 정수 값의 제한이 가능하다. p는 원하는 길이, s는 소수점 자리이므로 s에 0을 주면 원하는 길이의 정수를 출력할 수 있다.(s값을 안줘도 가능)
무결성 조건
- 개체 무결성 : 모든 테이블이 기본키(PK)를 가져야 함. NULL 허용 X
- 참조 무결성 : 외래키 값이 null이거나 참조된 테이블의 기본값과 같아야 함.
- 범위 무결성 : 사용자가 정의한 도메인 내에서 DB의 모든 열을 정의하도록 규정
-->>> NOT NULL, UNIQUE, 기본키, 외래키,
(UNIQUE NOT NULL == PRIMARY KEY)
UNIQUE (column1, column2) : column1, column2가 unique임.
지우면 안되는 경우 : ON DELETE NO ACTION, ON DELETE RESTRICT(부모와 자식이 연결되어있으면 삭제 x)
지워야하는 경우 : ON DELETE CASADE(참조하고 있는 데이터도 같이 삭제), ON DELETE SET DEAFAULT, ON DELETE SET NULL(삭제시 NULL로 바뀜)
CHECK (조건문) : 조건문이 TRUE일때만 가능
ALTER TABLE table_name ADD COLUMN column_name domain : 칼럼을 테이블에 추가
ALTER... CASCADE : 부모 개체가 함께 삭제됨.
ALTER... DROP 제약 조건 : 제약 조건이 삭제됨.
ALTER... ADD FOREIGN KEY... : 외래키 추가
ALTER COLUMN name SET DATA TYPE new_data_type : 데이터 타입 재지정 BUT 이미 있는 value가 다른 자료형이라면 불가. (형변환 가능시 형변환 -> 끝에 USING name::new_data_type)
INSERT문에서 한 구문에 여러 값을 추가하려면 VALUES에 (),(),()....이런식으로 추가가 가능하다!
java -> spring framework / python -> fastAPI framework
localhost : 본인의 컴퓨터를 지칭, 127.0.0.1과 같음