SQL, despite being the de facto relational database language, was not initially designed by authors as a “serious” language and suffers from complicating drawbacks. In particular, it lacks orthogonality – there are a large number of primitives that can be combined in a large number of ways, each with many exceptions; it is incompact; and it lacks consistency, especially across database variants. EdgeQL is a query language designed to tackle these shortcomings. In EdgeQL, every value is a set, and every expression is a function over sets that returns a set. Its data schema is designed to match modern data models, allowing for the extraction of arbitrary trees of data.