SQLCollections.jl (discourse thread) is specifically designed for querying SQL databases with the exact same code one can use for regular Julian collections. Supports a large but fundamentally limited subset of SQL functionality.
Useful for code consistency in general, and for actually writing functions that can query both kinds of data interchangeably.
It is based on FunSQL.jl as a backend which is a great package! FunSQL gives you access to 100% of SQL but requires using special syntax – different from regular Julian data manipulation. Still more composable than SQL
For lightweight databases, try SQLite or DuckDB, depending on the workload. The latter is convenient for querying large CSV files without loading into memory, especially so in synergy with SQLCollections. Maybe you’ll be fine with simply querying CSV files as they are, without even loading into a database?