메뉴 건너뛰기

2016.12.23 18:21

문자형 데이터

조회 수 5646 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
문자형은 의미상으론 문자열을 저장하는 자료형이지만 문자열 외에도 이미지,동여상등의
바이너리 파일을 보관할수이다.

* 종류 및 설명

------------------------------------------------------------------------------------
[자료형] [설명]
------------------------------------------------------------------------------------
CHAR(M) M만큼의 문자를 저장할수있다,최대 255 문자
------------------------------------------------------------------------------------
VARCHAR(M) CHAR 와 같이 M 만큼의 문자를 저장할수있다. 최대 255 문자
------------------------------------------------------------------------------------
TINYTEXT 255개의 문자를 저장할수있다.
------------------------------------------------------------------------------------
TINYBLOB 255개의 문자를 저장할수있다.
------------------------------------------------------------------------------------
TEXT 65535 개의 문자를 저장할수있다.
------------------------------------------------------------------------------------
BLOB 65535 개의 문자를 저장할수있다.
------------------------------------------------------------------------------------
MEDIUMTEXT 16777215 개의 문자를 저장할수있다.
------------------------------------------------------------------------------------
MEDIUMBLOB 16777215 개의 문자를 저장할수있다.
------------------------------------------------------------------------------------
LONGBLOB 4294967295 (4G) 개의 문자를 저장할수있다.
------------------------------------------------------------------------------------
LONGTEXT 4294967295 (4G) 개의 문자를 저장할수있다
------------------------------------------------------------------------------------
ENUM('value1','value2'...) 문자를 숫자형으로 보관할때 사용
------------------------------------------------------------------------------------
SET('value1','value2'....) 문자를 숫자형으로 보관할때 사용
------------------------------------------------------------------------------------


* CHAR 와 VARCHAR 의 장단점

둘다 최대 255 문자를 가진다는 점에서는 동일하다.
만약 CHAR(10), VARCHAR(10) 이렇게 테이블을 생성하였다면 둘다 최대 10 BYTE 를 저
장할수있다.

만약 둘다 5 개의 문자를 저장한다면 어떻게 될까.

CHAR - 비록 5 개의 문자를 저장하지만 10 BYTE 를 다 사용한다.
VARCHAR - 5 BYTE만 사용한다.

VARCHAR 이 훨씬 저장장치를 효율적으로 사용할수있다.
그러나 CHAR 이 검색에서는 훨씬 좋은 효과를 발휘한다.


* 검색시 대소문자 구별하기

일반적으로 CHAR / VARCHAR는 검색시 대,소문자를 구별하지 않는다.
SOMA 를 찾으나 soma 를 찾으나 둘다 출력이된다.
이렇게 검색시 대소문자를 별하기 위해서는 테이블 생성시 이를 정의해야한다.

BINARY 속성이 그것이다.

mysql> create table ppp (
->
-> num int(10) not null auto_increment,
-> name varchar(50) BINARY,
-> primary key(num)
-> );
Query OK, 0 rows affected (0.00 sec)

mysql> desc ppp;
+-------+--------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------------+------+-----+---------+----------------+
| num | int(10) | | PRI | NULL | auto_increment |
| name | varchar(50) binary | YES | | NULL | |
+-------+--------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)


* TEXT 와 BLOB 의 차이

TEXT 는 아주긴 CHAR 라고 생각하면 된다.
TEXT 는 문자열을 저장할때 사용.

BLOB 는 아주긴 BINARY CHAR 라고 생각하면 된다.
BLOB 는 동영상이나 이미지를 저장할때 사용.


* ENUM / SET 사용하기

ENUM 과 SET 은 MYSQL 내에서 문자열을 숫자로 저장할때 사용된다.


mysql> create table qqq (
->
-> num int(10) not null auto_increment,
-> sex ENUM('남자','여자'),
-> primary key(num)
-> );
Query OK, 0 rows affected (0.00 sec)

mysql> desc qqq;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+----------------+
| num | int(10) | | PRI | NULL | auto_increment |
| sex | enum('남자','여자') | YES | | NULL | |
+-------+---------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)


mysql> insert into qqq (sex) values ('남자');
Query OK, 1 row affected (0.00 sec)

mysql> select * from qqq;
+-----+------+
| num | sex |
+-----+------+
| 1 | 남자 |
+-----+------+
1 row in set (0.00 sec)

mysql> insert into qqq (sex) values ('2');
Query OK, 1 row affected (0.00 sec)

mysql> select * from qqq;
+-----+------+
| num | sex |
+-----+------+
| 1 | 남자 |
| 2 | 여자 |
+-----+------+
2 rows in set (0.00 sec)

mysql> insert into qqq (sex) values ('1');
Query OK, 1 row affected (0.00 sec)

mysql> select * from qqq;
+-----+------+
| num | sex |
+-----+------+
| 1 | 남자 |
| 2 | 여자 |
| 3 | 남자 |
+-----+------+
3 rows in set (0.00 sec)


위에서 처럼 ENUM 으로 정의된 필드는 SELECT 에서는 문자열로 출력되지만 실질적으로
저장장치에는 숫자로 저장된다..

* ENUM 의 장점

1. 공간을 절약할수있다.
2. 검색속도를 향상 시킨다.

  1. No Image 28Jul
    by
    2020/07/28 Views 144 

    엑셀로 되어있는 부분 db로 import하는 방법

  2. No Image 12Apr
    by
    2017/04/12 Views 7316 

    실수로 삭제한 mysql DB 복구방법

  3. No Image 23Dec
    by
    2016/12/23 Views 5668 

    숫자형 데이터 타입

  4. 세자리 마다 콤마 찍기

  5. 서브쿼리

  6. 서로 다른 결과를 한줄로 합쳐서 보여줘야 할 때(GROUP_CONCAT)

  7. No Image 12Apr
    by
    2017/04/12 Views 5071 

    백업시 캐릭터셋(charset) 지정하기

  8. No Image 23Dec
    by 조쉬
    2016/12/23 Views 5646 

    문자형 데이터

  9. No Image 21Nov
    by
    2017/11/21 Views 5387 

    두 테이블을 비교하여 한쪽테이블에는 있지만 다른 테이블에는 없는 값을 뽑아내보자!

  10. No Image 10Jan
    by
    2023/01/10 Views 115 

    데이터베이스별 / 테이블별 용량 확인 하기

  11. No Image 28Dec
    by
    2017/12/28 Views 4262 

    데이터베이스 파티셔닝이란

  12. No Image 23Dec
    by
    2016/12/23 Views 5534 

    데이타베이스 또는 테이블 정보

  13. No Image 23Dec
    by
    2016/12/23 Views 5635 

    덤프할때 한글깨짐 해결

  14. No Image 19Dec
    by
    2015/12/19 Views 8360 

    다양한 단위의 시간차 구하기

  15. No Image 16Nov
    by
    2017/11/16 Views 5076 

    다른 테이블 데이터를 원하는 테이블에 업데이트 시키기

  16. No Image 26Mar
    by
    2021/03/26 Views 147 

    날짜형(DATETIME) 빼기

  17. No Image 23Dec
    by
    2016/12/23 Views 5996 

    날짜와 시간 데이터

  18. No Image 22Dec
    by
    2017/12/22 Views 3976 

    날짜 관련 함수 모음.

  19. No Image 30Aug
    by
    2016/08/30 Views 5812 

    각각의 게시판에서 제일 최근글하나씩을 모아 정렬

  20. No Image 05Mar
    by
    2019/03/05 Views 2096 

    [MySQL] 세로열을 가로열로 출력하기

Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved