SQL 구문
NCache ~을 제공하다 SQL과 유사 확장된 검색 옵션을 갖춘 쿼리 구문입니다. 이 쿼리 구문을 사용하면 캐시에서 특정 프로젝션을 검색할 수 있습니다. 또한 특정 옵션을 지정할 수도 있습니다. * 캐시에서 인덱싱된 모든 속성을 검색하는 프로젝션으로, SQL과 유사한 동작을 더욱 강조합니다.
주의 사항
NCache 또한 이전 쿼리 구문에 대한 이전 버전과의 호환성을 지원합니다.
다음은 표준입니다. NCache SQL과 유사한 쿼리 구문(선택적 포함) WHERE, GROUP BY예산 및 ORDER BY 조항:
SELECT <projections> FROM <type> [WHERE <expression>] [GROUP BY <objectAttributes>] [ORDER BY <orderArguments>]
지원되는 SQL 프로젝션
쿼리에서 프로젝션할 열을 지정할 수 있습니다. 아래는 해당 열 목록입니다. NCache-지원되는 투영:
*인덱싱된 모든 속성을 반환합니다. 명명된 태그 별도의 열로 표시합니다.ColumnName쿼리 조건을 만족하는 객체에 대해 지정된 열을 반환합니다.$VALUE$캐시에 저장된 실제 객체를 반환합니다.$GROUP$: 반환 그룹 WHERE 절의 조건을 만족하는 객체와 관련됩니다.$TAG$: 반환 태그 WHERE 절의 조건을 만족하는 객체와 관련됩니다.Projection functions집계 함수의 출력 결과를 반환합니다. 여기에는 다음이 포함됩니다.- SUM(식별자)
- 세다(*)
- 최소(식별자)
- MAX(식별자)
- AVG(식별자)
주의 사항
다음을 제외하고 위에서 언급한 투영을 조합하여 사용할 수 있습니다. *, 단독으로만 지정할 수 있습니다.
대상 유형 및 데이터 구조 지정
이전의 SQL과 유사한 쿼리 구문을 확장하여 Type 속성은 다음 중 하나를 지정할 수 있습니다.
Fully Qualified Name(FQN)인덱스 유형의$DataType$(데이터 구조의 경우)$Text$(System.String 형식의 경우).
중대한
NCache 검색 가능한 모든 속성이 필요합니다. 색인 사용하기 전에.
통사론
NCache SQL 구문은 잘 알려진 SQL과 유사한 구조를 사용하여 분산 캐시에서 데이터를 쿼리하는 강력하고 고성능의 메커니즘을 제공합니다. 표준 프로젝션, 논리 연산자 및 집계 함수를 지원함으로써, NCache 이 기능을 통해 애플리케이션은 기본 키뿐만 아니라 특정 속성을 기준으로 인덱싱된 캐시 객체를 필터링할 수 있으므로 네트워크 오버헤드를 줄이고 애플리케이션 확장성을 향상시킬 수 있습니다.
다음 예는 추가 설명 NCache-사용자가 다음을 처리한다는 가정하에 지원되는 쿼리 구문 프로덕트 클래스입니다.
기본 쿼리 연산자
기본 쿼리 연산자를 사용하면 데이터베이스에서 특정 데이터를 검색하기 위한 조건을 정의할 수 있습니다. 다음은 몇 가지 일반적인 쿼리 연산자와 사용 예입니다.
| 운영자 | 기술설명 | 사용(예시) |
|---|---|---|
= OR == |
같음. | SELECT * From Product WHERE ProductID == 10 |
!= OR <> |
같지 않음. | SELECT * From Product WHERE ProductID <> 8 |
< |
미만. | SELECT ProductName From Product WHERE Price < 87 |
> |
보다 큰. | SELECT ProductName From Product WHERE Price > 77 |
<= |
보다 작음. | SELECT UnitsInStock From Product WHERE Price <= 68 |
>= |
보다 큼. | SELECT UnitsInStock From Product WHERE Price >= 98 |
IS NULL |
값인지 확인 NULL. |
SELECT ProductName From Product WHERE Description IS NULL |
IN |
범위 내. | SELECT * From Product WHERE Category IN ('Fruit','Vegetable') |
LIKE |
주로 와일드카드 기반 검색에 사용됩니다. | SELECT ProductID From Product WHERE ProductName LIKE ? |
논리적 쿼리 연산자
두 개의 다른 표현을 다음과 같이 결합할 수 있습니다. OR AND 쿼리 범위를 더욱 좁힐 수 있는 표현식입니다. 다음과 같은 연산자를 결합할 수도 있습니다. NULL, LIKE, IN등, NOT 검색 범위를 넓히려면 연산자를 사용하세요. 이러한 연산자는 모두 아래에 해당 예와 함께 설명되어 있습니다.
| 운영자 | 기술설명 | 사용(예시) |
|---|---|---|
AND |
둘 이상의 조건에 대해 병합된 결과 집합을 검색합니다. | SELECT ProductID From Product WHERE ProductName = 'Chai' AND Category ='Edibles' |
OR |
하나의 조건을 충족하는 결과 집합을 검색합니다. | SELECT ProductID From Product WHERE ProductName = 'Chai' OR Category = 'Edibles' |
NOT |
주어진 기준과 일치하지 않는 결과 집합을 검색합니다. | SELECT ProductName From Product WHERE ProductID NOT IN (10,15,20) |
집계 함수
당신은 계산할 수 있습니다 SUM, COUNT, AVG, MIN및 MAX 다음 함수를 사용하여 지정된 쿼리 결과 세트에 대해
| 운영자 | 기술설명 | 사용(예시) |
|---|---|---|
SUM |
지정된 기준에 대한 결과 집합의 합계를 계산합니다. | SELECT SUM(Product.UnitsAvailable) From Product WHERE Category = ? |
COUNT |
지정된 기준에 대한 결과 집합의 수를 계산합니다. | SELECT COUNT(*) From Product WHERE ShippingDate IS NULL |
AVG |
지정된 기준에 대한 결과 집합의 평균을 계산합니다. | SELECT AVG(Product.Price) From Product WHERE Category = ? |
MIN |
지정된 기준에 대한 결과 집합의 최소값을 반환합니다. | SELECT MIN(Product.Price) From Product WHERE Category = ? |
MAX |
지정된 기준에 대한 결과 집합의 최대값을 반환합니다. | SELECT MAX(Product.Price) From Product WHERE Category = ? |
그 외
다음은 에서 지원하는 다른 SQL 연산자의 예입니다. NCache는 다음과 같은 맥락에서 입증되었습니다. 프로덕트 클래스입니다.
| 운영자 | 기술설명 | 사용(예시) |
|---|---|---|
GROUP BY |
집계 함수를 기반으로 데이터를 그룹화합니다. | SELECT Category, Count(*) FROM Product WHERE UnitsInStock < 15 GROUP BY Category |
ORDER BY |
기준에 따라 결과 집합을 내림차순 또는 오름차순으로 정렬합니다. | SELECT * FROM Product WHERE Category = 'Edibles' ORDER BY Price |
DateTime.Now |
현재 날짜 시간에 대한 결과 집합을 검색합니다. | SELECT * FROM Order WHERE OrderDate < DateTime.Now |
DateTime |
특정 날짜 시간 호환 문자열을 참조하고 지정된 날짜 시간과 관련된 결과 집합을 검색할 수 있습니다. | SELECT OrderID FROM Order WHERE OrderDate = DateTime('2000-1-15') |
이스케이프 시퀀스
인라인 쿼리를 작성하는 동안 이제 다음을 사용할 수 있습니다. ', \n, \b예산 및 \t 이스케이프 시퀀스를 문자로 사용합니다. 다음 예에서는 이에 대해 더 자세히 설명합니다.
| 탈출 시퀀스 | 사용(예시) |
|---|---|
| ' | SELECT * from FQN.Class where IndexedAttribute LIKE 'D\\'Angelo' |
| \n | SELECT * from FQN.Class where IndexedAttribute LIKE 'D\\n Angelo' |
| \b | SELECT * from FQN.Class where IndexedAttribute LIKE 'D\\b Angelo' |
| \t | SELECT * from FQN.Class where IndexedAttribute LIKE 'D\\t Angelo' |
와 LIKE 인라인 쿼리의 연산자, 이제 와일드카드를 사용할 수 있습니다 * ? 구문을 사용하여 문자로 검색하려면 \\* \\? 각각. 다음 예에서는 이를 자세히 설명합니다.
| 등장 인물 | 사용(예시) |
|---|---|
| * | SELECT * from FQN.Class where IndexedAttribute LIKE 'Hello\\*World' |
| ? | SELECT * from FQN.Class where IndexedAttribute LIKE 'What is your name\\?' |
도 참조
.그물: Alachisoft.NCache.클라이언트.서비스 네임 스페이스.
자바 : com.alachisoft.ncache.client.services 패키지.
파이썬 : ncache.클라이언트.서비스 기준 치수.
Node.js : 캐시 클래스입니다.