Postgresql 9.3.25 문서 | ||||
---|---|---|---|---|
Postgre메이저 토토 사이트 : 문서 : 9.3 : 메이저 토토 사이트 구문 | Postgre메이저 토토 사이트 : 문서 : 9.3 : 메이저 토토 사이트 구문 | 4 장 SQL | PostgreSQL : 문서 : 9.3 : 값 메이저 토토 사이트식 |
SQL 입력은 시퀀스로 구성됩니다.명령. 명령은 시퀀스로 구성됩니다.토큰, 세미콜론에 의해 종료되었습니다";"). 입력 스트림의 끝
토큰이 될 수 있습니다키워드, an식별자, a인용, a리터럴(또는 상수),
예를 들어, 다음은 (구문 적으로) 유효한 SQL입니다
my_table에서 선택 *;
이것은 한 줄에 하나씩 세 가지 명령의 순서입니다.
추가로댓글SQL에서 발생할 수 있습니다
SQL 구문은 어떤 토큰에 대해서는 그다지 일관되지 않습니다."선택", an"업데이트"및 an"삽입"명령. 그러나 예를 들어업데이트명령은 항상 필요합니다SET토큰은 특정 위치에 나타납니다삽입또한값완료되기 위해.Part VI.
select, 업데이트또는값키워드,my_tableandA의 예입니다식별자. 그들은 식별합니다"이름". 핵심 단어와부록 C.
SQL 식별자 및 키워드는 편지로 시작해야합니다.a-z_). 후속 토토 핫0-9) 또는 달러$). 달러 표시는 그렇지 않습니다
시스템은 이상을 사용합니다.paminatalen-1 식별자의 바이트; 더 긴 이름paminatalen는 64이므로 최대 식별자입니다paminatalen상수src/include/pg_config_manual.h.
키워드 및 인용되지 않은 식별자는 사례 둔감합니다.
my_table set a = 5; 업데이트
동등하게 다음과 같이 작성할 수 있습니다.
my_table set a = 5; 업데이트
자주 사용되는 컨벤션은 핵심 단어를 대토토 핫로 작성하는 것입니다.
업데이트 my_table set a = 5;
두 번째 종류의 식별자가 있습니다 :구분 식별자또는인용. 임의의 순서를 둘러싸고 형성됩니다"). 에이"선택"a를 참조하는 데 사용될 수 있습니다"선택"select열쇠로 간주됩니다
업데이트 "my_table"set "a"= 5;
인용 된 식별자는 다음을 제외한 모든 문자를 포함 할 수 있습니다
인용 된 식별자의 변형은 탈출 된 유니 코드를 포함 할 수 있습니다u &(위 또는 소문자 uu & "foo". (이것은 모호성을 만듭니다&. 주위에 공간을 사용하십시오"데이터"
U & "D \ 0061T \ +000061"
다음 덜 사소한 예는 러시아어를 씁니다"Slon"(코끼리) 키릴 릭
u & "\ 0441 \ 043B \ 043E \ 043D"
백 슬래시와 다른 탈출 토토 핫가 필요하다면UESCAPE절
U & "D! 0061T! +000061"UESCAPE '!'
탈출 토토 핫는
문자 그대로 식별자에 탈출 문자를 포함시키기 위해
유니 코드 이스케이프 구문은 서버 인코딩이있을 때만 작동합니다UTF8. 다른 서버 인코딩이있을 때\ 007f)를 지정할 수 있습니다. 4 자리와
식별자 인용은 또한 대소 문자에 민감하게 만듭니다foo, foo및"foo"arePostgreSQL,"foo"and"foo"는이 세 가지와 서로 다릅니다.PostgreSQLSQL과 호환되지 않습니다foo"foo"not"foo"표준에 따라. 휴대용을 쓰고 싶다면
세 종류의암시 적으로 유형inPostgreSQL:
SQL의 문자열 상수는 임의의 문자 순서입니다.'), 예를 들어'이것은 토토 핫열입니다'. a를 포함합니다'Dianne' 's Horse'.not").
공백에 의해서만 분리 된 두 개의 문자열 상수적어도 하나의 Newline토토 핫열이있는 것처럼 연결되어 효과적으로 처리됩니다.
'foo'선택
와 동일합니다.
'foobar'를 선택하십시오;
그러나 :
'foo' 'bar'; 선택
유효한 구문이 아닙니다. (이 약간 기괴한 행동입니다SQL; PostgreSQL표준을 따르고 있습니다.)
PostgreSQL수락"탈출"문자열 상수E(상단e'foo '. (이스케이프 토토 핫열을 계속할 때E전에만\) C와 같은 시작Backslash Escape시퀀스표 4-1.
표 4-1. 백 슬래시 탈출 시퀀스
백 슬래시 탈출 시퀀스 | 해석 |
---|---|
\ b | 백 스페이스 |
\ f | 양식 피드 |
\ n | Newline |
\ r | 캐리지 리턴 |
\ t | 탭 |
\o, \oo, \ooo (o = 0 - 7) | 옥탈 바이트 값 |
\ xh, \ xHH (h= 0-9, a -f) | 16 진 바이트 값 |
\ uxxxx, \ uxxxxxxxx (x= 0-9, a -f) | 16 또는 32 비트 16 진 유니 코드 문자 값 |
백 슬래시를 따르는 다른 캐릭터는 토토 핫 그대로 취합니다.\\). 또한 단일 견적을 포함시킬 수 있습니다\ ', in''.
바이트가 생성 한 것은 귀하의 책임입니다.섹션대신 사용해야합니다. (대안은 될 것입니다
유니 코드 이스케이프 구문은 서버가 서버만으로 완전히 작동합니다.UTF8. 다른 서버\ u007f)를 지정할 수 있습니다. 모두 4 자리UTF8, 그들은 먼저 결합되었습니다
주의 |
구성 매개 변수 인 경우Standard_Conforming_stringsisOFF,PostgreSQLBackslash가 탈출하는 것을 인식합니다PostgreSQL9.1, 기본값은입니다.on, 즉 백 슬래시 도피를 의미합니다OFF이지만, 마이그레이션하는 것이 좋습니다E. 더 이상Standard_Conforming_strings, 구성Escape_string_warningandbackslash_quote문자열 상수에서 백 슬래시 처리를 통제합니다. |
코드 0이있는 토토 핫는 토토 핫열에있을 수 없습니다.
PostgreSQL또한 지원됩니다u &(상단 또는u & 'foo'. (이것은 an을 만듭니다&. 사용'데이터'
U & 'D \ 0061T \ +000061'
다음 덜 사소한 예는 러시아어를 씁니다"Slon"(코끼리) 키릴 릭
U & '\ 0441 \ 043B \ 043E \ 043D'
백 슬래시와 다른 탈출 토토 핫가 필요하다면UESCAPE절
U & 'D! 0061T! +000061'UESCAPE '!'
탈출 토토 핫는
유니 코드 이스케이프 구문은 서버 인코딩이있을 때만 작동합니다UTF8. 다른 서버 인코딩이있을 때\ 007f)를 지정할 수 있습니다. 4 자리와UTF8, 그들은 먼저 결합되었습니다
또한 문자열 상수에 대한 유니 코드 탈출 구문 만 작동합니다.Standard_Conforming_strings가 켜져 있습니다. 그렇지 않으면이 구문이 혼동 될 수 있기 때문입니다
토토 핫 그대로 탈출 토토 핫를 포함 시키려면 쓰기
25559_25829PostgreSQL다른 방법을 제공합니다."달러, 문자열 상수를 작성합니다. 1 달러 규모의 문자열$), an"tag"0 이상"Dianne 's Horse"달러 사용
$$ Dianne 's Horse $$
달러 규모의 토토 핫열 내부에서 단일 따옴표가 가능합니다
달러에 따른 문자열 상수를 둥지로 둥지를 틀고 있습니다
$ function $
여기, 시퀀스$ q $ [\ t \ r \ n \ V \\] $ q $1 달러 규모의 리터럴 스트링을 나타냅니다[\ t \ r \ n \ v \\]PostgreSQL. 그러나 시퀀스는 그렇지 않기 때문입니다$ function $, 그것은 더 많은 캐릭터 일뿐입니다
1 달러 규모의 토토 핫열의 태그가 동일합니다.$ tag $ string 컨텐츠 $ tag $정확하지만$ tag $ string 컨텐츠 $ tag $is.
키워드 또는 식별자를 따르는 달러 인용 문자열
Dollar Quoting은 SQL 표준의 일부가 아니지만 종종입니다.
비트 스트링 상수는 A의 일반 문자열 상수처럼 보입니다.B(위 또는 소문자) 바로 직전B'1001 '. 내부에 허용되는 유일한 토토 핫0and1.
또는 비트 스트링 상수를 지정할 수 있습니다X(위 또는 소문자), 예 :x'1ff '. 이것
비트 스트링 상수의 두 가지 형태는 라인에서 계속 될 수 있습니다.
숫자 상수는 이러한 일반적인 형태로 허용됩니다.
Digits Digits. [Digits] [E [+-]Digits]Digits].Digits[E [+-]Digits] DigitsE [+-]Digits
여기서Digits는 하나 이상입니다e), 하나라면
유효한 숫자 상수의 일부 예입니다.
42
3.5
4.
.001
5E2
1.925E-3
소수점이나 소수점을 포함하지 않는 숫자 상수정수값이 유형에 맞는 경우정수(32 비트); 그렇지 않으면 유형으로 추정 됨bigint값이 유형에 맞는 경우bigint(64 비트); 그렇지 않으면 유형으로 사용됩니다숫자. 소수점을 포함하는 상수숫자.
숫자 상수의 초기에 할당 된 데이터 유형은Real (float4) by
Real '1.23' - 문자열 스타일
실제로 일반 캐스팅의 특별한 경우입니다.
an임의의유형을 사용하여 입력 할 수 있습니다
Type 'String'String'::Type캐스트 ( 'String' 처럼Type )
문자열 상수의 텍스트가 입력 변환으로 전달됩니다.Type.
문자열 상수는 일반 SQL을 사용하여 작성할 수 있습니다.
typename( 'String' )
그러나 모든 유형 이름을 이런 식으로 사용할 수있는 것은 아닙니다. 보다섹션 4.2.9
the::, cast ()및 함수 콜 구문도 사용할 수 있습니다섹션 4.2.9. 에게Type 'String'구문 만 사용될 수 있습니다Type 'String'구문은 그 것입니다::또는cast ()배열의 유형을 지정합니다
thecast ()구문은 SQL을 준수합니다. 그만큼Type 'String'구문은 aPostgreSQL모든 유형에 대해 허용합니다. 의 구문::역사적PostgreSQL사용법과 마찬가지로 사용합니다
운영자 이름은 최대의 시퀀스입니다.paminatalen-1 (기본적으로 63) 토토 핫
+-*/<> = ~! @#%^& |
운영자 이름에는 몇 가지 제한 사항이 있습니다.--and/*운영자 이름의 어느 곳에서나 나타날 수 없습니다.
다중 토토 핫 운영자 이름은 끝날 수 없습니다+또는-, 이름이 아니라면
~! @#%^& |
예를 들어@-허용 연산자입니다*-는 그렇지 않습니다. 이 제한PostgreSQL구문 분석비 SQL 표준 운영자 이름으로 작업 할 때는 그렇습니다@, 당신은 쓸 수 없습니다x*@y; 당신은 작성해야합니다x* @yPostgreSQL읽습니다
영숫자가 아닌 일부 문자는 특별한 의미를 가지고 있습니다.
주석은 이중으로 시작하는 일련의 토토 핫입니다.
- 이것은 표준 SQL 주석입니다.
또는 C 스타일 블록 댓글을 사용할 수 있습니다 :
/* 멀티 린 댓글
주석이 시작되는 곳/*및*/.
추가 구문 전에 입력 스트림에서 주석이 제거됩니다.
테이블운영자의 우선 순위와 연관성을 보여줍니다PostgreSQL. 대부분의 운영자가 있습니다<and부울과 다른 우선 순위가 있습니다<=and> =. 또한 때때로 추가해야합니다
5를 선택하십시오! -6;
:로 구문 분석됩니다.
5를 선택하십시오! (-6);
파서가 너무 늦을 때까지 파서가 전혀 모르기 때문에!|
select (5!) -6;
이것은 확장 성을 위해 지불하는 가격입니다.
표 4-2. 연산자 우선 순위 (감소)
연산자/요소 | 연관성 | 설명 |
---|---|---|
. | 왼쪽 | 테이블/열 이름 분리기 |
:: | 왼쪽 | PostgreSQL-Style TypeCast |
[ ] | 왼쪽 | 배열 요소 선택 |
+ - | 오른쪽 | unary plus, unary 마이너스 |
^ | 왼쪽 | 지수 |
* / % | 왼쪽 | 곱셈, 분할, 모듈로 |
+ - | 왼쪽 | 추가, 뺄셈 |
is | 진실, is, is null등 | |
isnull | null 테스트 | |
notnull | 널 테스트 | |
(다른) | 왼쪽 | 기타 모든 기본 및 사용자 정의 연산자 |
in | 멤버십 설정 | |
사이 | 범위 격리 | |
오버랩 | 시간 간격 겹침 | |
좋아요 ilike 유사한 | 토토 핫열 패턴 일치 | |
< | | | |
= | 오른쪽 | 평등, 과제 |
not | 오른쪽 | 논리적 부정 |
및 | 왼쪽 | 논리적 연결 |
또는 | 왼쪽 | 논리적 분리 |
운영자 우선 순위 규칙도 적용됩니다"+"일부 사용자 정의 데이터 유형의 연산자"+"운영자, 당신의 일이 무엇이든 상관 없습니다.
스키마 자격 운영자 이름이 사용되는 경우운영자예를 들어 :과 같이 구문.
3 연산자 (PG_CATALOG.+) 4; 선택
the운영자구성이 취해졌습니다표 4-2for"다른"연산자. 이것은 사실입니다OPERATOR ().