• Products
  • Solutions
  • Customers
  • Resources
  • Company
  • Pricing
  • Download
Try Playground
Show / Hide Table of Contents

SQL Syntax

NCache offers an SQL-like query syntax with extended searching options. The new query syntax allows you to retrieve specific projections from the cache-store. Also, you can now specify * in a projection, to retrieve all of the indexed attributes from the cache, which further depicts its SQL-like behavior.

Note

NCache also supports backward compatibility for the older query syntax.

Mentioned below is the standard NCache-supported query syntax, which uses the GROUP BY and ORDER BY clauses:

SELECT <projections> FROM <type> [WHERE <expression>] [GROUP BY <objectAttributes>] [ORDER BY <orderArguments>]

Projections

You can specify columns of your choice to be projected against your query. Mentioned below is a list of NCache-supported projections:

  • *: Returns all of the indexed attributes and NamedTags in the form of separate columns.
  • ColumnName: Returns the column/columns specified with the objects satisfying the query criteria.
  • $VALUE$: Returns the actual object that has been stored inside the cache.
  • $GROUP$: Returns the Groups specified with the objects satisfying the criteria in the WHERE clause.
  • $TAG$: Returns the Tags specified with the objects satisfying the criteria in the WHERE clause.
  • Projection functions: Returns the output of Aggregate Functions including:
    • SUM(Identifier)
    • COUNT(*)
    • MIN(Identifier)
    • MAX(Identifier)
    • AVG(Identifier)
Note

You can use any of the above-mentioned projections in combination except the *, as it can only be specified alone.

Type Name

Extending our previous SQL-like query syntax, the Type attribute can specify one of the following:

  • Fully Qualified Name(FQN) of the indexed type
  • $DataType$ (for data structures)
  • $Text$ (for System.String type)
Important

NCache requires all searchable attributes to be indexed before using them.

Syntax

The following examples further explain the NCache-supported query syntax with the assumption that users are dealing with a Product class.

Basic Query Operators

Basic query operators allow you to define conditions for retrieving specific data from a database. Below are some common query operators and their usage examples:

Operator Description Use (Example)
= OR == Equals to. SELECT * From Product WHERE ProductID == 10
!= OR <> Not equals to. SELECT * From Product WHERE ProductID <> 8
< Less than. SELECT ProductName From Product WHERE Price < 87
> Greater than. SELECT ProductName From Product WHERE Price > 77
<= Less than equal to. SELECT UnitsInStock From Product WHERE Price <= 68
>= Greater than equal to. SELECT UnitsInStock From Product WHERE Price >= 98
IS NULL Check if a value is NULL. SELECT ProductName From Product WHERE Description IS NULL
IN In a range. SELECT * From Product WHERE Category IN ('Fruit','Vegetable')
LIKE Mostly used for wild card based searching. SELECT ProductID From Product WHERE ProductName LIKE ?

Logical Query Operators

You can combine two different expressions with the OR and AND expressions to further narrow down your query. You can also combine operators such as NULL, LIKE, IN, etc., with the NOT operator to broaden your search scope. All of these operators are explained below with their respective examples.

Operator Description Use (Example)
AND Retrieve merged result set for two or more conditions. SELECT ProductID From Product WHERE ProductName = 'Chai' AND Category='Edibles'
OR Retrieve result set which fulfills any one condition. SELECT ProductID From Product WHERE ProductName = 'Chai' OR Category = 'Edibles'
NOT Retrieve result set which doesn't match the given criteria. SELECT ProductName From Product WHERE ProductID NOT IN (10,15,20)

Aggregate Functions

You can calculate the SUM, COUNT, AVG, MIN, or MAX for a specified query result set using the following functions.

Operator Description Use (Example)
SUM Calculates sum of the result set for a specified criteria. SELECT SUM(Product.UnitsAvailable) From Product WHERE Category = ?
COUNT Calculates count of the result set for a specified criteria. SELECT COUNT(*) From Product WHERE ShippingDate IS NULL
AVG Calculates average of the result set for a specified criteria. SELECT AVG(Product.Price) From Product WHERE Category = ?
MIN Returns minimum of the result set for a specified criteria. SELECT MIN(Product.Price) From Product WHERE Category = ?
MAX Returns maximum of the result set for a specified criteria. SELECT MAX(Product.Price) From Product WHERE Category = ?

Miscellaneous

Below are examples of some other SQL operators supported by NCache demonstrated within the context of the Product class.

Operator Description Use (Example)
GROUP BY Group data based on an aggregate function. SELECT Category, Count(*) FROM Product WHERE UnitsInStock < 15 GROUP BY Category
ORDER BY Sort the result set based on criteria in descending or ascending order. SELECT * FROM Product WHERE Category = 'Edibles' ORDER BY Price
DateTime.Now Retrieve result set with respect to current date time. SELECT * FROM Order WHERE OrderDate < DateTime.Now
DateTime Refers to any specific date time compatible string and lets you retrieve result set with respect to specified date time. SELECT OrderID FROM Order WHERE OrderDate = DateTime('2000-1-1')

Escape Sequences

While writing the inline queries, you can now use ', \n, \b, and \t escape sequences as characters. The following examples explain this further.

Escape Sequence Use (Example)
' 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'

With LIKE operators in inline queries, you can now use the wildcards * and ? to search as characters with the syntax \\* and \\? respectively. The following examples explain this in detail.

Characters Use (Example)
* SELECT * from FQN.Class where IndexedAttribute LIKE 'Hello\\*World'
? SELECT * from FQN.Class where IndexedAttribute LIKE 'What is your name\\?'

See Also

.NET: Alachisoft.NCache.Client.Services namespace.
Java: com.alachisoft.ncache.runtime.caching namespace.
Python: ncache.client.services class.
Node.js: Cache class.

In This Article
  • Projections
  • Type Name
  • Syntax
    • Basic Query Operators
    • Logical Query Operators
    • Aggregate Functions
    • Miscellaneous
    • Escape Sequences
  • See Also

Contact Us

PHONE

+1 (214) 764-6933   (US)

+44 20 7993 8327   (UK)

 
EMAIL

sales@alachisoft.com

support@alachisoft.com

NCache
  • NCache Enterprise
  • NCache Professional
  • Edition Comparison
  • NCache Architecture
  • Benchmarks
Download
Pricing
Try Playground

Deployments
  • Cloud (SaaS & Software)
  • On-Premises
  • Kubernetes
  • Docker
Technical Use Cases
  • ASP.NET Sessions
  • ASP.NET Core Sessions
  • Pub/Sub Messaging
  • Real-Time ASP.NET SignalR
  • Internet of Things (IoT)
  • NoSQL Database
  • Stream Processing
  • Microservices
Resources
  • Magazine Articles
  • Third-Party Articles
  • Articles
  • Videos
  • Whitepapers
  • Shows
  • Talks
  • Blogs
  • Docs
Customer Case Studies
  • Testimonials
  • Customers
Support
  • Schedule a Demo
  • Forum (Google Groups)
  • Tips
Company
  • Leadership
  • Partners
  • News
  • Events
  • Careers
Contact Us

  • EnglishChinese (Simplified)FrenchGermanItalianJapaneseKoreanPortugueseSpanish

  • Contact Us
  •  
  • Sitemap
  •  
  • Terms of Use
  •  
  • Privacy Policy
© Copyright Alachisoft 2002 - 2025. All rights reserved. NCache is a registered trademark of Diyatech Corp.
Back to top