  Spreadsheets are among the most commonly used applications for data
management and analysis. Perhaps they are even among the most widely used
computer applications of all kinds. They combine in a natural and intuitive way
data processing with very diverse supplementary features: statistical
functions, visualization tools, pivot tables, pivot charts, linear programming
solvers, Web queries periodically downloading data from external sources, etc.
However, the spreadsheet paradigm of computation still lacks sufficient
analysis.
  In this article we demonstrate that a spreadsheet can implement all data
transformations definable in SQL, without any use of macros or built-in
programming languages, merely by utilizing spreadsheet formulas. We provide a
query compiler, which translates any given SQL query into a worksheet of the
same semantics, including NULL values.
  Thereby database operations become available to the users who do not want to
migrate to a database. They can define their queries using a high-level
language and then get their execution plans in a plain vanilla spreadsheet. No
sophisticated database system, no spreadsheet plugins or macros are needed.
  The functions available in spreadsheets impose severe limitations on the
algorithms one can implement. In this paper we offer $O(n\log^2n)$ sorting
spreadsheet, but using a non-constant number of rows, improving on the
previously known $O(n^2)$ ones.
  It is therefore surprising, that a spreadsheet can implement, as we
demonstrate, Depth-First-Search and Breadth-First-Search on graphs, thereby
reaching beyond queries definable in SQL-92.
