INNENTÜREN, TUNING DESIGN TÜREN aus Slowenien.


  • Ljubljana


    0038651 - 660 - 406

  • Ptuj


    0038651 - 316 - 130
    0038631 - 688 - 777

db 쿼리문 예제

db 쿼리문 예제

9.1부터 PostgreSQL 데이터베이스는 쿼리(설명서)를 사용하여 본문 내에서 DML 문(삽입, 업데이트, 삭제)을 지원합니다. DML 문의 (독점) 반환 절을 사용하는 경우 쿼리가 실제로 데이터(예: 방금 삽입된 행)를 반환합니다. SQL:2016-2, §5.4 형식: = (쿼리 이름은 한정할 수 없음). 구문 규칙 5b도 참조하십시오. 실제로 쿼리 식의 첫 번째 부분입니다. 즉, 공용 구조체, 교차 및 제외(괄호 안에 하위 쿼리로 작성된 경우 제외)를 제외하고 는 바로 다음에 유효하지 않습니다. 다음 쿼리는 CASE 식을 사용하여 각 제품 범주, 즉 CPU 5%, 비디오 카드 10% 및 기타 제품 범주 8%에 대한 할인을 계산하여 이를 지원하는 데이터베이스에 대한 SQL 2003 FILTER WHERE 구문을 사용하여 쿼리를 생성합니다. 또한 DML 문(기본적으로 업데이터 뷰 빌드)의 대상으로 with 쿼리를 사용할 수도 있습니다. 클라이언트가 우리와 함께 한 기간에 따라 할인을 얻기 위해 이전 쿼리를 변경하려는 경우 조회를 사용하여 할 수 있습니다: 다음 쿼리에서 SELECT 문에 의해 반환된 행을 제한하기 위해 HAVING 절의 CASE 식을 사용합니다. 간단한 CASE 식은 case_expression을 같음의 첫 번째 WHEN 절인 when_expression_1에 나타나는 식과 비교합니다.

with 절은 CTE(공통 테이블 식) 및 하위 쿼리 팩터링이라고도 합니다. with 절의 재귀는 다른 문서에서 다룹니다. SQL:1999는 “문 범위 보기”를 정의하는 with 절을 추가했습니다. 데이터베이스 스키마에는 저장되지 않고, 대신 에 속한 쿼리에서만 유효합니다. 이렇게 하면 전역 네임스페이스를 오염하지 않고 명령문의 구조를 개선할 수 있습니다. case_expression이 when_expression_1과 같으면 간단한 CASE는 result_1인 해당 THEN 절에서 식을 반환합니다. PostgreSQL 데이터베이스는 이점에서 다릅니다: 쿼리와 서로 독립적인 기본 문으로 각각 을 최적화합니다. 이는 사실이지만 Expression이 있는 방식과 유사하게 두 개 이상의 쿼리에서 자체 포함되고 재사용할 수 있도록 유지됩니다. 의 기본 기능은 잘 지원됩니다. 제품이 다르게 행동하는 단일 영역은 이름 확인입니다.

특히 재귀로 처리되는 경우가 많다는 점은 주목할 만합니다.6 보다 미묘한 비호환성은 정규화된 테이블 이름과 관련이 있습니다(schema.table은 쿼리를 참조할 수 없음)7 및 쿼리 범위에서 사용되는 뷰(뷰 내부의 쿼리는 “참조”하지 않음).8 쿼리가 동일한 이름의 여러 열을 반환하거나 재귀 키워드가 지정된 경우 열 이름은 필수입니다(SQL:2016-2, §7.17, 구문 규칙 3ji). case_expression이 when_expression과 일치하지 않는 경우 CASE 식은 ELSE 절에서 result_else를 반환합니다. ELSE 절을 생략하면 CASE 식은 NULL을 반환합니다. 대부분의 데이터베이스는 뷰를 처리하는 것과 동일한 방식으로 쿼리를 처리합니다. 뷰는 일부 사용 사례를 포함할 수 있습니다. 그러나 이로 인해 보기가 불합리할 수 있습니다(“네임스페이스 오염”). 이러한 경우 하위 쿼리가 더 나은 옵션인 경우가 많습니다. 재귀와 함께 절 자체 내에서 가시성이 다릅니다: with 절에 정의된 쿼리 이름은 선언 후에만 표시됩니다. 재귀 절로 정의된 쿼리 이름은 이 절의 모든 곳에서 볼 수 있습니다.

매개 변수는 이미 쿼리 수준에서 처리되므로 CaseQuery 수준에서 특별한 지원을 추가 할 필요가 없다고 생각합니다. 와이 쿼리가 여러 번 참조되는 경우 일부 데이터베이스는 캐시(예: