SQL構文
NCache 提供 SQL に似た 拡張検索オプションを備えたクエリ構文。 新しいクエリ構文を使用すると、キャッシュ ストアから特定のプロジェクションを取得できます。 また、指定できるようになりました *
プロジェクションでは、キャッシュからすべてのインデックス付き属性を取得します。これにより、SQL に似た動作がさらに説明されます。
Note
NCache また、古いクエリ構文の下位互換性もサポートしています。
以下に記載されているのは標準です NCache-サポートされているクエリ構文。 GROUP BY
および ORDER BY
条項:
SELECT <projections> FROM <type> [WHERE <expression>] [GROUP BY <objectAttributes>] [ORDER BY <orderArguments>]
プロジェクション
クエリに対して投影されるように選択した列を指定できます。 以下に挙げるのは以下のリストです NCache-サポートされている投影:
*
: インデックス付きの属性をすべて返します。 名前付きタグ 別の列の形式で。ColumnName
: クエリ基準を満たすオブジェクトで指定された列を返します。$VALUE$
: キャッシュ内に格納されている実際のオブジェクトを返します。$GROUP$
:を返します グループ WHERE 句の基準を満たすオブジェクトで指定されます。$TAG$
:を返します タグ WHERE 句の基準を満たすオブジェクトで指定されます。Projection functions
: 以下を含む集計関数の出力を返します。- SUM(識別子)
- カウント(*)
- MIN(識別子)
- MAX(識別子)
- AVG(識別子)
Note
上記の投影法のいずれかを組み合わせて使用できます。 *
, 単独でしか指定できないためです。
タイプ名
以前の SQL に似たクエリ構文を拡張すると、 Type
属性では次のいずれかを指定できます。
Fully Qualified Name(FQN)
インデックス付きタイプの$DataType$
(データ構造の場合)$Text$
(System.String型の場合)
重要
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 ? |
論理クエリ演算子
XNUMX つの異なる式を組み合わせることができます。 OR
および AND
式を使用してクエリをさらに絞り込みます。 次のような演算子を組み合わせることもできます。 NULL
, LIKE
, IN
、など NOT
演算子を使用して検索範囲を広げます。 これらの演算子はすべて、それぞれの例とともに以下で説明されます。
演算子 | 説明 | 使用(例) |
---|---|---|
AND |
XNUMXつ以上の条件のマージされた結果セットを取得します。 | SELECT ProductID From Product WHERE ProductName = 'Chai' AND Category='Edibles' |
OR |
任意のXNUMXつの条件を満たす結果セットを取得します。 | 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-1') |
エスケープシーケンス
インラインクエリの作成中に、次を使用できるようになりました。 '
, \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.クライアント.サービス 名前空間
Java: comの。alachisoft.ncache.ランタイムキャッシュ 名前空間
Node.js: キャッシュ とに提供されます。
Python: ncache.client.services とに提供されます。