So why is there no "functional" query language? Something like Haskell, but for databases. You would get the benefits of a declarative model, composeability and type-safety.
I am currently using sqlx[1] and it's great in terms of type-safety, but you can't compose queries. I don't like to use ORM's, they are usually good for simple things, but hard things are impossible and you have to use/understand SQL anyways.
[1] https://github.com/launchbadge/sqlx
and more generally
https://en.wikipedia.org/wiki/Datalog ?
(Around 2010 I was frustrated with the state of OWL/RDF/SPARQL and all that and was curious about Datalog and found it was truly obscure and hard to find good reading about, interest in Datalog has exploded since then.)
Note SQL has subqueries and in some sense is "composable", there are even some advanced features like
https://www.postgresql.org/docs/current/queries-with.html
it is ugly as hell and has problems with consistently using unique names (like the "hygenic macro" problem) but you can write crazy-complicated queries in SQL.
[1] https://en.wikipedia.org/wiki/Q_(programming_language_from_K...
Maybe you will be interested in Erlang as a functional way to manage something as mutable as network stream.
Maybe you need to learn about array programming languages (APL, J, K). They say about SQL as "to suck data throw a thin pipe" after APL experience.
Maybe you will like dealing with pure AST (I'm talking about Lisp) with no databases at all.