2013-08-20 5 views
0

내 질문 : SQL에서; SQL 만 사용하므로 데이터 길이가 의미하는 바는 무엇입니까?SQL에서 문자 제한은 무엇입니까

데이터 형식이 nvarchar 인 열을 길이 50 ​​(WebMatrix에서 새로 만드는 각 열의 기본값)으로 설정하면 51 번째 문자로 인해 오류가 발생합니다.

+2

즉, 해당 필드에 51자를 입력하면 성공하지 못합니다. 그런데 sql은 Structured Query Language의 머리 글자 어이며 데이터베이스 소프트웨어를 식별하지 않습니다. –

+0

글자, 글자 뜻? ''(공간)도 그렇게 중요합니까? –

+1

예. 참고로, ** ** 매우 **이 질문을 편집하여 개선하는 것이 좋습니다. 그렇지 않으면 스택 오버플로에 대한 추가 질문을하는 데 어려움이있을 수 있습니다. – ThiefMaster

답변

2

문자열은 일반적으로 고정 된 길이의 형식 (또는 char()nchar()) 또는 가변 길이 포맷 (또는 varchar()nvarchar()) SQL을 사용하여 데이터베이스에 저장된다.

char()varchar()은 각 문자를 저장하기 위해 1 바이트를 사용합니다. "n"접두사를 사용하면 유니 코드 문자 (2 바이트 폭)를 저장할 수 있습니다. 모든 경우에 필드의 최대 길이는 괄호 안에옵니다. 바이트 단위가 아닌 문자 단위로 측정됩니다.. 따라서 varchar(2)nvarchar(2)은 최대 두 개의 문자를 저장할 수 있습니다. 후자는 원래대로 문자 저장에 대해 두 배의 공간을 차지하며 길이는 계산하지 않습니다.

필드의 최대 길이이므로이 길이까지 저장할 수 있습니다. 추가 문자를 저장하려고하면 데이터베이스 및 작업에 따라 동작이 달라질 수 있습니다. 잘린 값이 나타날 수 있습니다. 또는 오류가 발생할 수 있습니다.

공백은 다른 모든 것과 마찬가지로 문자로 계산됩니다.

SQL을 직접 작성하는 경우 은 기본 길이 인을 사용하지 마십시오. 명시 적 길이로 이러한 구문을 항상 사용하십시오. 그렇지 않으면 예기치 않게 코드에서 오류를 찾기가 어려울 수 있습니다.

일반적으로 특정 데이터베이스에 대한 문서는 이러한 개념을 설명하는 데 매우 도움이됩니다. 나는 당신이 설명을하기 위해 거기에서 시작하는 것이 좋습니다.

+0

필드의 크기가 바이트이므로 확실히 nvarchar는 문자 수의 절반 만 저장할 수 있습니까? 따라서 예제에서 nvarchar (2)는 한 문자 만 저장할 수 있습니다. –

+1

@AdrianWragg. . 'nvarchar() '의 경우 길이는 문자로 측정됩니다. 예를 들어 http://technet.microsoft.com/en-us/library/ms186939.aspx 및 http://dev.mysql.com/doc/refman/5.5/en/string-type- overview.html. 의견의 잘못된 정보는 구체적으로이 답변을 적어 놓은 이유입니다. –

+0

충분합니다. 내 의견을 삭제하겠습니다. 나는 잘못 기억하고 있었다. –

관련 문제