programing

SQL National Character(NCHAR) 데이터형은 실제로 어떤 용도로 사용됩니까?

elseif 2023. 3. 10. 21:15

SQL National Character(NCHAR) 데이터형은 실제로 어떤 용도로 사용됩니까?

가가 가 asCHAR (CHARACTER) ★★★★★★★★★★★★★★★★★」VARCHAR (CHARACTER VARYING)은 , SQL을 합니다.NCHAR (NATIONAL CHARACTER) ★★★★★★★★★★★★★★★★★」NVARCHAR (NATIONAL CHARACTER VARYING)type에 이 더 . 일부 데이터베이스에서는 문자(비이진) 문자열에 사용하는 것이 더 좋습니다.

  • Server sql 、 SQL Server ( 。NCHAR되며 비 ASCUTF-16LE를하게 저장할 수 있는 입니다. II 자 、CHAR뿐이며, 「」를 참조해 주세요.

  • 에서는 Oracle 서서NVARCHAR단일 바이트 조합이 아닌 UTF-16 또는 UTF-8로 저장할 수 있습니다.

  • 에서는 "MySQL"을 합니다.NVARCHARVARCHAR그 때문에, 어느 타입도 UTF-8 또는 그 외의 대조로 보존할 수 있습니다.

그럼 ''이 뭘까요?NATIONAL실제로 개념적으로 어떤 의미라도 있나요?공급업체의 문서에서는 실제 근거가 아닌 자체 DBMS가 사용하는 문자 집합에 대해서만 설명합니다.에서는 이 기능에 대해 되지 .「 SQL92 」는 「SQL92」의 「SQL92」의 「SQL92」의 「SQL92」의 「SQL92」의 「SQL92」의 「SQL92」의 「SQL92」의 「SQL92」의 「SQL92」에 한정되어 있습니다.NATIONAL CHARACTER는 구현 정의 문자 집합에 저장됩니다.한 순한 to to to 와는 달리CHARACTER이치하다그렇지 않으면.

고마워, ANSI.탄시.

사용할 필요가 있다NVARCHAR모든 문자(비표준) 스토리지 용도로 사용할 수 있습니까? 있는 바람직하지 않은 DBMS)를 가 ?N''★★★★★★★★★★★★★★★★★?

이 경우 "NATIONAL"은 다른 국적에 고유한 문자를 의미합니다.특히 극동 언어에는 문자가 너무 많아서 1바이트로는 모든 문자를 구분할 수 없습니다.따라서 영어(asciii) 전용 앱 또는 영어 전용 필드가 있는 경우 문자당 1바이트만 허용하는 오래된 CHAR 및 VARCHAR 유형을 사용할 수 있습니다.

즉, 대부분의 경우 NCHARCHAR/NVARCHAR를 사용해야 합니다.데이터에서 여러 언어를 지원할 필요가 없다고 생각되는 경우에도(또는 잠재적으로 지원할 수 있음) 영어 전용 앱도 외국어 문자를 사용하여 보안 공격을 적절하게 처리할 수 있어야 합니다.

CHAR 참조되는 와 SQL 등의 데이터입니다. 「CAR/VARCHAR」에츠키다enumC++나 C#등의 클라이언트 언어로 지정합니다.

한편 SQL92 표준에서는 NATIONAL CHARGER만 구현 정의 문자 집합에 저장된다고 명시하여 이 기능에 대한 설명은 더욱 유용하지 않습니다.구현 정의 문자 집합에 저장되는 단순한 문자와는 달리.다른 구현 정의 문자 집합일 수 있습니다.그렇지 않으면.

공교롭게도 이것은 C++ 표준이 만드는 것과 같은 '구분'입니다.char그리고.wchar_t모든 언어/OS 조합에 독자적인 문자 세트가 있는 경우의 문자 부호화의 암흑시대 유물.

NVARCHAR를 모든 문자(비바이너리) 저장 용도로 사용해야 합니까?

컬럼의 선언된 유형이 다음과 같은지는 중요하지 않습니다.VARCHAR또는NVARCHAR단, Unicode(UTF-8, UTF-16, UTF-32)를 모든 문자 저장 용도로 사용하는 것이 중요합니다.

현재 인기 있는 DBMS 중 바람직하지 않은 것을 실행하는 것이 있습니까?

○: MS SQL Server에서 사용NCHAR를 사용하면 (영어) 데이터가 2배의 공간을 차지하게 됩니다.유감스럽게도 UTF-8은 아직 지원되지 않습니다.

편집: SQL Server 2019에서 UTF-8 지원이 드디어 도입되었습니다.

Oracle에서는 데이터베이스 문자 집합이 멀티바이트 문자 집합일 수 있으므로 모든 종류의 문자를 저장할 수 있습니다.단, 컬럼의 길이를 적절히 이해하고 정의해야 합니다(BYTS 또는 CARTERS).

NVARCHAR에는 1바이트의 데이터베이스 문자 집합(BYTE 또는 CARCHER 사이즈의 열 간에 혼동을 일으킬 가능성을 줄임)이 있어 NVARCHAR를 멀티바이트로 사용할 수 있는 옵션이 있습니다.여기 보세요.

주로 영어 데이터를 사용하기 때문에 데이터베이스 문자 집합으로 멀티바이트 문자 집합(UTF-8)을 사용하고 NVARCHAR는 무시합니다.단일 바이트 문자 집합으로 변환하기엔 너무 커서 오래된 데이터베이스를 상속받은 경우 NVARCHARCHAR를 사용할 수 있습니다.하지만 난 안 하는 게 낫겠어.

언급URL : https://stackoverflow.com/questions/3895387/whats-the-sql-national-character-nchar-datatype-really-for