• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 1. 데이터 형식 요약
    1. 수치 형의 개요
    2. 날짜 및 시간 형식 개요
    3. 문자열의 개요
    2. 수치형
    3. 날짜와 시간 형
    4. 문자열
    5. 공간 데이터의 확장
    6. 데이터 형 기본값
    7. 데이터 유형의 스토리지 요구 사항
    8. 컬럼에 적절한 형태의 선택
    9. 기타 데이터베이스 엔진의 데이터 형식 사용
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

11.1.3 문자열의 개요

문자열 데이터 형식의 요약 설명합니다. 문자열의 특성 및 스토리지 요구 사항에 대한 자세한 내용은 섹션 11.4 "문자열" 과 섹션 11.7 "데이터 유형의 스토리지 요구 사항" 을 참조하십시오.

MySQL은 문자열 컬럼을 CREATE TABLE 또는 ALTER TABLE 문에서 주어진 형태와는 다른 형태로 변경 될 수 있습니다. 섹션 13.1.17.3 "암묵적 컬럼 지정 변경" 을 참조하십시오.

MySQL은 문자 컬럼 정의의 길이 지정을 문자 단위로 해석합니다. 이것은 CHAR , VARCHAR 및 TEXT 형에 적용됩니다.

많은 문자열 데이터 유형의 컬럼 정의에는 컬럼의 문자 세트 또는 데이터 정렬을 지정하는 속성을 포함 할 수 있습니다. 이러한 속성은 CHAR , VARCHAR , TEXT 형, ENUM 및 SET 데이터 형식에 적용됩니다.

  • CHARACTER SET 속성은 문자 집합을 지정하고 COLLATE 속성은 문자 집합의 데이터 정렬을 지정합니다. 예 :

     CREATE TABLE t
     (
         c1 VARCHAR (20) CHARACTER SET utf8,
         c2 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs
     );
    

    이 테이블 정의는 utf8 의 문자 집합과 문자 집합의 기본 데이터 정렬을 사용 c1 이라는 컬럼과 latin1 문자 집합과 대소 문자 구분 데이터 정렬을 가진 c2 이라는 컬럼을 만듭니다 .

    CHARACTER SET 속성 또는 COLLATE 속성 또는 둘 모두가없는 경우, 문자 세트 및 데이터 정렬을 할당하는 규칙은 섹션 10.1.3.4 "열 문자 집합 및 정렬 순서" 에서 설명하고 있습니다.

    CHARSET 는 CHARACTER SET 의 동의어입니다.

  • 문자 데이터 형식에 CHARACTER SET binary 속성을 지정하면 열은 대응하는 이진 데이터 형식으로 작성됩니다. 즉, CHAR 는 BINARY 되고, VARCHAR 는 VARBINARY 되고 TEXT 는 BLOB 입니다. ENUM 및 SET 데이터 형에서는이되지 않고 선언 된대로 작성됩니다. 이 정의를 사용하여 테이블을 지정했다고합니다.

     CREATE TABLE t
     (
       c1 VARCHAR (10) CHARACTER SET binary,
       c2 TEXT CHARACTER SET binary,
       c3 ENUM ( 'a', 'b', 'c') CHARACTER SET binary
     );
    

    결과 테이블이 정의가 포함되어 있습니다.

     CREATE TABLE t
     (
       c1 VARBINARY (10)
       c2 BLOB,
       c3 ENUM ( 'a', 'b', 'c') CHARACTER SET binary
     );
    
  • ASCII 특성은 CHARACTER SET latin1 의 줄임말입니다.

  • UNICODE 속성은 CHARACTER SET ucs2 의 줄임말입니다.

  • BINARY 속성은 컬럼 문자 집합의 이진 데이터 정렬을 지정하는 단축형입니다. 이 경우, 정렬 및 비교는 숫자 값을 기준으로합니다.

문자 컬럼의 정렬 및 비교는 컬럼에 할당 된 문자 집합을 기준으로합니다. CHAR , VARCHAR , TEXT , ENUM 및 SET 데이터 형식은 사전 순이 아니라 기반이되는 문자 코드 값을 정렬 및 비교에 사용할 수 있도록 이진 데이터 정렬 또는 BINARY 속성을 가지는 컬럼을 선언 할 수 있습니다.

섹션 10.1 "문자 집합 지원" 에서는 MySQL의 문자 집합 사용에 대한 추가 정보가 포함되어 있습니다.

  • [NATIONAL] CHAR[( M )] [CHARACTER SET charset_name ] [COLLATE collation_name ]

    저장시 반드시 지정된 길이가되도록 오른쪽이 공백으로 채워진다 고정 길이 문자열입니다. M 은 컬럼의 길이를 문자로 나타냅니다. M 의 범위는 0 ~ 255입니다. M 을 생략하면 길이는 1입니다.

    참고

    PAD_CHAR_TO_FULL_LENGTH SQL 모드가 활성화되어 있지 않은 한, CHAR 값을 추출 할 때 후행 공백은 삭제됩니다.

    CHAR 은 CHARACTER 의 약어입니다. NATIONAL CHAR (또는 이에 상응하는 단축형 인 NCHAR )는 CHAR 컬럼이 미리 정의 된 문자 집합을 사용할 필요가 있다는 것을 정의하는 표준 SQL 방법입니다. MySQL 4.1 이상이 사전에 정의 된 문자 세트로 utf8 을 사용합니다. 섹션 10.1.3.6 "각국 캐릭터 세트" 를 참조하십시오.

    CHAR BYTE 데이터 타입은 BINARY 데이터 형의 별칭입니다. 이것은 호환 기능입니다.

    MySQL 그럼, CHAR(0) 타입의 컬럼을 만들 수 있습니다. 이것은 주로 컬럼의 존재에 의존하지만, 실제로는 그 값을 사용하지 않는 오래된 응용 프로그램을 준수 할 필요가있을 때 유용합니다. CHAR(0) 는 2 개의 값 밖에 잡히지 않는 컬럼이 필요한 경우에도 매우 편리합니다. CHAR(0) NULL 로 정의 된 컬럼은 1 ​​비트 만 차지해 NULL 및 '' (빈 문자열) 값만을 취할 수 있습니다.

  • [NATIONAL] VARCHAR( M ) [CHARACTER SET charset_name ] [COLLATE collation_name ]

    가변 길이 문자열입니다. M 은 컬럼의 최대 길이를 문자로 나타냅니다. M 의 범위는 0 ~ 65,535입니다. VARCHAR 의 최대 유효 길이는 최대 행 크기 (65,535 바이트 모든 컬럼에서 공유됩니다)과 사용되는 문자 세트에 의해 결정됩니다. 예를 들어, utf8 문자는 문자 당 최대 3 바이트를 필요로하는 경우가 있기 때문에 utf8 문자 집합을 사용하는 VARCHAR 컬럼은 최대 21,844 문자가되도록 선언 할 수 있습니다. 섹션 D.10.4 "테이블 컬럼 및 행 크기 제한" 을 참조하십시오.

    MySQL은 VARCHAR 값을 1 바이트 또는 2 바이트 길이의 프리픽스가있는 데이터로 저장합니다. 길이 프리픽스 값에 포함 된 바이트 수를 나타냅니다. VARCHAR 컬럼은 저장할 수있는 값이 255 바이트 이하의 경우는 1 바이트 길이의 프리픽스를 사용하여 255 바이트보다 큰 경우 2 바이트 길이의 프리픽스를 사용합니다.

    참고

    MySQL 5.6은 표준 SQL 사양에 따라 VARCHAR 값에서 후행 공백을 제거하지 않습니다.

    VARCHAR 는 CHARACTER VARYING 의 줄임말입니다. NATIONAL VARCHAR 는 VARCHAR 컬럼이 미리 정의 된 문자 집합을 사용할 필요가 있다는 것을 정의하는 표준 SQL 방법입니다. MySQL 4.1 이상이 사전에 정의 된 문자 세트로 utf8 을 사용합니다. 섹션 10.1.3.6 "각국 캐릭터 세트" 를 참조하십시오. NVARCHAR 는 NATIONAL VARCHAR 의 줄임말입니다.

  • BINARY( M )

    BINARY 형은 CHAR 형과 유사하지만, 비 바이너리 문자열이 아닌 바이너리 바이트 문자열을 저장합니다. M 은 컬럼 길이를 바이트 단위로 나타냅니다.

  • VARBINARY( M )

    VARBINARY 타입은 VARCHAR 타입과 유사하지만, 비 바이너리 문자열이 아닌 바이너리 바이트 문자열을 저장합니다. M 은 컬럼의 최대 길이를 바이트 단위로 나타냅니다.

  • TINYBLOB

    최대 길이가 255 (2 8 - 1) 바이트의 BLOB 컬럼. 각 TINYBLOB 값은 값의 바이트 수를 나타내는 1 바이트 길이의 프리픽스를 사용하여 저장됩니다.

  • TINYTEXT [CHARACTER SET charset_name ] [COLLATE collation_name ]

    최대 길이가 255 (2 8 - 1) 문자의 TEXT 컬럼. 값에 멀티 바이트 문자가 포함 된 경우 유효한 최대 길이는 줄어 듭니다. 각 TINYTEXT 값은 값의 바이트 수를 나타내는 1 바이트 길이의 프리픽스를 사용하여 저장됩니다.

  • BLOB[( M )]

    최대 길이가 65,535 (2 16 - 1) 바이트의 BLOB 컬럼. 각 BLOB 값은 값의 바이트 수를 나타내는 2 바이트 길이의 프리픽스를 사용하여 저장됩니다.

    이 형식은 옵션 길이 M 을 지정할 수 있습니다. 이것이 완료되면, MySQL은 M 바이트 길이의 값을 보관 유지하는데 충분한 최소의 BLOB 타입으로 컬럼을 생성합니다.

  • TEXT[( M )] [CHARACTER SET charset_name ] [COLLATE collation_name ]

    최대 길이가 65,535 (2 16 - 1) 문자의 TEXT 컬럼. 값에 멀티 바이트 문자가 포함 된 경우 유효한 최대 길이는 줄어 듭니다. 각 TEXT 값은 값의 바이트 수를 나타내는 2 바이트 길이의 프리픽스를 사용하여 저장됩니다.

    이 형식은 옵션 길이 M 을 지정할 수 있습니다. 이것이 완료되면, MySQL은 M 자 길이의 값을 보관 유지하는데 충분한 최소 TEXT 형식으로 열을 만듭니다.

  • MEDIUMBLOB

    최대 길이가 16,777,215 (2 24 - 1) 바이트의 BLOB 컬럼. 각 MEDIUMBLOB 값은 값의 바이트 수를 나타내는 3 바이트 길이의 프리픽스를 사용하여 저장됩니다.

  • MEDIUMTEXT [CHARACTER SET charset_name ] [COLLATE collation_name ]

    최대 길이가 16,777,215 (2 24 - 1) 문자의 TEXT 컬럼. 값에 멀티 바이트 문자가 포함 된 경우 유효한 최대 길이는 줄어 듭니다. 각 MEDIUMTEXT 값은 값의 바이트 수를 나타내는 3 바이트 길이의 프리픽스를 사용하여 저장됩니다.

  • LONGBLOB

    최대 길이가 4,294,967,295 또는 4G 바이트 (2 32 - 1) 바이트의 BLOB 컬럼. LONGBLOB 컬럼의 최대 유효 길이는 클라이언트 / 서버 프로토콜과 사용 가능한 메모리에 구성된 최대 패킷 크기에 따라 결정됩니다. 각 LONGBLOB 값은 값의 바이트 수를 나타내는 4 바이트 길이의 프리픽스를 사용하여 저장됩니다.

  • LONGTEXT [CHARACTER SET charset_name ] [COLLATE collation_name ]

    최대 길이가 4,294,967,295 또는 4G 바이트 (2 32 - 1) 문자의 TEXT 컬럼. 값에 멀티 바이트 문자가 포함 된 경우 유효한 최대 길이는 줄어 듭니다. LONGTEXT 컬럼의 최대 유효 길이 또한 클라이언트 / 서버 프로토콜과 사용 가능한 메모리의 구성 된 최대 패킷 크기에 따라 결정됩니다. 각 LONGTEXT 값은 값의 바이트 수를 나타내는 4 바이트 길이의 프리픽스를 사용하여 저장됩니다.

  • ENUM(' value1 ',' value2 ',...) [CHARACTER SET charset_name ] [COLLATE collation_name ]

    열거입니다. ' value1 ' , ' value2 ' , ... 값, NULL 또는 특수 '' 에러 값 목록에서 선택한 값을 하나만 가질 수있는 스트링 오브젝트입니다. ENUM 값은 내부적으로는 정수로 표현됩니다.

    ENUM 컬럼은 최대 65,535 개의 개별 요소를 포함 할 수 있습니다. (실제 한도는 3000 개까지입니다.) 테이블에는 그룹으로 간주되는 ENUM 및 SET 컬럼 안의 고유 요소 목록 정의를 255 개 이하를 포함 할 수 있습니다. 이러한 제한의 자세한 내용은 섹션 D.10.5 ".frm 파일 구조에 의해 부과되는 제한" 을 참조하십시오.

  • SET(' value1 ',' value2 ',...) [CHARACTER SET charset_name ] [COLLATE collation_name ]

    세트입니다. 0 개 이상의 값을 가질 수있는 스트링 오브젝트이며, 그 각각의 값은 ' value1 ' , ' value2 ' , ... 값 목록에서 선택해야합니다. SET 값은 정수로서 내부적으로 표현됩니다.

    SET 컬럼은 최대 64 개의 개별 구성원을 포함 할 수 있습니다. 테이블에는 그룹으로 간주되는 ENUM 및 SET 컬럼 안의 고유 요소 목록 정의를 255 개 이하를 포함 할 수 있습니다. 이 제한 자세한 내용은 섹션 D.10.5 ".frm 파일 구조에 의해 부과되는 제한" 을 참조하십시오.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved