1. 테이블
(1) 테이블 정의
- RDBMS에서 데이터를 저장하는 2차원 형태의 데이터베이스 객체
- 데이터를 가장 파악하기 쉬운 구조인 표 형태의 엑셀 시트
- 로우와 컬럼 (또는 행과 열)으로 구성
- 다양한 유형의 속성(컬럼)들을 가진 데이터의 집합(로우)
(2) 테이블 구조
- 컬럼 (열) : 데이터의 속성(ID, Name, Countrycode...)
- 로우 (행) : 테이블의 전체 컬럼이 하나의 로우 구성
- 로우는 개체의 속성, 정보를 나타냄 (위에서는 Kabul의 정보, Herat의 정보 등)
2. 컬럼의 데이터 타입
- 테이블 생성은 로우가 아닌 컬럼에 대한 정의
- 컬럼 정의 시 필요 사항
: 컬럼의 이름(컬럼명), 데이터 타입 등
- 데이터 타입
: 문자형, 숫자형, 날짜형
(1) 문자형 데이터
CHAR (n)
- 고정길이 문자형, n의 최대값 255
- (예) CHAR(3) : 'A' 입력 → 실제 크기는 3문자( 'A' 가 입력)
VARCHAR (n)
- 가변길이 문자형, n의 최대값 65535
- (예) VARCHAR(3) : 'A' 입력 → 실제 크기 1문자
TEXT
- VARCHAR보다 큰 문자 입력 시 사용
① TINYTEXT : 255 Byte
② TEXT : 64 KB
③ MEDIUMTEXT : 16 MB
④ LONGTEXT : 4 GB
BLOB
- Binary Large Object
① TINYBLOB : 255 Byte
② BLOB : 64 KB
③ MEDIUMBLOB : 16 MB
④ LONGBLOB : 4 GB
ENUM
- 특정 값의 목록을 정해놓고 목록에 있는 값들만 입력할 수 있는 문자열 객체 타입
- (예) ENUM('small', 'medium', 'large')
- VARCHAR 타입이 많이 쓰임
(2) 숫자형 데이터
- 숫자형 데이터 선언 시 사용할 수 있는 2가지 옵션
UNSIGNED
- 사용할 경우 양수만 입력 가능
- 미사용 시 : -10 ~ 10, 사용 시 : 0 ~ 20
ZEROFILL
- 빈 자리를 0으로 채움
- 향후 없어질 예정
데이터 타입 | 설명 | 크기 및 범위 |
TINYINT | 정수 | -128 ~ 127 UNSIGNED 0 ~ 255 |
SMALLINT | 정수 | - 32,768 ~ 32,767 UNSIGNED 0 ~ 65,535 |
MEDIUMINT | 정수 | - 8,388,608 ~ 8,388607 UNSIGNED 0 ~ 16,777,215 |
INT | 정수 | - 2,147,483,648 ~ 2,147,483,647 UNSIGNED 0 ~ 4,294,967,295 |
BIGINT | 정수 | - 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 UNSIGNED 0 ~ 18,446,744,073,709,551,615 |
DECIMAL[(M,D)] | 실수 | 소수점 이하 자릿수 포함 최대 65자리 숫자, M 생략 시 10 |
DOUBLE[(M,D)] | 실수 | - 1.7976931348623157E+308 ~ - 2.2250738585072014E - 308, 0, 2.2250738585072014E - 308 ~ 1.7976931348623157E + 308 |
(3) 날짜형 데이터
데이터 타입 | 설명 | 크기 및 범위 |
DATE | 날짜 | 1000-01-01 ~ 9999-12-31 (1000-01-01 이전 날짜 입력 가능) |
DATETIME | 날짜와 시간 | 1000-01-01 00:00:00.000000 ~ 9999-12-31 11:59:59.999999 (1000-01-01 이전 날짜 입력 가능) |
TIME | 시간 | - 838:59:59.000000 ~ 838:59:59.000000 |
YEAR | 연도 | 0000, 1901 ~ 2155 |
TIMESTAMP | 날짜와 시간 | DATETIME 확장, 시간대(TIMEZONE) 까지 저장 |
'Mysql' 카테고리의 다른 글
[MYSQL] 데이터베이스와 SQL (0) | 2022.08.15 |
---|---|
[SQL] CRUD 사용 (0) | 2022.08.11 |
MAC 에서의 <MYSQL ERROR CODE: 1055> (2) | 2022.08.10 |