Mssql nvarchar 한글 글자수 - mssql nvarchar hangeul geuljasu

드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.

    mysql에서 varchar 글자수

    게시물ID : programmer_14970짧은주소 복사하기
    작성자 : 잘마른오징어
    추천 : 0
    조회수 : 16866회
    댓글수 : 5개
    등록시간 : 2015/12/13 23:28:15

    옵션
    • 본인삭제금지

    mysql을 이용해서 작은 사이트 제작중인데요.
    제목이나 아이디 닉네임등 테이블을 만드는데, varchar(50)을 보통 쓰더라고요. 문자셋은 utf8로 맞추고요.
    그런데 varchar(50)이면 몇글자인가요? 검색해보니 한글 1글자에 3byte고 50byte 나타내는 거라는 소리도 있고,
    50글자수라는 소리도 있고, 뭐가 맞는지 모르겠네요?
    게시글 제목같은 것도 varchar(50)이면 안 모자르게 들어가나요?
    댓글 부탁드립니다.

    새로운 댓글이 없습니다.

    MSSQL의 테이블 데이터가 한글일 경우에는 칼럼의 DataType을 nvarchar로 해야된다고 한다..

    varchar 와 nvarchar를 비교하자면

    varchar 는 영문데이터와 테이블에 설정된 기본 언어 타입을 사용.

    nvarchar는 유니코드를 지원을 위한 데이터 형이란다...(단점은 varchar보다 동일한 데이터 저장시 2배의 공간을 사용함.)

    여튼 나는 위 내용을 몰랐고..

    서버는 영문서버였다. 한글데이터를 저장 후 한글이 ??? 으로 표시되더라..

    한글이 깨지는 문제 발생시 확인 해 보아야 할 사항으로는 다음과 같다.

    1. 한글이 포함되는 필드의 dateType 확인 (nvarchar)

    2. insert 혹은 select 시에 nvarchar 형의 값은 다음과 같이 사용

    ex )  

    insert into [테이블](칼럼) values (N'한글')

    select * from [테이블] where [칼럼] LIKE N'%한글%'

    3. 기본 언어 확인

    ex)

    select @@LANGUAGE

    계정별 기본언어 변경

    sp_defaultlanguage '계정','Korean';

    4. Select 시 해당 필드 character  set 지정

    SELECT [컬럼] COLLECTION Korean_wansung_CI_AS FROM [테이블]

    출처 :

    //imdev.tistory.com/152

    //blog.naver.com/PostView.nhn?blogId=alsduddl525&logNo=140166319233

    SQL

    MSSQL 글자 크기 / 바이트 크기 확인 (LEN / DATALENGTH)

     LEN DATALENGTH 란?

       LEN 문자열의 크기를 나타내는 함수이며,

       DATALENGTH는 문자열의 바이트 수를 나타내는 함수입니다.

     MSSQL LEN / DATALENGTH 사용방법

       LEN('[문자열]')

       DATALENGTH('[문자열]')

     - 테이블 생성

       CREATE TABLE dbo.출석부 (

           일련번호 int NOT NULL,

           이름 varchar(8) NOT NULL

       )

     - 데이터 입력

       INSERT INTO dbo.출석부 (일련번호, 이름) VALUES (1'홍길동')

       INSERT INTO dbo.출석부 (일련번호, 이름) VALUES (2'세종대왕')

       INSERT INTO dbo.출석부 (일련번호, 이름) VALUES (3'Caesar')

     - 테이블 입력 결과 확인

     - 예제 1

       출석부의 일련번호, 이름, 이름의 글자크기를 조회하시오.

     예제 1 쿼리

       SELECT 일련번호이름LEN(이름) AS 글자크기 FROM dbo.출석부

    일련번호

    이름

    글자크기

    1

    홍길동

    3

    2

    세종대왕

    4

    3

    Caesar

    6

     - 예제 2

       출석부의 일련번호, 이름, 이름의 byte크기를 조회하시오.

     예제 2 쿼리

       SELECT 일련번호이름DATALENGTH(이름) AS byte크기 FROM dbo.출석부

    일련번호

    이름

    byte크기

    1

    홍길동

    6

    2

    세종대왕

    8

    3

    Caesar

    6

     [참고사항] byte크기와 글자크기가 다른 이유

       영어, 숫자는 1byte를 사용하기 때문에 글자크기와 바이크크기가 같지만 한글은 2byte를 사용하기 때문에

       byte크기가 글자크기의 2배가 됩니다.

    Toplist

    최신 우편물

    태그