sintassi SQL
NCache offre una simile a SQL sintassi delle query con opzioni di ricerca estese. La nuova sintassi della query consente di recuperare proiezioni specifiche dall'archivio cache. Inoltre, ora puoi specificare *
in una proiezione, per recuperare tutti gli attributi indicizzati dalla cache, che ne descrive ulteriormente il comportamento simile a SQL.
Note:
NCache supporta anche la compatibilità con le versioni precedenti per la sintassi della query precedente.
Di seguito è indicato lo standard NCache-sintassi di query supportata, che utilizza il file GROUP BY
ed ORDER BY
clausole:
SELECT <projections> FROM <type> [WHERE <expression>] [GROUP BY <objectAttributes>] [ORDER BY <orderArguments>]
Proiezioni
Puoi specificare le colonne di tua scelta da proiettare rispetto alla tua query. Di seguito è riportato un elenco di NCache-proiezioni supportate:
*
: Restituisce tutti gli attributi indicizzati e NamedTag sotto forma di colonne separate.ColumnName
: Restituisce la colonna/le colonne specificate con gli oggetti che soddisfano i criteri di query.$VALUE$
: Restituisce l'oggetto effettivo che è stato archiviato nella cache.$GROUP$
: restituisce il ATTIVITA' E GRUPPI specificato con gli oggetti che soddisfano i criteri nella clausola WHERE.$TAG$
: restituisce il tag specificato con gli oggetti che soddisfano i criteri nella clausola WHERE.Projection functions
: Restituisce l'output delle funzioni aggregate tra cui:- SOMMA(Identificatore)
- CONTARE(*)
- MIN(Identificativo)
- MAX(Identificativo)
- MEDIA(Identificatore)
Note:
È possibile utilizzare una qualsiasi delle proiezioni sopra menzionate in combinazione tranne il *
, poiché può essere specificato solo da solo.
Digita il nome
Estendendo la nostra precedente sintassi di query simile a SQL, il file Type
l'attributo può specificare uno dei seguenti:
Fully Qualified Name(FQN)
di tipo indicizzato$DataType$
(per strutture dati)$Text$
(per tipo System.String)
Consigli
NCache richiede che tutti gli attributi ricercabili siano indicizzati prima di utilizzarli.
Sintassi
I seguenti esempi spiegano ulteriormente il NCache-sintassi delle query supportata con il presupposto che gli utenti abbiano a che fare con a Prodotto classe.
Operatori di query di base
Operatore | Descrizione | Usa (esempio) |
---|---|---|
= OR == |
Uguale a. | SELECT * From Product WHERE ProductID == 10 |
!= OR <> |
Non uguale a. | SELECT * From Product WHERE ProductID <> 8 |
< |
Meno di. | SELECT ProductName From Product WHERE Price < 87 |
> |
Più grande di. | SELECT ProductName From Product WHERE Price > 77 |
<= |
Meno di uguale a. | SELECT UnitsInStock From Product WHERE Price <= 68 |
>= |
Maggiore di uguale a. | SELECT UnitsInStock From Product WHERE Price >= 98 |
IS NULL |
Controlla se un valore lo è NULL . |
SELECT ProductName From Product WHERE Description IS NULL |
IN |
In una gamma. | SELECT * From Product WHERE Category IN ('Fruit','Vegetable') |
LIKE |
Utilizzato principalmente per la ricerca di base di caratteri jolly. | SELECT ProductID From Product WHERE ProductName LIKE ? |
Operatori di query logiche
Puoi combinare due diverse espressioni con il OR
ed AND
espressioni per restringere ulteriormente la query. Puoi anche combinare operatori come NULL
, LIKE
, IN
, ecc., con il NOT
operatore per ampliare l'ambito della ricerca. Tutti questi operatori sono spiegati di seguito con i rispettivi esempi.
Operatore | Descrizione | Usa (esempio) |
---|---|---|
AND |
Recupera il set di risultati unito per due o più condizioni. | SELECT ProductID From Product WHERE ProductName = 'Chai' AND Category='Edibles' |
OR |
Recupera il set di risultati che soddisfa una qualsiasi condizione. | SELECT ProductID From Product WHERE ProductName = 'Chai' OR Category = 'Edibles' |
NOT |
Recupera il set di risultati che non corrisponde ai criteri indicati. | SELECT ProductName From Product WHERE ProductID NOT IN (10,15,20) |
Funzioni aggregate
Puoi calcolare il SUM
, COUNT
, AVG
, MIN
, o MAX
per un set di risultati della query specificato utilizzando le seguenti funzioni.
Operatore | Descrizione | Usa (esempio) |
---|---|---|
SUM |
Calcola la somma del set di risultati per un criterio specificato. | SELECT SUM(Product.UnitsAvailable) From Product WHERE Category = ? |
COUNT |
Calcola il conteggio del set di risultati per un criterio specificato. | SELECT COUNT(*) From Product WHERE ShippingDate IS NULL |
AVG |
Calcola la media del set di risultati per i criteri specificati. | SELECT AVG(Product.Price) From Product WHERE Category = ? |
MIN |
Restituisce il minimo del set di risultati per i criteri specificati. | SELECT MIN(Product.Price) From Product WHERE Category = ? |
MAX |
Restituisce il massimo del set di risultati per i criteri specificati. | SELECT MAX(Product.Price) From Product WHERE Category = ? |
Miscellanea
Di seguito sono riportati esempi di altri operatori SQL supportati da NCache dimostrato nel contesto della Prodotto classe.
Operatore | Descrizione | Usa (esempio) |
---|---|---|
GROUP BY |
Raggruppare i dati sulla base di una funzione aggregata. | SELECT Category, Count(*) FROM Product WHERE UnitsInStock < 15 GROUP BY Category |
ORDER BY |
Ordina il set di risultati in base a criteri in ordine decrescente o crescente. | SELECT * FROM Product WHERE Category = 'Edibles' ORDER BY Price |
DateTime.Now |
Recupera il set di risultati rispetto alla data e ora corrente. | SELECT * FROM Order WHERE OrderDate < DateTime.Now |
DateTime |
Si riferisce a qualsiasi stringa compatibile con data e ora specifica e consente di recuperare il set di risultati rispetto alla data e ora specificata. | SELECT OrderID FROM Order WHERE OrderDate = DateTime('2000-1-1') |
Sequenze di fuga
Mentre scrivi le query in linea, ora puoi utilizzare '
, \n
, \b
e \t
sequenze di escape come personaggi. Gli esempi seguenti lo spiegano ulteriormente.
Sequenza di fuga | Usa (esempio) |
---|---|
' | 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' |
Con LIKE
operatori nelle query in linea, ora puoi utilizzare i caratteri jolly *
ed ?
per cercare come caratteri con la sintassi \\*
ed \\?
rispettivamente. I seguenti esempi lo spiegano in dettaglio:
Personaggi | Usa (esempio) |
---|---|
* | SELECT * from FQN.Class where IndexedAttribute LIKE 'Hello\\*World' |
? | SELECT * from FQN.Class where IndexedAttribute LIKE 'What is your name\\?' |
Vedere anche
.NETTO: Alachisoft.NCache.Servizi.clienti spazio dei nomi.
Giava: com.alachisoft.ncache.cache.di.runtime spazio dei nomi.
Node.js: Cache classe.
Pitone: ncache.servizi.clienti classe.