Querying Data
Velocity provides a comprehensive, fluent API for querying databases across all supported platforms. This section covers everything from basic queries to advanced patterns like joins and subqueries.
Learning Path
The querying documentation is organized from basic to advanced:
Foundation
- Retrieve vs Search - Choose the right query execution method
- Basic Queries - SELECT, FROM, column selection, and aliases
Filtering and Sorting
- Filtering - WHERE clauses, operators, and complex conditions
- Sorting - ORDER BY single and multiple columns
Advanced Features
- Expressions - Calculated fields, arithmetic, and string operations
- Grouping and Aggregation - GROUP BY, aggregate functions, and HAVING
- Joins - INNER, LEFT, RIGHT, FULL OUTER, CROSS, and multi-table joins
- Subqueries - Subqueries in SELECT, FROM, WHERE, GROUP BY, HAVING, INSERT, and UPDATE
Data Binding
- Binding Results - Map query results to C# objects
Optimization
- Performance - Query optimization and best practices
Full-Text Search
- Full-Text Searching - Using Full-Text Search and ranking
Quick Start
Here's a complete example using the fluent API:
using YndigoBlue.Velocity;
using YndigoBlue.Velocity.Model;
using YndigoBlue.Velocity.Enums;
// Get database schema and table
Schema schema = manager.LoadSchema("your_database");
Table users = schema["users"];
// Build query using fluent syntax
Query query = new Query()
.Select([users["user_id"], users["username"], users["email"]])
.From(users)
.Where(new Criterion<bool>(users["is_active"], true))
.OrderBy(users["username"]);
// Execute and process results
using (Manager manager = new Manager(connection))
using (ResultSet results = manager.Retrieve(query))
{
foreach (Result row in results)
{
int id = row.GetFieldInteger("user_id");
string username = row.GetFieldString("username");
string email = row.GetFieldString("email");
Console.WriteLine($"{id}: {username} ({email})");
}
}
See Also
- Data Manipulation (DML) - INSERT, UPDATE, DELETE operations
- Schema Management - Creating and managing database schemas
- Connections - Connecting to databases