| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| Postgre메이저 토토 사이트 : 문서 : 9.3 : 메이저 토토 사이트 구문 | Postgre메이저 토토 사이트 : 문서 : 9.3 : 메이저 토토 사이트 구문 | 4장. SQL 구문 | PostgreSQL : 문서 : 9.3 : 값 메이저 토토 사이트식 | |
SQL 입력은 다음의 시퀀스로 구성됩니다.명령. 명령은 다음의 순서로 구성됩니다.토큰, 세미콜론으로 종료됨 (";"). 입력 스트림의 끝도 명령을 종료합니다. 유효한 토큰은 구문에 따라 다릅니다. 특정 명령의.
토큰은 다음과 같습니다.키워드, an식별자, 아인용됨 식별자, 아리터럴(또는 상수), 또는 특수 문자 기호. 토큰은 일반적으로 다음과 같이 구분됩니다. 공백(공백, 탭, 줄 바꿈). 그러나 공백이 없으면 필요하지 않습니다. 모호함(일반적으로 특수 문자가 있는 경우에만 해당됨) 다른 토큰 유형과 인접해 있습니다).
예를 들어, 다음은 (구문적으로) 유효한 SQL입니다. 입력:
SELECT * FROM MY_TABLE; 업데이트 MY_TABLE SET A = 5; MY_TABLE 값에 삽입(3, '안녕하세요');
이것은 한 줄에 하나씩 세 가지 명령의 시퀀스입니다(비록 이는 필수가 아닙니다. 한 줄에 둘 이상의 명령이 있을 수 있으며 명령은 여러 줄에 걸쳐 유용하게 분할될 수 있습니다.)
또한,댓글SQL에서 발생할 수 있음 입력. 이는 토큰이 아니며 사실상 다음과 동일합니다. 공백.
SQL 구문은 어떤 토큰과 관련하여 일관성이 없습니다. 명령과 피연산자 또는 매개변수를 식별합니다. 첫 번째 일반적으로 명령 이름은 소수의 토큰이므로 위의 예에서는 우리는 보통 a"선택","업데이트"및"삽입"명령. 그러나 예를 들어업데이트명령에는 항상 다음이 필요합니다.SET토큰이 특정 위치에 나타나도록 하고, 이는 특정 변형삽입또한 가 필요합니다값완전해지려면. 각 명령의 정확한 구문 규칙은 다음에 설명되어 있습니다.파트 VI.
다음과 같은 토큰선택, 업데이트또는값에 위의 예는 다음의 예입니다.키워드, 즉, SQL 언어에서 고정된 의미를 갖는 단어입니다. 는 토큰MY_TABLE그리고A다음의 예입니다식별자. 그들은 식별합니다 테이블, 열 또는 기타 데이터베이스 개체의 이름(에 따라 다름) 사용되는 명령입니다. 따라서 때로는 단순히 전화함"이름". 핵심 단어와 식별자는 동일한 어휘 구조를 가지고 있습니다. 토큰이 없으면 토큰이 식별자인지 키워드인지 알 수 없습니다. 언어를 아는 것. 전체 키워드 목록은 다음에서 찾을 수 있습니다.사설 토토 사이트 PostgreSQL : 문서 : 9.3 : SQL 키어.
SQL 식별자와 키워드는 문자로 시작해야 합니다 (a-z뿐만 아니라 발음 구별 부호가 있는 문자와 라틴 문자가 아닌 문자) 또는 밑줄(_). 후속 문자 식별자 또는 키워드는 문자, 밑줄, 숫자일 수 있습니다. (0-9) 또는 달러 기호($). 달러 기호는 그렇지 않습니다. SQL 표준의 문자에 따라 식별자에 허용됩니다. 따라서 이를 사용하면 애플리케이션의 이식성이 떨어질 수 있습니다. SQL 표준은 숫자나 시작을 포함하는 키워드를 정의하지 않습니다. 또는 밑줄로 끝나므로 이 형식의 식별자는 안전합니다. 향후 확장과 충돌 가능성에 대비 표준.
시스템은 다음 이상을 사용하지 않습니다.NAMEDATALEN-식별자의 1바이트; 긴 이름 명령으로 작성할 수 있지만 잘립니다. 기본적으로,NAMEDATALEN는 64이므로 최대 식별자는 길이는 63바이트입니다. 이 한도에 문제가 있는 경우 한도를 높일 수 있습니다. 를 변경하여NAMEDATALEN상수src/include/pg_config_manual.h.
키워드와 따옴표가 없는 식별자는 대소문자를 구분하지 않습니다. 따라서:
MY_TABLE 세트 A 업데이트 = 5;
동등하게 다음과 같이 쓸 수 있습니다.
upPDaTE my_Table Set a = 5;
자주 사용되는 관례는 키워드를 대문자로 쓰고 소문자로 된 이름(예:
UPDATE my_table SET a = 5;
두 번째 종류의 식별자가 있습니다: the구분된 식별자또는인용됨 식별자. 임의의 시퀀스를 포함하여 구성됩니다. 큰따옴표 안의 토토 핫("). 에이 구분 식별자는 항상 식별자이지 키워드가 아닙니다. 그래서"선택"다음을 참조하는 데 사용될 수 있습니다. 이름이 지정된 열 또는 테이블"선택", 반면 인용되지 않은선택열쇠로 사용됩니다 단어를 사용하면 구문 분석 오류가 발생합니다. 테이블 또는 열 이름이 필요합니다. 예제는 다음과 같이 작성할 수 있습니다. 다음과 같이 인용된 식별자:
업데이트 "my_table" SET "a" = 5;
인용된 식별자에는 다음을 제외한 모든 문자가 포함될 수 있습니다. 코드가 0인 문자. (큰따옴표를 포함하려면 두 개를 쓰세요. 큰따옴표.) 이를 통해 테이블 또는 열 이름을 구성할 수 있습니다. 그렇지 않으면 공백이나 공백이 포함된 경우와 같이 불가능합니다. 앰퍼샌드. 길이 제한은 여전히 적용됩니다.
인용된 식별자의 변형을 사용하면 이스케이프된 유니코드를 포함할 수 있습니다. 코드 포인트로 식별되는 문자입니다. 이 변형은 시작됩니다 와 함께유&(대문자 또는 소문자 U 뒤에 앰퍼샌드)가 여는 큰따옴표 바로 앞에 있습니다. 예를 들어 사이에 공백이 없으면U&"foo". (이로 인해 모호함이 발생합니다. 교환원과 함께&. 주변 공간을 활용하세요 이 문제를 피하려면 연산자를 사용하십시오.) 따옴표 안에는 유니코드가 있습니다. 백슬래시를 작성하여 이스케이프 형식으로 문자를 지정할 수 있습니다. 그 뒤에는 4자리 16진수 코드 포인트 번호 또는 또는 백슬래시 뒤에 더하기 기호와 6자리 16진수 코드 포인트 번호. 예를 들어, 식별자"데이터"다음과 같이 쓸 수 있습니다
U&"d\0061t\+000061"
다음의 덜 사소한 예는 러시아어 단어를 씁니다"슬론"(코끼리) 키릴 토토 핫 편지:
U&"\0441\043B\043E\043D"
백슬래시와 다른 이스케이프 토토 핫를 원할 경우 를 사용하여 지정할 수 있습니다.UESCAPE절 토토 핫열 뒤에, 예를 들면 다음과 같습니다:
U&"d!0061t!+000061" UESCAPE '!'
이스케이프 문자는 다음을 제외한 모든 단일 문자일 수 있습니다. 16진수, 더하기 기호, 작은따옴표, 큰따옴표, 또는 공백 문자. 이스케이프 문자는 다음과 같습니다. 큰따옴표가 아닌 작은따옴표로 작성되었습니다.
식별자에 이스케이프 문자를 문자 그대로 포함하려면, 두 번 쓰세요.
유니코드 이스케이프 구문은 서버 인코딩이 다음과 같은 경우에만 작동합니다.UTF8. 다른 서버 인코딩이 있는 경우 사용됨, ASCII 범위의 코드 포인트만(최대\007F)을 지정할 수 있습니다. 4자리 숫자와 6자리 형식을 사용하여 UTF-16 서로게이트 쌍을 지정할 수 있습니다. U+FFFF보다 큰 코드 포인트로 토토 핫를 구성합니다. 기술적으로 6자리 형식을 사용할 수 있으므로 불필요합니다. (대리 쌍은 직접 저장되지 않고 결합됩니다. utf-8로 인코딩되는 단일 코드 포인트로 변환됩니다.)
식별자를 인용하면 대소문자가 구분됩니다. 따옴표가 없는 이름은 항상 소문자로 접혀집니다. 예를 들어, 식별자FOO, foo및"foo"있습니다 동일한 것으로 간주됨PostgreSQL, 하지만"푸"그리고"FOO"이 세 가지와 서로 다릅니다. (따옴표가 없는 이름을 소토토 핫로 접기PostgreSQLSQL과 호환되지 않습니다 따옴표가 없는 이름은 위쪽으로 접혀야 한다는 표준입니다. 사건. 따라서,foo다음과 동일해야 합니다"FOO"아님"foo"표준에 따릅니다. 휴대용으로 쓰고 싶다면 응용 프로그램에서는 항상 특정 이름을 인용하거나 절대 인용하지 마세요.)
세 가지 종류가 있습니다암시적 유형 상수에PostgreSQL: 토토 핫열, 비트 토토 핫열 및 숫자. 상수도 지정할 수 있습니다. 더 정확한 표현을 가능하게 하는 명시적 유형 사용 시스템을 통해 보다 효율적으로 처리할 수 있습니다. 이러한 대안은 다음 하위 섹션에서 논의됩니다.
SQL의 토토 핫열 상수는 임의의 문자 시퀀스입니다. 작은따옴표로 묶음('), 예를 들어'이것은 토토 핫열입니다'. 포함하려면 토토 핫열 상수 내의 작은따옴표 문자, 인접한 두 개 쓰기 작은따옴표(예:'다이앤'의 말'. 참고하세요아님큰따옴표 토토 핫()와 같습니다.").
공백으로만 구분되는 두 개의 토토 핫열 상수적어도 하나의 개행 토토 핫 포함은 토토 핫열이 연결되어 효과적으로 처리됩니다. 하나의 상수로 작성됩니다. 예를 들면:
'foo' 선택 '바';
다음과 같습니다:
'foobar' 선택;
하지만:
'foo' '바' 선택;
은 유효한 구문이 아닙니다. (이 약간 이상한 행동은 에 의해 지정됨SQL; PostgreSQL표준을 따르고 있습니다.)
PostgreSQL또한 허용"탈출"토토 핫열 상수, 이는 SQL 표준 확장. 이스케이프 토토 핫열 상수는 다음과 같습니다. 편지를 써서 지정됨E(상위 또는 소문자) 여는 작은따옴표 바로 앞에, 예:이푸'. (이스케이프 토토 핫열을 계속할 때 줄 전체에 걸쳐 상수, 쓰기E이전에만 첫 번째 여는 따옴표.) 이스케이프 토토 핫열 내에서 백슬래시 문자(\)는 C와 유사한 시작백슬래시 이스케이프순서, 여기서 조합은 백슬래시와 그 뒤의 문자는 특수 바이트를 나타냅니다. 값은 다음과 같습니다.표 4-1.
표 4-1. 백슬래시 이스케이프 시퀀스
| 백슬래시 이스케이프 시퀀스 | 해석 |
|---|---|
| \b | 백스페이스 |
| \f | 양식 피드 |
| \n | 개행 |
| \r | 캐리지 리턴 |
| \t | 탭 |
| \o, \oo, \오우 (o = 0 - 7) | 8진수 바이트 값 |
| \xh, \xㅎ (h= 0 - 9, A - F) | 16진수 바이트 값 |
| \uxxxx, \Uxxxxxxxx (x= 0 - 9, A - F) | 16 또는 32비트 16진수 유니코드 문자 값 |
백슬래시 뒤에 오는 다른 모든 토토 핫는 토토 핫 그대로 간주됩니다. 따라서 백슬래시 토토 핫를 포함하려면 두 개의 백슬래시를 작성하십시오. (\\). 또한 작은따옴표도 포함될 수 있습니다. 다음을 작성하여 이스케이프 토토 핫열에\', 에 일반적인 방법에 추가로''.
당신이 생성한 바이트 시퀀스는 당신의 책임입니다. 특히 8진수 또는 16진수 이스케이프를 사용하는 경우 서버 문자 집합 인코딩의 유효한 문자입니다. 때 서버 인코딩이 utf-8이면 유니코드가 이스케이프되거나 대체 유니코드 이스케이프 구문, 설명됨섹션 4.1.2.323169_23315
유니코드 이스케이프 구문은 서버가 인코딩은UTF8. 다른 서버일 때 인코딩이 사용되며 ASCII 범위의 코드 포인트만 사용됩니다(최대\u007F)을 지정할 수 있습니다. 둘 다 4자리 8자리 형식을 사용하여 UTF-16 서로게이트 쌍을 지정할 수 있습니다. U+FFFF보다 큰 코드 포인트로 토토 핫를 구성하려면 기술적으로 8자리 형식을 사용할 수 있으므로 불필요합니다. (서버가 서로게이트 쌍을 사용하는 경우 인코딩은UTF8, 먼저 결합됩니다. utf-8로 인코딩되는 단일 코드 포인트로 변환됩니다.)
| 주의 |
|
구성 매개변수인 경우standard_conforming_stringsis꺼짐그러면PostgreSQL백슬래시 이스케이프를 인식합니다. 일반 및 이스케이프 토토 핫열 상수. 그러나 현재로서는PostgreSQL9.1, 기본값은켜짐, 즉 백슬래시 이스케이프는 이스케이프 토토 핫열 상수에서만 인식됩니다. 이런 행동이 더 표준을 준수하지만 백슬래시 이스케이프가 항상 있었던 역사적 동작 인식. 해결 방법으로 이 매개변수를 다음과 같이 설정할 수 있습니다.꺼짐, 하지만 다른 곳으로 이전하는 것이 더 좋습니다. 백슬래시 이스케이프를 사용합니다. 백슬래시 이스케이프를 사용해야 하는 경우 특수 문자를 표현하려면 토토 핫열 상수를로 작성하세요.E. 추가로standard_conforming_strings, 구성 매개변수escape_string_warning그리고백슬래시_quote토토 핫열 상수에서 백슬래시 처리를 관리합니다. |
코드 0이 있는 문자는 토토 핫열에 포함될 수 없습니다 상수.
PostgreSQL또한 지원합니다 지정할 수 있는 토토 핫열에 대한 또 다른 유형의 이스케이프 구문 코드 포인트별 임의의 유니코드 문자. 유니코드 이스케이프 토토 핫열 상수는으로 시작합니다.유&(상위 또는 소문자 U 다음에 앰퍼샌드가 옴) 바로 앞에 예를 들어 사이에 공백이 없는 인용문을 시작합니다.U&'foo'. (이렇게 하면 연산자와의 모호함&. 사용 이 문제를 피하기 위해 연산자 주변에 공백을 두십시오.) 내부 따옴표, 유니코드 문자는 다음을 통해 이스케이프 형식으로 지정할 수 있습니다. 백슬래시 뒤에 4자리 16진수 코드 작성 점 번호 또는 백슬래시 뒤에 더하기 기호 그 뒤에는 6자리 16진수 코드 포인트 번호가 옵니다. 예를 들어, 토토 핫열'데이터'다음과 같이 쓸 수 있습니다
U&'d\0061t\+000061'
다음의 덜 사소한 예는 러시아어 단어를 씁니다"슬론"(코끼리) 키릴 토토 핫 편지:
U&'\0441\043B\043E\043D'
백슬래시와 다른 이스케이프 토토 핫를 원할 경우 를 사용하여 지정할 수 있습니다.UESCAPE절 토토 핫열 뒤에, 예를 들면 다음과 같습니다:
U&'d!0061t!+000061' UESCAPE '!'
이스케이프 문자는 다음을 제외한 모든 단일 문자일 수 있습니다. 16진수, 더하기 기호, 작은따옴표, 큰따옴표, 또는 공백 문자입니다.
유니코드 이스케이프 구문은 서버 인코딩이 다음과 같은 경우에만 작동합니다.UTF8. 다른 서버 인코딩이 있는 경우 사용됨, ASCII 범위의 코드 포인트만(최대\007F)을 지정할 수 있습니다. 4자리 숫자와 6자리 형식을 사용하여 UTF-16 서로게이트 쌍을 지정할 수 있습니다. U+FFFF보다 큰 코드 포인트로 토토 핫를 구성합니다. 기술적으로 6자리 형식을 사용할 수 있으므로 불필요합니다. (서버가 서로게이트 쌍을 사용하는 경우 인코딩은UTF8, 먼저 결합됩니다. utf-8로 인코딩되는 단일 코드 포인트로 변환됩니다.)
또한 토토 핫열 상수에 대한 유니코드 이스케이프 구문은 오직 작동합니다 구성 매개변수인 경우standard_conforming_strings켜져 있습니다. 그렇지 않으면 이 구문이 혼동될 수 있기 때문입니다. SQL 문을 구문 분석할 수 있는 지점까지 분석하는 클라이언트 SQL 주입 및 유사한 보안 문제가 발생합니다. 만약 매개변수가 off로 설정되면 이 구문은 오류와 함께 거부됩니다. 메시지.
토토 핫열에 이스케이프 문자를 포함하려면 다음을 입력하십시오. 두 번.
토토 핫열 상수를 지정하는 표준 구문은 다음과 같습니다. 일반적으로 편리하지만 다음과 같은 경우에는 이해하기 어려울 수 있습니다. 원하는 토토 핫열에는 작은따옴표나 백슬래시가 많이 포함되어 있습니다. 각각 두 배로 늘려야 합니다. 더 읽기 쉬운 쿼리를 허용하려면 그런 상황,PostgreSQL다른 방법을 제공합니다."달러 인용", 토토 핫열 상수를 작성합니다. 달러로 묶인 토토 핫열 상수는 달러 기호($), 선택사항"태그"0개 이상의 토토 핫, 또 다른 달러 기호, 임의의 순서 토토 핫열 내용을 구성하는 토토 핫, 달러 기호, 이 달러 인용문을 시작한 동일한 태그와 달러 기호입니다. 에 대한 예를 들어 토토 핫열을 지정하는 두 가지 방법이 있습니다."다이앤의 말"달러 사용 인용:
$$다이앤의 말$$ $SomeTag$Dianne의 말$SomeTag$
달러로 묶인 토토 핫열 내에서 작은따옴표는 탈출할 필요 없이 사용할 수 있습니다. 실제로 안에 문자가 없습니다. 달러로 묶인 토토 핫열은 이스케이프됩니다. 토토 핫열 내용은 다음과 같습니다. 항상 문자 그대로 작성되었습니다. 백슬래시는 특별하지 않으며, 일치하는 시퀀스의 일부가 아닌 한 달러 기호입니다. 여는 태그입니다.
달러로 묶인 토토 핫열 상수를 다음과 같이 중첩할 수 있습니다. 각 중첩 수준에서 다른 태그를 선택합니다. 이것이 가장 함수 정의를 작성할 때 일반적으로 사용됩니다. 예를 들면:
$기능$
시작
RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
끝;
$기능$
여기서 순서$q$[\t\r\n\v\\]$q$달러로 묶인 리터럴 토토 핫열을 나타냅니다.[\t\r\n\v\\], 이는 다음과 같은 경우 인식됩니다. 함수 본문은에 의해 실행됩니다.PostgreSQL. 하지만 순서가 맞지 않기 때문에 외부 달러 인용 구분 기호와 일치합니다.$기능$, 안에 문자가 몇 개 더 있을 뿐입니다. 외부 토토 핫열에 관한 한 상수입니다.
달러로 묶인 토토 핫열의 태그가 있는 경우 동일한 태그를 따릅니다. 규칙은 따옴표가 없는 식별자로 사용됩니다. 단, 달러 기호. 태그는 대소문자를 구분하므로$tag$String 콘텐츠$tag$맞습니다만$TAG$토토 핫열 콘텐츠$tag$그렇지 않습니다.
키워드 또는 식별자 뒤에 오는 달러로 묶인 토토 핫열은 다음과 같아야 합니다. 공백으로 구분하세요. 그렇지 않으면 달러 인용 구분 기호는 이전 식별자의 일부로 간주됩니다.
달러 인용은 SQL 표준의 일부는 아니지만 종종 복잡한 토토 핫열 리터럴을 작성하는 더 편리한 방법은 표준 호환 작은따옴표 구문. 특히 유용합니다 다른 상수 내에서 토토 핫열 상수를 표현할 때, 절차적 함수 정의에 종종 필요합니다. 작은따옴표 사용 구문에서 위 예의 각 백슬래시는 다음과 같아야 합니다. 4개의 백슬래시로 작성되며 2개로 줄어듭니다. 원래 토토 핫열 상수를 구문 분석할 때 백슬래시를 사용한 다음 함수 중에 내부 토토 핫열 상수가 다시 구문 분석되는 경우 실행.
비트 토토 핫열 상수는 다음이 포함된 일반 토토 핫열 상수처럼 보입니다.B(대문자 또는 소문자) 직전 시작 따옴표(중간 공백 없음), 예:B'1001'. 안에 허용되는 유일한 문자 비트 토토 핫열 상수는 다음과 같습니다.0그리고1.
또는 다음에서 비트 토토 핫열 상수를 지정할 수 있습니다. 16진수 표기법, 선행 사용X(대문자 또는 소문자), 예:X'1FF'. 이 표기법은 4개의 이진수가 포함된 비트 토토 핫열 상수와 동일합니다. 각 16진수에 대한 숫자입니다.
두 가지 형태의 비트 토토 핫열 상수가 여러 줄에 걸쳐 계속될 수 있습니다. 일반 토토 핫열 상수와 같은 방식입니다. 달러 인용은 할 수 없습니다 비트 토토 핫열 상수에 사용됩니다.
숫자 상수는 다음과 같은 일반적인 형식으로 허용됩니다:
숫자 숫자.[숫자][e[+-]숫자] [숫자].숫자[e[+-]숫자] 숫자e[+-]숫자
어디에서숫자하나 이상입니다 10진수(0~9). 또는 앞에 숫자가 하나 이상 있어야 합니다. 소수점이 사용되는 경우 소수점 이하. 최소한 한 자리 숫자는 필수입니다. 지수 표시()를 따르세요.e), 하나인 경우 현재. 공백이나 기타 문자가 포함될 수 없습니다. 상수. 선행 플러스 또는 마이너스 기호는 표시되지 않습니다. 실제로 상수의 일부로 간주됩니다. 적용된 연산자입니다 상수로.
다음은 유효한 숫자 상수의 몇 가지 예입니다:
42
3.5
4.
.001
5e2
1.925e-3
소수점이나 소수점을 모두 포함하지 않는 숫자 상수 지수는 처음에 유형으로 추정됩니다.정수값이 유형에 맞는 경우정수(32비트); 그렇지 않으면 유형인 것으로 추정됩니다.비긴트값이 유형에 맞는 경우비긴트(64비트); 그렇지 않으면 유형으로 간주됩니다.숫자. 소수를 포함하는 상수 점 및/또는 지수는 처음에는 항상 유형으로 간주됩니다.숫자.
숫자 상수의 처음에 할당된 데이터 유형은 단지 유형 분석 알고리즘의 시작점. 대부분의 경우 상수는 자동으로 가장 적절한 값으로 강제 변환됩니다. 상황에 따라 유형을 지정합니다. 필요한 경우 숫자를 강제로 입력할 수 있습니다. 값을 캐스팅하여 특정 데이터 유형으로 해석합니다. 에 대한 예를 들어 숫자 값을 강제로 유형으로 처리할 수 있습니다.진짜 (float4) 작성자 쓰기:
REAL '1.23' -- 토토 핫열 스타일 1.23::REAL -- PostgreSQL(역사적) 스타일
이것은 실제로 일반 캐스팅의 특별한 경우입니다. 다음에 논의되는 표기법.
an의 상수임의의유형은 다음을 사용하여 입력할 수 있습니다. 다음 표기법 중 하나:
유형 '토토 핫열'
'토토 핫열'::유형캐스트('토토 핫열' 그대로유형 )
토토 핫열 상수의 텍스트가 입력 변환으로 전달됩니다 라는 유형의 루틴유형. 결과는 표시된 유형의 상수입니다. 명시적 유형 유형에 대한 모호성이 없으면 캐스트를 생략할 수 있습니다. 상수는 다음과 같아야 합니다(예를 들어, 상수에 직접 할당되는 경우). 테이블 열), 이 경우 자동으로 강제됩니다.
토토 핫열 상수는 일반 SQL을 사용하여 작성할 수 있습니다. 표기법 또는 달러 인용.
다음을 사용하여 유형 강제를 지정하는 것도 가능합니다. 함수형 구문:
유형 이름 ( '토토 핫열' )
그러나 모든 유형 이름이 이런 방식으로 사용될 수 있는 것은 아닙니다. 참조섹션 4.2.9용 세부사항.
그::, 캐스트()및 함수 호출 구문도 사용할 수 있습니다. 임의 표현식의 런타임 유형 변환을 지정하려면 다음과 같이 하십시오. 에서 논의됨섹션 4.2.9. 받는 사람 구문적 모호성을 피하십시오.유형 '토토 핫열'구문은 다음 용도로만 사용할 수 있습니다. 간단한 리터럴 상수의 유형을 지정합니다. 또 다른 제한 사항 에유형 '토토 핫열'구문은 다음과 같습니다 배열 유형에서는 작동하지 않습니다. 사용::또는캐스트()배열 유형 지정 상수.
그캐스트()구문은 SQL을 따릅니다.유형 '토토 핫열'구문은 표준의 일반화: SQL은 이 구문을 다음에 대해서만 지정합니다. 몇 가지 데이터 유형이지만PostgreSQL모든 유형에 대해 허용합니다. 의 구문::역사적임PostgreSQL사용법, 함수 호출과 마찬가지로 구문.
연산자 이름은 최대의 순서입니다NAMEDATALEN-1(기본적으로 63) 문자 다음 목록:
+ - * / < = ~ ! @ # % ^ & | ` ?
그러나 연산자 이름에는 몇 가지 제한이 있습니다:--그리고/*연산자 이름 어디에도 나타날 수 없습니다. 코멘트의 시작으로 간주됩니다.
여러 문자로 된 연산자 이름은 다음으로 끝날 수 없습니다.+또는-, 이름이 아닌 경우 또한 다음 문자 중 하나 이상이 포함되어 있습니다.
~ ! @ # % ^ & | ` ?
예를 들어,@-허용된 연산자입니다 이름은 있지만*-그렇지 않습니다. 이 제한 허용합니다PostgreSQL파싱하다 토큰 사이에 공백이 필요 없는 SQL 호환 쿼리입니다.SQL 표준이 아닌 연산자 이름으로 작업할 때, 일반적으로 인접 연산자를 피하기 위해 공백으로 구분해야 합니다. 모호함. 예를 들어 왼쪽 단항 연산자를 정의한 경우 명명된@, 쓸 수 없습니다X*@Y; 당신은 작성해야합니다X* @Y그것을 보장하기 위해PostgreSQL읽는다 하나가 아닌 두 개의 연산자 이름으로.
영숫자가 아닌 일부 문자는 특별한 의미를 갖습니다. 운영자가 되는 것과는 다르다. 사용량에 대한 자세한 내용은 해당 구문 요소가 있는 위치에서 찾을 수 있습니다. 설명했습니다. 이 섹션은 존재 여부를 조언하기 위해서만 존재합니다. 이 문자의 목적을 요약해 보세요.
달러 기호($) 뒤에 숫자가 옵니다. 함수 본문에서 위치 매개변수를 나타내는 데 사용됩니다. 정의 또는 준비된 진술. 다른 맥락에서는 달러 sign은 식별자 또는 달러로 묶인 토토 핫열의 일부일 수 있습니다. 상수.
괄호(()) 평소와 같이 표현식을 그룹화하고 우선순위를 적용하는 것을 의미합니다. 어떤 경우에는 괄호는 고정 구문의 일부로 필요합니다. 특정 SQL 명령.
괄호([])를 사용하여 배열의 요소. 참조PostgreSQL : 문서 : 9.3 : 토토 꽁 머니배열에 대한 자세한 내용은.
쉼표(,)는 일부 구문에서 사용됩니다. 목록의 요소를 분리하는 구성입니다.
세미콜론(;)은 SQL을 종료합니다. 명령. 명령 내부를 제외하고 명령 내 어디에도 나타날 수 없습니다. 토토 핫열 상수 또는 인용 식별자입니다.
콜론(:)은 선택하는 데 사용됩니다."슬라이스"배열에서. (참조섹션 8.15.) 특정 SQL 방언(예: Embedded SQL), 콜론은 변수 이름 앞에 붙는 데 사용됩니다.
별표(*)은 일부에서 사용됩니다. 테이블 행 또는 복합의 모든 필드를 나타내는 컨텍스트 가치. 또한 논증으로 사용될 때 특별한 의미를 갖는다. 집계 함수, 즉 집계에 필요하지 않은 집계 함수 명시적인 매개변수.
기간(.)는 숫자로 사용됩니다. 상수를 사용하고 스키마, 테이블, 열 이름을 구분합니다.
댓글은 double로 시작하는 일련의 문자입니다. 대시와 줄 끝까지 확장됩니다. 예:
-- 표준 SQL 주석입니다.
또는 C 스타일 블록 주석을 사용할 수 있습니다:
/* 여러 줄 주석 * 중첩 있음: /* 중첩된 블록 주석 */ */
댓글이 다음으로 시작하는 곳/*그리고 일치하는 발생으로 확장됩니다.*/. 이러한 블록 주석은 SQL 표준에 지정된 대로 중첩되지만 C와 달리 더 큰 코드 블록을 주석 처리할 수 있습니다. 기존 블록 주석이 포함될 수 있습니다.
추가 구문 전에 입력 스트림에서 주석이 제거됩니다. 분석하고 효과적으로 공백으로 대체됩니다.
테이블 4-2연산자의 우선순위와 연관성을 보여줍니다.PostgreSQL. 대부분의 운영자는 동일한 우선순위를 가지며 왼쪽 결합적입니다. 우선순위와 연산자의 연관성은 파서에 내장되어 있습니다. 이 직관적이지 않은 행동으로 이어질 수 있습니다. 예를 들어 부울 연산자<그리고부울과 다른 우선순위를 가짐 연산자<=그리고=. 또한 때로는 추가해야 할 경우도 있습니다. 이진 연산자와 단항 연산자의 조합을 사용할 때 괄호. 예를 들어:
5개를 선택하세요! - 6;
다음과 같이 구문 분석됩니다:
5개를 선택하세요! (-6);
파서가 모르기 때문에 - 너무 늦을 때까지 - 그!은(는) 후위 연산자로 정의됩니다. 하나를 삽입하십시오. 이 경우 원하는 동작을 얻으려면 다음을 수행해야 합니다. 쓰다:
선택 (5 !) - 6;
이것은 확장성을 위해 지불하는 대가입니다.
표 4-2. 연산자 우선순위(감소)
| 연산자/요소 | 연관성 | 설명 |
|---|---|---|
| . | 왼쪽 | 테이블/열 이름 구분 기호 |
| :: | 왼쪽 | PostgreSQL-스타일 타입캐스트 |
| [ ] | 왼쪽 | 배열 요소 선택 |
| + - | 맞아요 | 단항 더하기, 단항 빼기 |
| ^ | 왼쪽 | 지수 |
| * / % | 왼쪽 | 곱셈, 나눗셈, 모듈로 |
| + - | 왼쪽 | 덧셈, 뺄셈 |
| IS | 사실입니다, IS 거짓, NULL임등 | |
| ISNULL | 널 테스트 | |
| NOTNULL | Null이 아닌지 테스트 | |
| (기타) | 왼쪽 | 기타 모든 기본 및 사용자 정의 연산자 |
| IN | 멤버십 설정 | |
| 사이 | 범위 격리 | |
| 겹침 | 시간 간격 중복 | |
| 좋아요 좋아요 유사 | 토토 핫열 패턴 일치 | |
| < | 보다 작음, 보다 큼 | |
| = | 맞아요 | 평등, 할당 |
| 아님 | 맞아요 | 논리적 부정 |
| 그리고 | 왼쪽 | 논리적 접속사 |
| 또는 | 왼쪽 | 논리적 분리 |
연산자 우선순위 규칙은 다음에도 적용됩니다. 내장 연산자와 이름이 같은 사용자 정의 연산자 위에서 언급한 연산자. 예를 들어,"+"일부 사용자 정의 데이터 유형에 대한 연산자 내장된 것과 동일한 우선순위를 갖습니다."+"연산자, 당신이 무엇을 하든 관계없습니다.
스키마 한정 연산자 이름이 다음에서 사용되는 경우운영자구문, 예:
3명의 연산자 선택(pg_catalog.+) 4;
the운영자구조물은 다음과 같이 간주됩니다 에 표시된 기본 우선순위표 4-2for"다른 것"연산자. 이건 사실이야 아니야 어떤 특정 연산자가 내부에 나타나는지 문제연산자().