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