A query language allows users to request information from a database. Query languages are higher-level than programming languages. Relational algebra is a procedural query language that uses operations like select, project, union, set difference, Cartesian product, and rename on relations. Select chooses tuples matching a predicate. Project removes attributes, listing those remaining. Union combines compatible relations. Set difference finds tuples in one relation not in another. Cartesian product combines information from any two relations. Rename renames a relation.