There are several different programming paradigms that exist nowadays. Some languages, such as SQL or XQuery, are declarative. They define what needs to be done without specifying how it needs to be achieved. Other languages, such as C# or Java, are imperative. This model requires specifying an exact, step-by-step control flow of the execution, defining how to achieve the results.
As an example, think about a scenario where you need to read all of the data that belongs to a specific customer. In the declarative model implemented in SQL, you would use the where clause with the predicate on the