테이블(Table)
데이터 타입
정수형
- 부호 없는 정수는 뒤에 UNSIGNED를 붙인다.
- TINYINT : 1 Byte, -128~127
- TINYING UNSIGNED : 1Byte, 0~255 (음수만큼 양수로 끌어온다)
- SMALLINT : 2 Bytes, -32768~32767, 부호 없을 시 0~65536
- MEDIUMINT : 3 Bytes, -8388608~8388607, 부호 없을 시 0~16777215
- INT : 4Bytes, -2147483648 ~ 2147483647, 부호 없을 시 0~4294967295
- BIGINT : (무제한 수)-9223372036854775808 ~ 9223372036854775807, 8바이트
-- 타입 뒤에 (n)을 붙여 자리수 제한 가능. 가령 TINYINT(1)은 -9-9까지 표현 가능.
소수형
- FLOAT : -3.40282346610^38 ~ -3.40282346610^38, 4바이트
-- 연산을 하다보면 끝자리가 안 맞는 에러가 있으나 double에 비해 메모리가 적다 (메모리효율)
- DOUBLE : -1.7910^308 ~ -1.1710^308, 8바이트
-- 특성상 연산 오류가 발생하여 소숫점 뒷자리가 버려지거나, 연산상 오류가 발생할 수 있음
- DECIMAL(a, b) : (a + 1) Bytes, a는 전체 자리 길이를, b는 소숫점 자리 길이를 지정.
-- 가령 DECIMAL(3, 2) 은 정수 한 자리, 소수 두 자리(#.#)의 형태에 대한 데이터를 가질 수 있다.(쓸 일 잘 없다)
[INT 와 DOUBLE 만 자주 쓰인다]
문자
- VARCHAR(n) : n자 이하의 문자(Bytes), n은 65535 Bytes를 초과하지 않는다.
-- 한 테이블 내에 존재하는 모든 VARCHAR의 길이의 합이 65535를 초과 X
-- 지금은 바이트 단위 X, 글자수 단위 O
ex) (VARCHAR(10) : 언어 구분 없이 10자
- TINYTEXT : 최대 255자
- TEXT : 최대 65535자(Bytes)
- MEDIUMTEXT : 최대 16777215자 (int와는 달리 medium이 기본보다 크다)
- LONGTEXT - 최대 4294969295자
일시(날짜/시간)
- DATE : 3 Bytes, 년/월/일
- TIME : 3 Bytes, 시:분:초
- YEAR : 1 Bytes, 연도
- DATETIME : 8 Bytes, 년/월/일 시:분:초
-- 0000-01-01 00:00:00 ~ 9999-12-31 23:59:59
- TIMESTAMP : 4 Bytes, 년/월/일 시:분:초
-- 1970-01-01 00:00:00 부터 2038-01-19 03:14:07
(UNIX 시간 저장 : 1970년 1월 1일 0시 0분 0초부터 지금까지 지난 시간 초)
기타
- BOOLEAN : 1 Bytes, 참(True)/거짓(False) 값만 가진다. ( TINYINT(1) )
- TYNYBLOB, BLOB, MEDIUMBLOB, LONGBLOB : 이진데이터(파일업로드용)
-- 이진 데이터 : 업로드 한 데이터를 테이블에 담고자 할 때 사용. (첨부파일, 사용자 프로필 사진)
열 속성
NOT NULL : 해당 열 값이 비어있을 수 없음을 의미
DEFAULT x :해당 열 값이 명시되지 않은 경우(NOT NULL 여부와 무관하게) 기본 값으로 x 사용
AUTO_INCREMENT : 해당 열 값에 대해 명시되지 않은 경우 1부터 시작하여 자동 증가한 값을 사용
-- 해당 열이 기본키(Primary Key)일 때에만 작동
테이블 생성
테이블 정보 조회
테이블 삭제 및 조회
가진 테이블이 조회됨.
테이블 열 삭제 및 테이블 이름 변경
테이블 수정 -> 열 추가
테이블 열 수정
x >= y : x가 y이상
x <= y : x가 y이하
x > y : x가 y초과
x < y : x가 y미만
x = y : x가 y랑 같음(숫자, 문자 등)
x <> y : x가 y랑 다름
x IS NULL : x가 NULL임
x IS NOT NULL : x가 NULL이 아님
x AND y : x및 y조건 둘다 참(TRUE)이어야 참을 반환
x OR y : x및 y조건 중 하나 이상이 참이면 참을 반환
COUNT(x) : x의 개수를 반환한다. x는 열(Column)이거나 리터럴(Literal)일 수 있음.