SQL 입력은 시퀀스로 구성됩니다.명령. 명령은 시퀀스로 구성됩니다 의토큰, 세미콜론에 의해 종료되었습니다 (";"). 입력 스트림의 끝 또한 명령을 종료합니다. 어떤 토큰이 유효한 지에 따라 다릅니다 특정 명령의 구문.
토큰이 될 수 있습니다키워드, an식별자, a인용 식별자, aLiteral(또는 상수) 또는 특수 캐릭터 상징. 토큰은 일반적으로 공백으로 분리됩니다 (공간, 탭, Newline)이지만 모호성이없는 경우 ( 특수 캐릭터가 인접한 경우에만 해당됩니다. 다른 토큰 유형에).
추가로,댓글SQL 입력. 그들은 토큰이 아니며 효과적으로 동등합니다 공백에.
예를 들어, 다음은 (구문 적으로) 유효한 SQL입니다 입력:
선택 *에서 my_table; my_table set a = 5 업데이트; my_table 값에 삽입 (3, 'hi there');
이것은 한 줄 당 1 개의 명령 순서입니다. (이것은 필요하지는 않지만; 둘 이상의 명령이 될 수 있습니다. 한 줄로, 명령은 유용하게 분할 될 수 있습니다. 윤곽).
SQL 구문은 어떤 토큰에 대해서는 그다지 일관되지 않습니다. 명령을 식별하고 피연산자 또는 매개 변수입니다. 그만큼 처음 몇 개의 토큰은 일반적으로 명령 이름이므로 위의 예를 들어 우리는 일반적으로에 대해 말할 것입니다."선택", an"업데이트"및 an"삽입"명령. 그러나 예를 들어업데이트명령은 항상 필요합니다SET특정 위치에 나타나는 토큰 이 특별한 변형의삽입또한 a 필요값완벽한. 각 명령에 대한 정확한 구문 규칙은 다음과 같습니다 설명참조 설명서.
select, 업데이트또는값위의 예는의 예입니다.키워드, 즉 단어 SQL 언어의 고정 된 의미. 토큰my_tableanda의 예식별자. 그들 테이블, 열 또는 기타 데이터베이스 개체의 이름을 식별하고 그들이 사용하는 명령에 따라 때때로 단순히"이름". 핵심 단어와 식별자는 동일한 어휘 구조를 가지고 있으며 토큰이 식별자인지 알 수 없다는 의미 또는 언어를 알지 못하는 핵심 단어. 전체 목록 핵심 단어를 찾을 수 있습니다부록 B.
SQL 식별자 및 키워드는 편지로 시작해야합니다. (a-Z, 그러나 또한 명성적인 자국과 비 라틴 문자가있는 문자) 또는 밑줄 (_). 후속 식별자 또는 키워드의 문자는 문자 일 수 있습니다. 숫자 (0-916255_16399
시스템은 이상을 사용하지 않습니다.지명-1 식별자의 문자; 더 긴 이름은 명령으로 작성할 수 있지만 잘린. 기본적으로지명IS 32 따라서 최대 식별자 길이는 31입니다 (그러나 당시에는 시스템이 구축되었습니다.paminatalencan 변경src/include/postgres_ext.h).
my_table set a = 5; 업데이트
동등하게 칭찬 할 수 있습니다
my_table set a = 5; 업데이트
자주 사용되는 협약은 상단에 핵심 단어를 쓰는 것입니다. 소문자의 사례 및 이름 (예 :
my_table set a = 5; 업데이트
두 번째 종류가 있습니다 식별자 :구분 식별자또는인용 식별자. 그것은 임의의 캐릭터 순서를 둘러싸고 형성됩니다. 이중 인용문 ("). 구분 식별자는 항상 식별자이며 결코 키 단어가 아닙니다. 그래서"선택"a를 참조하는 데 사용될 수 있습니다 열 또는 테이블이라는 열"선택", 인용되지 않은 반면select키 단어로 취해서 구문 분석 오류가 발생합니다. 테이블 또는 열 이름이 예상되는 곳에서 사용하면 그만큼 예제는 다음과 같은 인용 된 식별자로 작성할 수 있습니다.
업데이트 "my_table"set "a"= 5;
견적 된 식별자는 a 이외의 다른 문자를 포함 할 수 있습니다 이중 인용 자체. 이를 통해 테이블 또는 열을 구성 할 수 있습니다 그렇지 않으면 불가능한 이름과 같이 공간 또는 앰퍼 샌드를 포함합니다. 여전히 길이 제한 적용.
식별자 인용은 또한 대소 문자에 민감하게 만듭니다. 인용되지 않은 이름은 항상 소문자로 접 힙니다. 을 위한 예, 식별자foo, fooand"foo"토토 사이트그러나"foo"and"foo"are 이 세 가지와 서로 다릅니다.[1]
4 가지 종류의암시 적으로 유형 된 상수in토토 사이트: 문자열, 비트 문자열, 정수 및 부동 소수점 번호. 상수도 가능합니다 더 정확한 유형으로 지정되며보다 정확하게 가능합니다 시스템에 의한 표현 및보다 효율적인 처리. 그만큼 암시 적 상수는 아래에 설명되어있다. 명백한 상수 나중에 논의됩니다.
문자열 상수 SQL은 임의의 문자 순서입니다 단일 따옴표 (" '"), 예 :'이것은 문자열입니다'. SQL은 허용됩니다 두 개를 입력하여 문자열에 내장 할 단일 따옴표 인접한 단일 따옴표 (예 :'Dianne' 's Horse'). 안에토토 사이트단일 따옴표 5 월 또는 Backslash (로 탈출해야합니다."\", 예 :'Dianne \'s 말').
C 스타일의 백 슬래시 탈출도 사용할 수 있습니다 :\ b백 스페이스,\ f양식 피드입니다.\ n\ r운송 반환,\ t탭입니다. 그리고\xxx, 여기서xxx는 8 월 번호입니다 해당 ASCII 코드를 가진 문자. 다른 것 백 슬래시를 따르는 캐릭터는 문자 그대로 취합니다. 따라서, 문자열 상수에 백 슬래시를 포함 시키려면 2 형 백 슬래시.
코드 0이있는 문자는 문자열에있을 수 없습니다. 끊임없는.
두 개의 문자열 상수에 의해서만 분리됩니다 공백적어도 One Newline는 연결되고 효과적으로 처리됩니다 마치 문자열이 하나의 상수로 작성된 것처럼. 을 위한 예:
'foo'선택 '술집';
'foobar'를 선택하십시오;
그러나
'foo' 'bar'를 선택하십시오.
유효한 토토 사이트이 아니며토토 사이트SQL9X관심.
비트 스트링 상수는 문자열 상수처럼 보입니다B(위 또는 소문자) 오프닝 견적 직전 (개입 없음 Whitespace), 예 :B'1001 '. 그만큼 비트 스트링 상수 내에서 허용되는 문자 만0and1. 비트 스트링 상수는 라인에서 계속 될 수 있습니다 일반 문자열 상수와 마찬가지로.
22929_23148Integer타입 -2147483648에서 +2147483647 범위의 값을 허용합니다. (옵션 플러스 또는 마이너스 부호는 실제로 별도입니다. 정수 상수의 일부가 아닌 단체 운영자.)
플로팅 포인트 상수 가이 일반에서 허용됩니다 양식 :
Digits. [Digits] [E [+-]Digits] [Digits].Digits[E [+-]Digits]DigitsE [+-]Digits
여기서Digits하나 또는 더 소수점 자리. 적어도 하나의 숫자는 이전 또는 전이어야합니다 소수점 후. 적어도 하나의 숫자는 다음을 따라야합니다 지수 분리기 (E) 필드가 있습니다. 따라서 부동 소수점 상수는입니다 존재에 의해 정수 상수와 구별됩니다 소수점 또는 지수 절 (또는 둘 다). 공간이나 다른 캐릭터가 포함되어 있지 않아야합니다. 상수.
플로팅 포인트 상수는 유형입니다이중 정밀. Real사용하여 명시 적으로 지정할 수 있습니다SQL문자열 표기법 또는토토 사이트유형 표기법 :
Real '1.23' - 문자열 스타일 '1.23':: Real- Postgresql (역사적) 스타일
상수의 상수임의의유형을 입력 할 수 있습니다 다음 표기법 중 하나 사용 :
타입'String' 'String'::타입캐스트 ( 'String' 처럼타입)
문자열의 텍스트는 입력 변환으로 전달됩니다 라는 유형의 루틴타입. 결과는 상수입니다 표시된 유형. 명시 적 유형 캐스트는 IF를 생략 할 수 있습니다 상수 유형에 대한 모호성은 없습니다. (예를 들어, 논쟁으로 전달 될 때 비 중점 기능),이 경우 자동으로입니다 강제.
함수와 같은 토토 사이트 :
typename( 'String' )
그러나 모든 유형 이름이 이러한 방식으로 사용될 수는 없습니다. 보다섹션 1.3.6자세한 내용.
the::, cast ()및 함수 용액 구문도 할 수 있습니다 임의의 런타임 유형 변환을 지정하는 데 사용됩니다 표현,섹션 1.3.6. 하지만 양식타입'String' 지정하는 데만 사용될 수 있습니다 문자 그대로 상수의 유형. 또 다른 제한타입'String' 작동하지 않는 것입니다 배열 유형; 사용::또는cast ()배열의 유형을 지정합니다 끊임없는.
배열 상수의 일반적인 형식은 다음과 같습니다 수행원:
'val1 delim val2 delim... '
여기서delimis 그 유형의 구분자 문자, 그 유형에 기록 된대로pg_type입력. (모든 내장 유형, 이것은 쉼표 문자입니다",".) 각val는 상수입니다 배열 요소 유형 또는 서브 어레이. An의 예 배열 상수는
'1,2,3, 4,5,6, 7,8,9'
이 상수는 2 차원 3 x 3 어레이입니다 정수의 세 가지 하위 배열로 구성됩니다.
개별 배열 요소는 그 사이에 배치 할 수 있습니다 이중 인용 점수 (") 피하기 공백과 관련된 모호성 문제. 없이 견적 마크, 배열 값 파서는 선두를 건너 뛸 것입니다 공백.
(배열 상수는 실제로 특별한 경우 일뿐입니다. 이전 섹션에서 논의 된 일반 유형 상수. 상수는 처음에 끈으로 취급되어 배열 입력 변환 루틴. 명시 적 유형 사양이 필요할 수 있습니다.)
연산자는 최대의 시퀀스입니다.지명 된 ATALEN-1 (기본적으로 31) 문자 다음 목록 :
+-*/< = ~! @#%^& | `? $
거기 그러나 운영자 이름에 대한 몇 가지 제한 사항입니다.$(달러)는 a 단일 문자 연산자이지만 a의 일부일 수 있습니다 다중 문자 운영자 이름.
--및/*연산자의 어느 곳에서나 나타날 수 없습니다 이름, 그들은 논평.
다중 문자 운영자 이름은 끝날 수 없습니다+또는-, 이름 에도이 중 하나 이상이 포함되지 않는 한 캐릭터 :
~! @#%^& | `? $
예,@-허용됩니다 운영자 이름이지만*-그렇지 않습니다. 이 제한은 허용토토 사이트SQL 준수를 구문 분석합니다 토큰 사이의 공간이 필요없는 쿼리.비 SQL 표준 운영자 이름으로 작업 할 때, 당신 일반적으로 인접한 연산자와 공간을 분리해야합니다 모호성을 피하기 위해. 예를 들어, 왼쪽을 정의한 경우 단술 조작자 명명@, 당신은 할 수 없습니다 쓰다x*@y; 당신은 작성해야합니다x* @y토토 사이트두 개의 연산자로 읽습니다 이름이 아닙니다.
영숫자가 아닌 일부 캐릭터에는 특별한 것이 있습니다 연산자와는 다른 의미입니다. 에 대한 세부 사항 사용법은 각각의 위치에서 찾을 수 있습니다. 토토 사이트 요소가 설명되어 있습니다. 이 섹션은 만 존재합니다 존재를 조언하고 이것의 목적을 요약하십시오 캐릭터.
달러 표시 ($) 다음 숫자는 위치 매개 변수를 나타내는 데 사용됩니다 함수 정의의 본문. 다른 맥락에서 달러 표시는 운영자 이름의 일부일 수 있습니다.
괄호 (()) 그룹 표현과 집행에 대한 일반적인 의미 상위. 어떤 경우에는 괄호가 필요합니다 특정 SQL 명령의 고정 구문의 일부.
브래킷 ([])는 익숙합니다 배열의 요소를 선택하십시오. 보다6 장자세한 내용은 배열.
쉼표 (,)는 일부에서 사용됩니다 a의 요소를 분리하기위한 토토 사이트 구성 목록.
세미콜론 (;) 종료됩니다 SQL 명령. a 안에있는 곳에는 나타날 수 없습니다 문자열 상수 또는 인용을 제외하고 명령 식별자.
콜론 (:)는 익숙합니다 선택하다"슬라이스"배열에서. (보다스포츠 토토 결과 PostgreSQL : 문서 : 7.2 : 어레이.) 특정 SQL에서 방언 (예 : 내장 SQL), 결장은 접두사 변수 이름.
별표 (*)가 있습니다
에서 사용될 때 특별한 의미select명령 또는count
집계 기능.
기간 (.)가 사용됩니다 부동 소수점 상수 및 분리 테이블 및 열 이름.
댓글은 임의의 문자 순서입니다 이중 대시와 라인 끝까지 연장되면 예 :
- 이것은 표준 SQL92 댓글입니다
또는 C 스타일 블록 댓글을 사용할 수 있습니다 :
/* 멀티 린 댓글 * 중첩 : / * 중첩 블록 주석 * / */
주석이 시작되는 곳/*그리고 일치하는 발생으로 확장*/. 이 블록 주석은 지정된대로 둥지입니다 SQL99이지만 C와 달리 더 큰 블록을 주석 할 수 있습니다. 기존 블록 댓글을 포함 할 수있는 코드.
추가 전에 입력 스트림에서 주석이 제거됩니다. 토토 사이트 분석 및 효과적으로 대체됩니다 공백.
[1] |
인용되지 않은 이름을 소문자로 접는토토 사이트호환되지 않습니다 SQL 표준을 사용하여 인용되지 않은 이름은 대문자로 접 힙니다. 따라서,foo와 동일해야합니다"foo"not"foo"표준에 따라. 만약에 당신은 당신이 조언하는 휴대용 응용 프로그램을 작성하고 싶습니다. 항상 특정 이름을 인용하거나 인용하지 마십시오. |
PostgreSQL : 문서 : 7.2 : 토토 사이트 순위 문 | 홈 | 다음 |
Y2K 문장 | up | 열 |