이 문서는 지원되지 않는 버전의 Postgre스포츠 토토 사이트 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다Postgre배트맨 토토 : 문서 : 17 : 4 장 배트맨 토토 구문버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

4 장 스포츠 토토 사이트 통사론

이 장에서는 스포츠 토토 사이트의 구문을 설명합니다. 그것은 형성된다 다음 장을 이해하기위한 재단 스포츠 토토 사이트 명령이 정의 및 데이터 수정.

우리는 또한 이미 스포츠 토토 사이트에 익숙한 사용자에게 읽을 권고합니다. 이 장은 여러 규칙이 있기 때문에 신중하게 스포츠 토토 사이트 데이터베이스 중에서 일관되지 않은 개념 또는에 따라Postgre스포츠 토토 사이트.

4.1. 어휘 구조

스포츠 토토 사이트 입력은 시퀀스로 구성됩니다.명령. 명령은 시퀀스로 구성됩니다 의토큰, 세미콜론에 의해 종료되었습니다 (";"). 입력 스트림의 끝 또한 명령을 종료합니다. 어떤 토큰이 유효한 지에 따라 다릅니다 특정 명령의 구문.

토큰이 될 수 있습니다키워드, an식별자, a인용 식별자, aLiteral(또는 상수) 또는 특수 캐릭터 상징. 토큰은 일반적으로 공백으로 분리됩니다 (공간, 탭, Newline)이지만 모호성이없는 경우 ( 특수 캐릭터가 인접한 경우에만 해당됩니다. 다른 토큰 유형에).

추가로댓글스포츠 토토 사이트 입력. 그들은 토큰이 아니며 효과적으로 동등합니다 공백에.

예를 들어, 다음은 (구문 적으로) 유효한 스포츠 토토 사이트입니다 입력:

선택 *에서 my_table에서;
my_table set a = 5 업데이트;
my_table 값에 삽입 (3, 'hi there');

이것은 한 줄에 하나씩 세 가지 명령의 시퀀스입니다. 이것은 필요하지 않습니다. 둘 이상의 명령이 줄에있을 수 있습니다. 그리고 명령은 유용하게 선을 가로 질러 분할 될 수 있습니다).

스포츠 토토 사이트 구문은 어떤 토큰에 대해서는 그다지 일관되지 않습니다. 명령을 식별하고 피연산자 또는 매개 변수입니다. 그만큼 처음 몇 개의 토큰은 일반적으로 명령 이름이므로 위의 예를 들어 우리는 일반적으로에 대해 말할 것입니다."선택", an"업데이트"및 an"삽입"명령. 그러나 예를 들어업데이트명령은 항상 필요합니다set토큰이 특정에 나타납니다 위치 및이 특별한 변형의삽입a도 필요합니다.완료되기 위해. 정확한 구문 각 명령에 대한 규칙은에 설명되어 있습니다.Part VI.

4.1.1. 식별자 및 키 단어

select, 업데이트또는in 위의 예는의 예입니다.키 단어, 즉, 고정 된 의미가있는 단어 스포츠 토토 사이트 언어. 토큰my_tableanda의 예입니다식별자. 그들은 테이블의 이름을 식별하고 명령에 따라 열 또는 기타 데이터베이스 개체 그들은 사용됩니다. 따라서 때로는 단순히라고 불립니다."이름". 핵심 단어 및 식별자 동일한 어휘 구조를 가지고 있습니다. 즉, 알 수 없습니다. 토큰이 식별자인지 또는 핵심 단어가 없는지 언어를 알고 있습니다. 핵심 단어의 전체 목록이 될 수 있습니다 에서 발견스포츠 토토 베트맨 PostgreSQL.

스포츠 토토 사이트 식별자 및 키워드는 편지로 시작해야합니다. (a-Z그러나 또한 명성적인 자국과 비 라틴 문자가있는 문자) 또는 밑줄 (_). 후속 식별자 또는 키워드의 문자는 문자 일 수 있습니다. underscores, digits (0-9) 또는 달러 표시 ($). 달러 표시는 허용되지 않습니다 스포츠 토토 사이트 표준의 편지에 따른 식별자 그들의 사용은 응용 프로그램을 휴대용 덜 휴대용으로 만들 수 있습니다. 스포츠 토토 사이트 표준은 숫자가 포함 된 핵심 단어를 정의하지 않습니다. 밑줄로 시작하거나 종료하므로 이것의 식별자 형태는 미래와의 충돌 가능성에 대해 안전합니다 표준 확장.

시스템은 no를 사용합니다 이상paminatalen-1 문자 식별자; 더 긴 이름은 명령으로 작성할 수 있지만 그들은 잘릴 것입니다. 기본적으로paminatalen는 64이므로 최대 식별자입니다 길이는 63입니다.이 한계가 문제가되면 제기 될 수 있습니다. 를 변경하여paminatalen상수 안에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, foo"foo"Postgre스포츠 토토 사이트그러나"foo"and"foo"are 이 세 가지와 서로 다릅니다. (접는 로어 케이스에 대한 인용되지 않은 이름Postgre스포츠 토토 사이트스포츠 토토 사이트과 호환되지 않습니다 표준, 인용되지 않은 이름을 접어야한다고 말합니다. 대문자. 따라서,foo동등한"foo"not"foo"표준에 따라. 원한다면 휴대용 응용 프로그램을 작성하려면 항상 권장됩니다 특정 이름을 인용하거나 인용하지 마십시오.)

4.1.2. 상수

세 종류의암시 적으로 유형 된 상수inPostgre스포츠 토토 사이트: 문자열, 비트 줄 및 숫자. 상수는 명시 적 유형으로 지정할 수도 있습니다. 보다 정확한 표현 등을 가능하게 할 수 있습니다 시스템에 의한 효율적인 처리. 암시 적 상수는입니다 아래 설명; 명시 적 상수에 대해 설명합니다 나중에.

4.1.2.1. 끈 상수

문자열 상수 스포츠 토토 사이트은 임의의 문자 순서입니다 단일 따옴표 ('), 예 :'이것은 문자열입니다'. 스포츠 토토 사이트은 허용됩니다 두 개를 입력하여 문자열에 내장 할 단일 따옴표 인접한 단일 따옴표, 예 :'Dianne' 's Horse'. 안에Postgre스포츠 토토 사이트단일 따옴표 5 월 또는 Backslash (로 탈출해야합니다.\), 예 :'Dianne \'s 말'.

C 스타일의 백 슬래시 탈출도 사용할 수 있습니다 :\ b백 스페이스,\ f양식 피드입니다.\ n​​\ r운송 반품입니다.\ t탭입니다. 그리고\xxx, 여기서xxx|는 옥탈 번호이며 바이트입니다 해당 코드와 함께. (그것은 당신의 책임입니다 당신이 만든 바이트 시퀀스는 유효한 문자입니다. 서버 문자 세트 인코딩.) 다른 문자 백 슬래시를 따르는 것은 문자 그대로 취합니다. 따라서 포함합니다 문자열 상수의 백 슬래시, 두 개의 백 슬래시를 입력합니다.

코드 0이있는 문자는 문자열에있을 수 없습니다. 끊임없는.

분리 된 두 개의 문자열 상수 공백적어도 One Newline는 연결되고 효과적으로 처리됩니다 마치 문자열이 하나의 상수로 작성된 것처럼. 을 위한 예:

'foo'선택
'술집';

'foobar'를 선택하십시오;

하지만

'foo' 'bar'; 선택

유효한 구문이 아닙니다. (이 약간 기괴한 행동입니다 지정스포츠 토토 사이트;Postgre스포츠 토토 사이트표준.)

4.1.2.2. 비트 스트링 상수

비트 스트링 상수는 문자열 상수처럼 보입니다B(위 또는 소문자) 오프닝 견적 직전 (개입 없음 Whitespace), 예 :B'1001 '. 그만큼 비트 스트링 상수 내에서 허용되는 문자 만01.

또는 비트 스트링 상수를 지정할 수 있습니다 선두를 사용하는 16 진전 표기법x(위 또는 소문자), 예 :x'1ff '. 이 표기법은 a와 같습니다 각각 4 개의 이진 숫자로 비트 스트링 상수 16 진수 숫자.

비트 스트링 상수의 두 가지 형태가 계속 될 수 있습니다 일반 문자열과 같은 방식으로 라인을 가로 질러 상수.

4.1.2.3. 숫자 상수

숫자 상수는이 일반적인 것으로 허용됩니다 양식 :

Digits
Digits. [Digits] [e [+-]Digits]
[Digits].Digits[e [+-]Digits]DigitsE [+-]Digits

여기서Digits하나 또는 더 많은 소수점 숫자 (0-9). 적어도 하나의 숫자가 있어야합니다 소수점 전후에 사용되는 경우. ~에 최소 1 자리는 지수 마커를 따라야합니다 (e), 하나가있는 경우. 아무것도 없을 수 있습니다 상수에 내장 된 공백 또는 기타 문자. 메모 선행 플러스 또는 마이너스 부호가 실제로 상수의 일부로 간주됩니다. 적용되는 연산자입니다 상수에.

유효한 숫자 상수의 일부 예입니다.

42
3.5
4.
.001
5E2
1.925E-3

a 소수점이 아닌 숫자 상수 지수는 처음에 유형으로 추정됩니다Integer값이 유형에 맞는 경우Integer(32 비트); 그렇지 않으면 그것은 추정됩니다 형성bigint값이 맞는 경우 유형bigint(64 비트); 그렇지 않으면 유형으로 촬영됩니다숫자. 소수점 및/또는 지수를 포함하는 상수 항상 처음에는 유형으로 추정숫자.

숫자 상수의 초기에 할당 된 데이터 유형 유형 해상도의 출발점 일뿐입니다 알고리즘. 대부분의 경우 상수가 될 것입니다 가장 적절한 유형으로 자동 강요됩니다 상황에 따라. 필요한 경우 강제 a 특정 데이터 유형으로 해석 할 숫자 값 캐스팅.예를 들어, 숫자 값을 유형으로 취급하도록 강요 할 수 있습니다Real(float4) 쓰기

Real '1.23' - 문자열 스타일
1.23 :: Real -Postgresql (역사적) 스타일

4.1.2.4. 상수 기타 유형

상수의 상수임의의유형을 입력 할 수 있습니다 다음 표기법 중 하나 사용 :

타입'String'
'String'::타입캐스트 ( 'String' 처럼타입)

문자열의 텍스트는 입력 변환으로 전달됩니다 라는 유형의 루틴타입. 결과는 상수입니다 표시된 유형. 명시 적 유형 캐스트는 IF를 생략 할 수 있습니다 상수 유형에 대한 모호성은 없습니다. (예를 들어, 논쟁으로 전달 될 때 비 중점 기능),이 경우 자동으로입니다 강제.

함수와 같은 구문 :

typename( 'String' )

그러나 모든 유형 이름이 이런 식으로 사용될 수는 없습니다. 보다섹션 4.2.8자세한 내용.

the::, cast ()및 기능 전화 구문도 할 수 있습니다 임의의 런타임 유형 변환을 지정하는 데 사용됩니다 표현,섹션 4.2.8. 하지만 양식타입'String'익숙해 질 수 있습니다 문자 그대로 상수의 유형을 지정하십시오. 또 다른 제한 에type'String'배열 유형에 대해서는 작동하지 않습니다. 사용::또는cast ()to 배열 상수의 유형을 지정합니다.

4.1.3. 연산자

운영자 이름은 최대의 시퀀스입니다.paminatalen-1 (기본적으로 63) 문자 다음 목록 :

+-*/< = ~! @#%^& | `?

거기 그러나 운영자 이름에 대한 몇 가지 제한 사항입니다.
  • --and/*연산자의 어느 곳에서나 나타날 수 없습니다 이름, 그들은 논평.

  • 다중 문자 연산자 이름은 끝날 수 없습니다+또는-, 이름 에도이 중 하나 이상이 포함되지 않는 한 캐릭터 :

    ~! @#%^& | `?

    예,@-허용됩니다 운영자 이름이지만*-그렇지 않습니다. 이 제한은 허용Postgre스포츠 토토 사이트스포츠 토토 사이트 준수를 구문 분석합니다 토큰 사이의 공간이 필요없는 쿼리.

비 스포츠 토토 사이트 표준 운영자 이름으로 작업 할 때, 당신 일반적으로 인접한 연산자와 공간을 분리해야합니다 모호성을 피하기 위해. 예를 들어, 왼쪽을 정의한 경우 단술 조작자 명명@, 당신은 할 수 없습니다 쓰다x*@y; 당신은 작성해야합니다x* @yPostgre스포츠 토토 사이트두 개의 연산자로 읽습니다 이름이 아닙니다.

4.1.4. 특수 문자

영숫자가 아닌 일부 문자는 특별합니다 연산자와는 다른 의미입니다. 에 대한 세부 사항 사용법은 각각의 위치에서 찾을 수 있습니다. 구문 요소가 설명되어 있습니다. 이 섹션은 만 존재합니다 존재를 조언하고 이것의 목적을 요약하십시오 캐릭터.

  • 달러 표시 ($) 다음 숫자는 위치 매개 변수를 나타내는 데 사용됩니다. 함수 정의 또는 준비된 진술의 본문. ~ 안에 다른 상황은 달러 표시가 식별자.

  • 괄호 (()) 그룹 표현과 집행에 대한 일반적인 의미 상위. 어떤 경우에는 괄호가 필요합니다 특정 스포츠 토토 사이트 명령의 고정 구문의 일부.

  • 브래킷 ([])는 익숙합니다 배열의 요소를 선택하십시오. 보다섹션 8.10자세한 내용은 배열.

  • 쉼표 (,)는 일부에서 사용됩니다 a의 요소를 분리하기위한 구문 구성 목록.

  • 세미콜론 (;) 종료됩니다 스포츠 토토 사이트 명령. a 안에있는 곳에는 나타날 수 없습니다 문자열 상수 또는 인용을 제외하고 명령 식별자.

  • 콜론 (:)는 익숙합니다 선택하다"슬라이스"배열에서. (보다PostgreSQL : 문서 : 7.4 : 스포츠 토토.) 스포츠 토토 사이트 방언 (예 : 임베디드 스포츠 토토 사이트), 결장은 접두사 변수 이름.

  • 별표 (*)는 a 에서 사용될 때 특별한 의미select명령 또는count집계 기능.

  • 기간 (.)가 사용됩니다 숫자 상수 및 스키마, 테이블 및 열 이름.

4.1.5. 의견

댓글은 임의의 문자 순서입니다 이중 대시와 라인 끝까지 연장되면 예 :

- 이것은 표준 스포츠 토토 사이트 주석입니다.

또는 C 스타일 블록 댓글을 사용할 수 있습니다 :

/* 멀티 린 댓글
 * 중첩 : / * 중첩 블록 주석 * /
 */

주석이 시작되는 곳/*그리고 일치하는 발생으로 확장*/. 이 블록 주석은 지정된대로 둥지입니다 스포츠 토토 사이트 표준이지만 C와 달리 댓글을 달 수 있습니다. 기존 블록을 포함 할 수있는 더 큰 코드 블록 댓글.

추가 전에 입력 스트림에서 주석이 제거됩니다. 구문 분석 및 효과적으로 대체됩니다 공백.

4.1.6. 어휘 우선 순위

테이블 4-1의 우선 순위와 연관성을 보여줍니다 운영자Postgre스포츠 토토 사이트. 대부분의 운영자는 동일한 우선 순위를 가지고 있습니다 좌심 관련성. 의 우선 순위와 연관성 운영자는 파서에 딱딱 해져 있습니다. 이것은 이어질 수 있습니다 비 직관적 행동; 예를 들어 부울 연산자<와 다른 우선 순위가 있습니다 부울 운영자<=and =. 또한 때때로 필요할 것입니다 이진의 조합을 사용할 때 괄호를 추가합니다 단독 운영자. 예를 들어

5를 선택하십시오! -6;

|

5를 선택하십시오! (-6);

파서는 너무 늦을 때까지 파서가 전혀 모르기 때문에 - 저것!Postfix로 정의됩니다 운영자, 디스 픽스가 아닙니다. 원하는 행동을 얻기 위해 이 경우, 당신은 작성해야합니다

select (5!) -6;

이것은 확장 성을 위해 지불하는 가격입니다.

표 4-1. 연산자 우선 순위 (감소)

연산자/요소 연관성 설명
. 왼쪽 테이블/열 이름 분리기
:: 왼쪽 Postgre스포츠 토토 사이트-스타일 typecast
[ ] 왼쪽 배열 요소 선택
- 오른쪽 Unary 마이너스
^ 왼쪽 지수
* / % 왼쪽 곱셈, 분할, 모듈로
+ - 왼쪽 추가, 뺄셈
is 진실, 거짓, IS 알려지지 않은, is null
ISNULL null 테스트
notnull 널 테스트
(다른) 왼쪽 다른 모든 기본 및 사용자 정의 연산자
in 멤버십 설정
사이 격리
오버랩 시간 간격 겹침
좋아요 ilike 유사한 문자열 패턴 일치
< |
= 오른쪽 평등, 과제
not 오른쪽 논리적 부정
and 왼쪽 논리적 연결
또는 왼쪽 논리적 분리

운영자 우선 순위 규칙도 적용됩니다 이름과 동일한 이름을 가진 사용자 정의 연산자 위에서 언급 한 내장 작업자. 예를 들어, 당신이 있다면 A 정의"+"일부 운영자 사용자 정의 데이터 유형은 내장"+"운영자, 상관없이 당신의 일.

스키마 자격을 갖춘 연산자 이름이 사용되는 경우운영자예를 들어 구문 안에

3 연산자 선택 (PG_CATALOG.+) 4;

the운영자구성이 취해졌습니다 기본 우선 순위를 표시하려면표 4-1for"다른"운영자. 이것은 사실입니다 어떤 특정 운영자 이름이 내부에 나타나든 상관 없습니다Operator ().