programing

'COLLATE SQL_Latin1_General_CP1'이란CI_AS는?

topblog 2023. 4. 8. 07:53
반응형

'COLLATE SQL_Latin1_General_CP1'이란CI_AS는?

SQL Server에서 데이터베이스를 작성하기 위한 SQL 쿼리가 있습니다.

create database yourdb
on
( name = 'yourdb_dat',
  filename = 'c:\program files\microsoft sql server\mssql.1\mssql\data\yourdbdat.mdf',
  size = 25mb,
  maxsize = 1500mb,
  filegrowth = 10mb )
log on
( name = 'yourdb_log',
  filename = 'c:\program files\microsoft sql server\mssql.1\mssql\data\yourdblog.ldf',
  size = 7mb,
  maxsize = 375mb,
  filegrowth = 10mb )
COLLATE SQL_Latin1_General_CP1_CI_AS;
go

잘 돌아가요.

하지만 SQL의 .COLLATE SQL_Latin1_General_CP1_CI_AS.

누가 이걸 설명해 줄 수 있나요?또, 이 방법으로 데이터베이스를 작성하는 것이 베스트 프랙티스인지 알고 싶습니다.

데이터베이스 서버의 정렬 방법(텍스트 조각 비교)을 설정합니다.이 경우:

SQL_Latin1_General_CP1_CI_AS

흥미로운 부분으로 나뉩니다.

  1. latin1 1, charset latin 1(asciii)을 .
  2. CP1 Page Code Page 1252의 입니다.
  3. CI하지 않는 'ABC가 .
  4. AS해서 '는 '가 'u'는 'u'와 같지 않습니다.

추신: 자세한 내용은 @solomon-rutzky의 답변을 꼭 읽어보세요.

접수된 답변이 다소 불완전하다는 점을 유의하시기 바랍니다.예, 가장 기본적인 수준에서 정렬을 처리합니다.그러나 선택한 조합에 의해 정의된 비교 규칙은 사용자 데이터에 대한 사용자 쿼리 이외의 많은 장소에서 사용됩니다.

does 'What does'의 경우COLLATE SQL_Latin1_General_CP1_CI_ASdo는 " do?"를 의미합니다."to do the do?"는 "to do do?"를 의미합니다.COLLATE의 절CREATE DATABASE수 있나요?"라고 물어보세요고고묻묻묻묻다다

COLLATE {collation_name}CREATE DATABASE스테이트먼트에서는 서버가 아닌 데이터베이스의 기본 데이터 정렬을 지정합니다.데이터베이스 레벨과 서버 레벨의 기본 데이터 정렬은 다른 작업을 제어합니다.

서버(예: 인스턴스) 수준의 제어:

  • databases: " " database database database database 。master,model,msdb , , , , 입니다.tempdb.
  • 레벨 대조tempdb임시 테이블(글로벌 및 로컬)의 문자열 열에 대한 기본 조합이지만 테이블 변수가 아닙니다.
  • 레벨 대조master데이터베이스 이름 등의 서버 수준 데이터에 사용되는 조합입니다.name in in の in in in in in 。sys.databases로그인명 등
  • 파라미터/변수명의 취급
  • 커서 이름 처리
  • ★★★의 GOTO 표시
  • 새로 (Default 는 "Default Collation"으로 지정됩니다.COLLATE 있다

데이터베이스 수준 제어:

  • 컬럼에 ( " " " )CHAR,VARCHAR,NCHAR,NVARCHAR,TEXT , , , , 입니다.NTEXT - 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아,TEXT ★★★★★★★★★★★★★★★★★」NTEXT이(가) 동작합니다.COLLATE열 정의에 절이 없습니다.은 두 가지 됩니다.CREATE TABLE ★★★★★★★★★★★★★★★★★」ALTER TABLE ... ADD★★★★★★★★★★★★★★★★★★.
  • 리터럴에 되는 디폴트 「」)'some text' 변수 " " " " )입니다.@StringVariable) 이및 변수를 다른 및 이 조합은 문자열 및 변수를 다른 문자열 및 변수와 비교할 때만 사용됩니다.문자열/변수를 열과 비교할 때 열의 조합이 사용됩니다.
  • 오브젝트 이름과 같은 데이터베이스 수준의 메타데이터에 사용되는 조합(예:sys.objects "Column name")sys.columns 이름 이름:sys.indexes 입니니다
  • 데이터베이스 수준 개체(테이블, 열, 인덱스 등)에 사용되는 조합입니다.

기타:

  • ASCII는 8비트 부호화입니다(일반적인 용도의 경우 "ASCII"는 문자 값이 0~127인 7비트, "ASCII 확장"은 문자 값이 0~255인 8비트입니다).이 그룹은 모든 문화에서 동일합니다.
  • 코드 페이지는 확장 ASCII의 "확장" 부분으로 값 128~255에 사용되는 문자를 제어합니다.이 그룹은 문화마다 다르다.
  • Latin1표준 ASCII는 0~127의 값과 모든 코드 페이지(SQL Server에서 나타낼 수 있음)만을 대상으로 하므로 "ASCII"를 의미하는 것은 아닙니다.NVARCHAR)는 이러한 의 합니다

does 'What does'의 경우COLLATE SQL_Latin1_General_CP1_CI_ASdo?'는 '이뜻이고 'do'는 '어떤 조합입니까?'라는 뜻입니다.

  • 이름은 '''로 시작하니까'''로 시작해요.SQL_「SQL Server」 「Windows」 「SQL Server」를 참조해 주세요.이들은 공식적으로 폐지되지 않더라도 완전히 구식이며 주로 SQL Server 2000 이전 버전의 호환성을 위해 사용됩니다.SQL_Latin1_General_CP1_CI_AS는 미국 영어를 사용하여 OS에 설치할 때 기본 설정이기 때문에 매우 일반적입니다.이러한 대조는 가능한 한 피해야 합니다.

    Windows 대조(이름의 선두가 아닌 대조)SQL_는 보다 새롭고 되어 있습니다.VARCHAR ★★★★★★★★★★★★★★★★★」NVARCHAR추가/수정된 정렬 가중치와 대문자와 소문자 매핑으로 업데이트되고 있습니다.또한 이러한 조합에는 SQL Server 조합에서 발생할 수 있는 잠재적인 성능 문제인 VARCHAR와 NVARCHAR 유형을 혼합할 때 인덱스에 미치는 영향도 없습니다.

  • Latin1_General는 문화/로케일입니다.
    • ★★★의 NCHAR,NVARCHAR , , , , 입니다.NTEXT데이터 정렬 및 비교에 사용되는 언어 규칙을 결정합니다.
    • ★★★의 CHAR,VARCHAR , , , , 입니다.TEXT데이터(수치, 리터럴 및 변수)는 다음을 결정합니다.
      • 분류와 비교에 사용되는 언어 규칙
      • 문자 인코딩에 사용되는 코드 페이지입니다.를 들어, 「」라고 하는 것은,Latin1_General합니다.Hebrew1255년
  • CP{code_page} ★★★★★★★★★★★★★★★★★」{version}

    • SQL Server 조합의 경우:CP{code_page}는 값 128~255에 매핑되는 문자를 결정하는8비트 코드 페이지입니다.Double-Byte Character Set(DBCS; 더블바이트 문자 집합)의 코드 페이지는 2바이트 조합을 사용하여 256자를 초과할 수 있지만 SQL Server 대조에는 사용할 수 없습니다.
    • Windows 대조:{version}는 모든 조합명에는 포함되지 않지만 조합이 도입된SQL Server 버전을 나타냅니다(대부분). "Windows" 입니다.80(SQL Server 2000 8.0).SQL Server의 모든 버전이 새로운 조합과 함께 제공되는 것은 아니기 때문에 버전 번호에 차이가 있습니다.그런 것도 있어요.90 2005) 은 (SQL Server 2005 '9.0')입니다.100 2008및 작은 에는 (SQL Server 2008, 10.0)이 있습니다.140(SQL Server 2017 '14.0').

      가 '한 는 '대부분'으로 이 '대부분'으로 끝나기 이다._SC는 SQL Server 2012(버전 11.0)에서 도입되었지만 기본 데이터는 새로운 것이 아니라 기본 기능에 대한 보조 문자를 추가했을 뿐입니다.그 엔딩은 버전용으로 존재합니다.90 ★★★★★★★★★★★★★★★★★」100SQL Server 2012 부터부부 。

  • 다음으로, 감도는 다음과 같은 임의의 조합으로 지정할 수 있지만 항상 이 순서로 지정됩니다.
    • CS= 하거나 = 대소문자를 구분합니다CI= 대소문자를 구분하지 않음
    • AS= 하거나 = 악센트에 민감합니다AI= = --에에민 민민함함민민
    • KS= 인식 누락 = 인식 = 가나형 인식 없음
    • WS= 됨 = 에 민감하지 않음 = 폭에 민감하지 않음 = 폭에 민감하지 않음
    • VSS= Selector ) missing = Selector insensitive = Variation Selector insensitive = Variation Selector insensitive ( 140 대조에서만 사용 가능)
  • 마지막 부분(옵션):

    • _SC마지막은 "보조 문자 지원"을 의미합니다.「서포트」는, 짜넣기 함수가 서로게이트 페어를 해석하는 방법(UTF-16 의 보충 문자 부호화 방법)에만 영향을 줍니다._SC에 (_140_중간)에 내장된 함수는 하나의 보조 문자를 보지 않고 대신 대리 쌍을 구성하는 두 개의 의미 없는 코드 포인트를 봅니다.이 엔딩은 바이너리가 아닌 버전90 또는 100의 조합에 추가할 수 있습니다.
    • _BIN ★★★★★★★★★★★★★★★★★」_BIN2이치데이터는 그대로 저장되지만 언어 규칙은 없습니다. 또는 5가지 감도 중 ._SC_BIN입니다._BIN2하다 Server 2005를 사용합니다._BIN2의 에 대한 내용은 을 참조해 주십시오_BIN ★★★★★★★★★★★★★★★★★」_BIN2, 를 참조해 주세요.다양한 바이너리 조합의 차이(문화, 버전, 및 BINBIN2)를 참조해 주세요.
    • _UTF8SQL Server 2019 입니다. 8로 저장할 수 VARCHAR ★★★★★★★★★★★★★★★★★」CHAR, 된 데이터 타입은 )TEXT★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★이 과 「」의 조합, 「」의 조합, 「90」의 「100」의 조합)에서만 사용할 수 ._SC제140조).._UTF8collation)_BIN2 아니라, 이에요._BIN를 참조해 주세요.

      주의: UTF-8은 8비트 인코딩용으로 설정되었지만 Unicode를 지원하고자 하는 환경/코드와의 호환성을 위해 설계/작성되었습니다.UTF-8을 통해 최대 50%의 공간 절약을 실현할 수 있는 시나리오가 몇 가지 있지만,NVARCHAR많은/대부분의 운용에서 퍼포먼스에 약간의 타격을 주는 부작용이 있습니다.호환성을 위해 이것이 필요한 경우 비용은 허용됩니다.공간 절약을 위해 이 기능을 사용하려면 테스트하고 다시 테스트하는 것이 좋습니다.테스트에는 모든 기능과 몇 줄 이상의 데이터가 포함됩니다.컬럼과 UTF-8을 사용하고 때 잘 .VARCHAR 리터럴에 ''', '', ''', ''''''가 있는 경우_UTF8 this. 을 위해 나 자연스러운 절약에 사용하고 싶은 은 그렇지 않습니다.이것은 호환성을 위해 사용하는 모든 사람에게 자연스러운 상태이지만, 공간 절약에 사용하고자 하는 사람들에게는 그렇지 않습니다.._UTF8 쪽인가와의 VARCHAR을 사용한 _UTF8 또는 "collations" 입니다.NVARCHAR이상한 동작/데이터 손실이 발생할 수 있습니다.새로운 UTF-8 조합에 대한 자세한 내용은 SQL Server 2019의 네이티브 UTF-8 지원: Savior or False Propicte를 참조하십시오.

CP1은 '코드 페이지 1'을 의미합니다. 엄밀히 말하면 코드 페이지 1252로 변환됩니다.

COLATE 키워드는 문자열 값에 사용할 문자 집합 및 규칙(순서, 대립 규칙)의 종류를 지정합니다.

예를 들어 대소문자를 구분하지 않음(CI) 및 악센트 구분(AS)과 함께 라틴어 규칙을 사용하고 있습니다.

메뉴얼을 참조해 주세요.

데이터베이스 기본 조회를 지정합니다.데이터베이스 내의 테이블에 작성하는 모든 텍스트필드는 다른 조회를 지정하지 않는 한 해당 조회를 사용합니다.

데이터베이스에는 항상 기본 조합이 있습니다.지정하지 않으면 SQL Server 인스턴스의 기본 조합이 사용됩니다.

사용하는 조합명은 Latin1 코드페이지 1을 사용하고 있는 것을 나타내고 있습니다.대소문자를 구분하지 않습니다(CI), 액센트를 구분합니다(AS).이 조합은 미국에서 사용되고 있기 때문에 미국에서 사용되는 정렬 규칙을 포함합니다.

대조는 텍스트 값을 동일성과 유사성에 대해 비교하는 방법과 정렬할 때 텍스트 값을 비교하는 방법을 결정합니다.코드 페이지는 varchar 필드 등 유니코드 이외의 데이터를 저장할 때 사용됩니다.

언급URL : https://stackoverflow.com/questions/5039211/what-does-collate-sql-latin1-general-cp1-ci-as-do

반응형