반응형
250x250
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Notice
Recent Posts
Today
Total
관리 메뉴

네이처리 노트

[Mysql] 데이터테이블의 필드타입, 제약조건, 인덱스 본문

개발기록/Mysql

[Mysql] 데이터테이블의 필드타입, 제약조건, 인덱스

네이처리 2022. 10. 6. 15:51
728x90
반응형

 

공부하면서 정리한 내용입니다

참고한 내용은 링크를 확인해주세요


 

 

-

필드타입 COLUMN TYPE

데이터타입이라고도 하고, 테이블의 컬럼구조를 정의할 때 사용한다.

 

숫자

TINYINT / SMALLINT / MEDIUMINT/ INT / BIGINT 정수 (integer types)
INT( INTEGER) / SMALLINT  표준정수 🚩
SIGNED  정수 
음수까지 표현할 수 있는 
타입
UNSIGNED  정수
양수만을 표현할 수 있는 타입
DEMICAL 고정소수점 (fixed-point types)
FLOAT / DOUBLE 부동소수점(floating-point types)
BIT 비트값 (bit-value type)

문자열

CHAR / VARCHAR 공통점
- 1 
에서 255 글자
- BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다.

차이점
CHAR(20)은 컬럼에 10글자만 저장하더라도, 20자만큼의 기억장소를 차지한다.
반면 VARCHAR(20)은 10글자 만큼의 기억장소를 차지한다.
BINARY / VARBINARY 각 CHAR / VARCHAR 유형과 비슷하지만, 이진 바이트 문자열을 이진이 아닌 문자열로 저장
TEXT 최대 65535 글자

날짜와 시간

DATE
  • YYYY-MM-DD
DATETIME
  • YYYY-MM-DD HH:MM:SS
  • 1테이블에 여러개 존재가능
TIMESTAMP
  • datetime과 동일한 폼이지만 time_zone(글로벌서비스)이라는 것을 적용할 때 사용.
  • 1970년 ~2037년
  • 1테이블에 1개씩 스탬프가능
TIME
  • HH:MM:SS
YEAR
  • YEAR(2) / YEAR(4)
    • 4자리 숫자로 저장하면, 저장할 수 있는 범위는 1901년부터 2155년
    • 4자리 문자열로 저장하면, 저장할 수 있는 범위는 1901년부터 2155년
    • 1자리 또는 2자리 숫자로 저장하면, 1부터 69까지는 2001년부터 2069년,
      70부터 99까지는 1970년부터 1999년까지가 됩니다.
    • 1자리 또는 2자리 문자열로 저장하면, '0'부터 '69'까지는 2000년부터 2069년까지가 되고, '70'부터 '99'까지는 1970년부터 1999년까지가 됩니다.
    • 숫자 0을 저장하면, 2000년이 아닌 0000년으로 저장되므로, 
      2000년은 반드시 문자열 '0' 또는 '00'으로 입력해야 합니다.

🔗datetime과 timestamp의 차이

 

 

 

 

 

 

제약조건 Constraint 

데이터를 입력받을 때 실행되는 검사 규칙

NOT NULL 이 제약 조건이 설정된 필드는 무조건 데이터를 가지고 있어야 합니다.
UNIQUE 이 제약 조건이 설정된 필드는 중복된 값을 저장할 수 없습니다.
PRIMARY KEY 이 제약 조건이 설정된 필드는 중복된 값을 저장할 수 없습니다.
FOREIGN KEY  테이블가 테이블을 연결해주는 역할을 합니다.
UNIQUE나 PRIMARY KEY 제약 조건이 설정되어 있어야 합니다.
DEFAULT   해당 필드 값을 전달하지 않으면, 설정한 기본값을 자동으로 저장합니다.
AUTO INCREMENT 해당 필드 값의 전달하지 않으면, 자동으로 수를 증가하여 추가한다. 

 

 

인덱스 Index

테이블에 인덱스 추가

ALTER TABLE [테이블명] ADD INDEX [인덱스명](column1, ...);

인덱스 추가 생성

CREATE INDEX [인덱스명] ON [테이블명](column1, ...);

 인덱스 확인

SHOW INDEX FROM [테이블명];

인덱스 삭제

 ALTER TABLE [테이블명] DROP INDEX [인덱스명];

 

 

 

 

 


728x90
반응형
Comments