컴퓨터파일 형식

별개의 SQL : 설명, 예, 속성

당신은 테이블에서 데이터를 검색하는 SQL을 사용할 때 종종 사용자는 중복 데이터가 절대적으로 동일한 중복 행의 존재이다받습니다. 이러한 상황을 방지하기 위해, 문장 선택에 SQL 별개의 인수를 사용합니다. 이 문서에서는 응용 프로그램이 인수 포기해야하는이 인수의 사용의 예뿐만 아니라 상황에 대해 설명합니다.

우리는 구체적인 예를 고려해 진행하기 전에 테이블의 몇 필요한 데이터베이스를 만듭니다.

준비 테이블

우리가 두 개의 테이블에서 제시 한 벽지에 대한 데이터베이스 정보를 저장 있다고 상상해보십시오. 컬러 (색상), 구조체 (구조) 및 가격 (가격) - 타입 (. 종이, 비닐 등의 벽지 형)의 필드 ID (고유 ID)와,이 테이블 OBOI (배경 화면). 표 Ostatki id_oboi 필드가 (잔류 물) 및 횟수 (입하 롤의 수) (표 OBOI의 고유 식별자에 대한 참조).

데이터 테이블을 채 웁니다. 표에서 벽지 (9 개) 레코드를 추가 :

OBOI

신분증

유형

구조체

가격

(1)

종이

여러 가지 빛깔의

양각

56.9

논문은 이중 계층

베이지 색의

부드러운

114.8

3

비닐

오렌지

양각

(504)

4

양털

베이지 색의

양각

1020.9

5

논문은 이중 계층

베이지 색의

부드러운

150.6

6

종이

여러 가지 빛깔의

부드러운

95.4

(7)

비닐

갈색

부드러운

(372)

8

양털

화이트

양각

980.1

9

분홍색

부드러운

1166.5

유해와 테이블 - 아홉 개 기록 :

Ostatki

id_oboi

계산

(1)

8

(12)

3

(24)

4

9

5

(16)

6

(7)

(7)

(24)

8

(32)

9

(11)

우리는 SQL에서 서로 다른 순서의 설명을 진행합니다.

SELECT 절에 별개의 장소

별개의 인수는 쿼리의 선택 키워드 바로 뒤에 배치해야합니다. 그것은 절대적으로 동일한 문자열입니다 최종 쿼리 결과에서 제외되기 때문에 그는 문장 선택에 지정된 모든 컬럼에 적용 하였다. 따라서, 한 번 SQL 작성시 요청«별개의 선택»의 지정 충분하다. 예외는 잠시 후에 살펴 별개의 내부 집계 함수를 사용하는 것입니다.

그것은 대부분의 데이터베이스 것을 기억해야한다 요청 당신의 유형을 인식하지 않습니다

별개의 Ostatki.Count, 별개의 OBOI을 선택합니다. *

OBOI FROM

INNER는 Oboi.id = Ostatki.id_oboi ON Ostatki 가입

이 인수를 여러 번 생각이나 한 번 지정되었지만되지 않은 세 번째 두 번째, 또는 다른 선택한 열 전. 당신은 구문 오류를 참조 오류가 발생합니다.

표준 응용 프로그램 별개의 쿼리

절대적으로 동일한 문자열이있을 때 하나의 테이블 내에서 충전 적절한 건물 구조 테이블과 상황을 제외 분명하다. 따라서, 쿼리 실행 한 테이블의 샘플«별개의 *의 선택»하는 것은 비현실적이다.

우리는 유형에 따라 정렬, 단지 편의를 위해, 우리는 배경 화면이 어떤 종류의 알 필요가있을 때 상황을 고려 :

SELECT Oboi.type

유형별 OBOI 순서 FROM

그리고 결과를 얻을 수 :

유형

종이

종이

논문은 이중 계층

논문은 이중 계층

비닐

비닐

양털

양털

표에서 보는 바와 같이 중복 행이 있습니다. 우리가 제안을 추가하는 경우 별개의 선택 :

별개의 Oboi.type를 선택

유형별 OBOI 순서 FROM

우리는 반복하지 않고 결과를 얻을 :

유형

종이

논문은 이중 계층

비닐

양털

제대로 테이블에 데이터를 입력하는 경우 따라서, 즉시 구매자의 전화 통화 또는 요청 후 우리는 상점에서 사용할 수있는 액체 벽지, 유리 섬유와 아크릴 벽지가 아니라는 것을 응답 할 수 있습니다. 상점의 범위는 일반적으로 백 개 벽지에 한정되지 않음을 감안할 때, 매우 노동 집약적이 될 것입니다 고유하지 않은 유형의 목록을 볼 수 있습니다.

내 별개의 집계 함수의 응용 프로그램

SQL 별개의 인수는 어떤 집계 함수와 함께 사용할 수 있습니다. 그러나 최소 및 최대의 응용 프로그램에 영향을 미치지 만, 합계 또는 평균 값을 계산할 때하는 것은 거의 아무도 계정에 반복을 할 필요가 없을 것입니다 상황입니다하지 않습니다.

우리는 우리의 창고의 용량을 확인하고이 요청을 보낼 가정, 재고 코일의 총 수를 계산합니다 :

SELECT SUM (Ostatki.count)

Ostatki FROM

요청 (143)의 경우는, 그러나, 우리가 변경됩니다 대답을 줄 것이다 :

SELECT SUM (구별 Ostatki.count)

Ostatki FROM

우리는 부품 번호 3 배경 화면으로, 총 119 획득하고 7은 같은 양의 주식에 있습니다. 그러나, 대답이 잘못된 것은 분명하다.

대부분의 경우 SQL의 개별 기능의 개수에 사용됩니다. 그래서, 우리는 쉽게 벽지 얼마나 많은 독특한 유형을 찾을 수 있습니다, 우리가해야합니까 :

SELECT COUNT (별개의 Oboi.type)

OBOI FROM

그리고 5의 결과를 얻을 - 일반 종이와 더블 레이어 비닐 및 부직포. 분명히 모두가 같은 광고를 볼 수 :하는이 가게는 단지 몇 다스 롤 벽지 현대 종류의 다양한입니다 것을 의미한다 "오직 우리가, 벽지의 20여 가지 종류가 있습니다."

이 같은 쿼리에서, 당신은 카운트가 DISTINCT 속성과 같은 여러 기능을 지정하고, 그것없이 할 수있는 흥미로운 일이다. 즉 Select'e에서 별개의 존재를 여러 번 할 수있는 유일한 상황이다.

때 인수의 사용을 포기

SQL의 개별 인수의 사용에서 두 사례 중 하나를 포기해야한다 :

  1. 당신은 테이블의 선택을 수행하고 고유 한 값으로 각 확신합니다. 이 서버 또는 클라이언트 (DBMS의 종류에 따라)에 추가적인 부하이기 때문에이 경우에, 인자의 사용이 적절하다.
  2. 당신은 당신의 데이터 손실을 두려워하고 있습니다. 우리가 설명해 보자.

종류 및 색상 - 가정하자 상사는 당신이 두 컬럼의 표시와 당신이 배경 화면을 나열하도록 요청합니다. 습관 중, 당신은 별개의 인수를 줄 :

, Oboi.color을 별개의 Oboi.type을 선택

OBOI FROM

ORDER BY Oboi.type

그리고 - 일부 데이터가 손실 :

유형

종이

여러 가지 빛깔의

논문은 이중 계층

베이지 색의

비닐

갈색

비닐

오렌지

분홍색

양털

베이지 색의

양털

화이트

이 용지 (기존 및 듀얼 레이어) 벽지 우리는 사실도이 개 문서의 우리의 작은 테이블에 단 하나의 마음 (구별하지 않고 결과) 한 인상을 줄 수 있습니다 :

유형

종이

여러 가지 빛깔의

종이

여러 가지 빛깔의

논문은 이중 계층

베이지 색의

논문은 이중 계층

베이지 색의

비닐

갈색

비닐

오렌지

분홍색

양털

화이트

양털

베이지 색의

따라서 작업에 따라, 그 적용을 결정주의와 능력이 될 수있는 인수 별개의 필요성과 어떤 요청을 서면으로.

뚜렷한 대안

모든 인수 - 별개의 인수에 반대. 자사의 응용 프로그램에서 중복 행이 저장됩니다. 그러나 기본 데이터베이스로 모든 값, 인수를 모두 표시 할 필요가 있음을 발견 - 오히려 실제 함수 인수보다 규정 자입니다. 우리는 이제 별개의 (SQL)를 사용하는 것을 이해 바랍니다. 설명은 당신에게 다른 문제를 해결에서이 인수를 사용의 타당성에 대한 전체 정보를 제공합니다. 알고 보니 모든 후, 그것의 응용 프로그램에서 심지어 간단한 인수는 부정확 한 정보를 일부 데이터 손실 및 표시의 매우 실질적인 가능성을 숨 깁니다.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ko.birmiss.com. Theme powered by WordPress.