SQL-Syntax
NCache bietet eine SQL-ähnlich Abfragesyntax mit erweiterten Suchoptionen. Mit der neuen Abfragesyntax können Sie bestimmte Projektionen aus dem Cache-Speicher abrufen. Außerdem können Sie jetzt angeben *
in einer Projektion, um alle indizierten Attribute aus dem Cache abzurufen, was sein SQL-ähnliches Verhalten weiter veranschaulicht.
Note
NCache Unterstützt auch die Abwärtskompatibilität für die ältere Abfragesyntax.
Unten ist der Standard aufgeführt NCache-unterstützte Abfragesyntax, die die verwendet GROUP BY
und ORDER BY
Klauseln:
SELECT <projections> FROM <type> [WHERE <expression>] [GROUP BY <objectAttributes>] [ORDER BY <orderArguments>]
Projections
Sie können die Spalten Ihrer Wahl angeben, die auf Ihre Abfrage projiziert werden sollen. Nachfolgend finden Sie eine Liste mit NCache-unterstützte Projektionen:
*
: Gibt alle indizierten Attribute zurück und Benannte Tags in Form von separaten Spalten.ColumnName
: Gibt die Spalte/Spalten zurück, die mit den Objekten angegeben sind, die die Abfragekriterien erfüllen.$VALUE$
: Gibt das tatsächliche Objekt zurück, das im Cache gespeichert wurde.$GROUP$
: Gibt die zurück Groups mit den Objekten angegeben, die die Kriterien in der WHERE-Klausel erfüllen.$TAG$
: Gibt die zurück Schlüsselwörter mit den Objekten angegeben, die die Kriterien in der WHERE-Klausel erfüllen.Projection functions
: Gibt die Ausgabe von Aggregatfunktionen zurück, einschließlich:- SUM(Bezeichner)
- COUNT (*)
- MIN(Kennung)
- MAX(Bezeichner)
- AVG (Kennung)
Note
Sie können jede der oben genannten Projektionen in Kombination verwenden, mit Ausnahme der *
, da es nur einzeln angegeben werden kann.
Modellname
Als Erweiterung unserer vorherigen SQL-ähnlichen Abfragesyntax, the Type
Das Attribut kann eine der folgenden Angaben machen:
Fully Qualified Name(FQN)
vom indizierten Typ$DataType$
(für Datenstrukturen)$Text$
(für System.String-Typ)
Wichtig
NCache erfordert, dass alle durchsuchbaren Attribute vor ihrer Verwendung indiziert werden.
Syntax
Die folgenden Beispiele erläutern dies näher NCache-unterstützte Abfragesyntax mit der Annahme, dass Benutzer es mit a zu tun haben Produkt Klasse.
Grundlegende Abfrageoperatoren
Operator | Beschreibung | Verwendung (Beispiel) |
---|---|---|
= OR == |
Ist gleich. | SELECT * From Product WHERE ProductID == 10 |
!= OR <> |
Nicht gleich. | SELECT * From Product WHERE ProductID <> 8 |
< |
Weniger als. | SELECT ProductName From Product WHERE Price < 87 |
> |
Größer als. | SELECT ProductName From Product WHERE Price > 77 |
<= |
Weniger als gleich. | SELECT UnitsInStock From Product WHERE Price <= 68 |
>= |
Größer als gleich. | SELECT UnitsInStock From Product WHERE Price >= 98 |
IS NULL |
Überprüfen Sie, ob ein Wert vorhanden ist NULL . |
SELECT ProductName From Product WHERE Description IS NULL |
IN |
In einem Bereich. | SELECT * From Product WHERE Category IN ('Fruit','Vegetable') |
LIKE |
Wird hauptsächlich für die Suche nach Wildcard-Basis verwendet. | SELECT ProductID From Product WHERE ProductName LIKE ? |
Logische Abfrageoperatoren
Sie können zwei verschiedene Ausdrücke mit dem kombinieren OR
und AND
Ausdrücke, um Ihre Abfrage weiter einzugrenzen. Sie können auch Operatoren kombinieren, z NULL
, LIKE
, IN
usw., mit dem NOT
Operator, um Ihren Suchbereich zu erweitern. Alle diese Operatoren werden im Folgenden mit ihren jeweiligen Beispielen erläutert.
Operator | Beschreibung | Verwendung (Beispiel) |
---|---|---|
AND |
Abrufen der zusammengeführten Ergebnismenge für zwei oder mehr Bedingungen. | SELECT ProductID From Product WHERE ProductName = 'Chai' AND Category='Edibles' |
OR |
Ergebnismenge abrufen, die eine beliebige Bedingung erfüllt. | SELECT ProductID From Product WHERE ProductName = 'Chai' OR Category = 'Edibles' |
NOT |
Ergebnismenge abrufen, die nicht den angegebenen Kriterien entspricht. | SELECT ProductName From Product WHERE ProductID NOT IN (10,15,20) |
Aggregierte Funktionen
Sie können die . berechnen SUM
, COUNT
, AVG
, MIN
, oder MAX
für eine angegebene Abfrageergebnismenge mithilfe der folgenden Funktionen.
Operator | Beschreibung | Verwendung (Beispiel) |
---|---|---|
SUM |
Berechnet die Summe der Ergebnismenge für ein bestimmtes Kriterium. | SELECT SUM(Product.UnitsAvailable) From Product WHERE Category = ? |
COUNT |
Berechnet die Anzahl der Ergebnismenge für ein bestimmtes Kriterium. | SELECT COUNT(*) From Product WHERE ShippingDate IS NULL |
AVG |
Berechnet den Durchschnitt der Ergebnismenge für angegebene Kriterien. | SELECT AVG(Product.Price) From Product WHERE Category = ? |
MIN |
Gibt das Minimum der Ergebnismenge für angegebene Kriterien zurück. | SELECT MIN(Product.Price) From Product WHERE Category = ? |
MAX |
Gibt das Maximum der Ergebnismenge für angegebene Kriterien zurück. | SELECT MAX(Product.Price) From Product WHERE Category = ? |
Weitere Anwendungsbereiche
Nachfolgend finden Sie Beispiele für einige andere SQL-Operatoren, die von unterstützt werden NCache im Rahmen des demonstriert Produkt Klasse.
Operator | Beschreibung | Verwendung (Beispiel) |
---|---|---|
GROUP BY |
Gruppieren Sie Daten basierend auf einer Aggregatfunktion. | SELECT Category, Count(*) FROM Product WHERE UnitsInStock < 15 GROUP BY Category |
ORDER BY |
Sortieren Sie die Ergebnismenge basierend auf Kriterien in absteigender oder aufsteigender Reihenfolge. | SELECT * FROM Product WHERE Category = 'Edibles' ORDER BY Price |
DateTime.Now |
Ergebnismenge in Bezug auf die aktuelle Datumszeit abrufen. | SELECT * FROM Order WHERE OrderDate < DateTime.Now |
DateTime |
Bezieht sich auf eine bestimmte mit Datum und Uhrzeit kompatible Zeichenfolge und ermöglicht das Abrufen des Ergebnissatzes in Bezug auf das angegebene Datum und die angegebene Uhrzeit. | SELECT OrderID FROM Order WHERE OrderDate = DateTime('2000-1-1') |
Escape-Sequenzen
Während Sie die Inline-Abfragen schreiben, können Sie sie jetzt verwenden '
, \n
, \b
und \t
Escape-Sequenzen als Zeichen. Die folgenden Beispiele erläutern dies näher.
Fluchtabfolge | Verwendung (Beispiel) |
---|---|
' | 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' |
Mit der LIKE
Operatoren in Inline-Abfragen können Sie jetzt die Platzhalter verwenden *
und ?
als Zeichen mit der Syntax suchen \\*
und \\?
jeweils. Die folgenden Beispiele erläutern dies im Detail:
Personen | Verwendung (Beispiel) |
---|---|
* | SELECT * from FQN.Class where IndexedAttribute LIKE 'Hello\\*World' |
? | SELECT * from FQN.Class where IndexedAttribute LIKE 'What is your name\\?' |
Siehe auch
.NETZ: Alachisoft.NCache.Kundenservice Namespace.
Java: com.alachisoft.ncache.runtime.caching Namespace.
Node.js: Cache-Speicher Klasse.
Python: ncache.Kundenservice Klasse.