# Clauses

The **Cypher** language enables users to perform standard database operations by
using the following clauses:

  * [`ALTER`](https://memgraph.com/docs/querying/clauses/alter) - alter existing definitions of [enums](https://memgraph.com/docs/fundamentals/data-types#enums)
  * [`CALL`](https://memgraph.com/docs/querying/clauses/call) - calls a subquery inside the query
  * [`CASE`](https://memgraph.com/docs/querying/clauses/case) - allows the creation of conditional expressions
  * [`CREATE`](https://memgraph.com/docs/querying/clauses/create) - creates new nodes and relationships
  * [`DELETE`](https://memgraph.com/docs/querying/clauses/delete) - deletes nodes and relationships
  * [`DROP`](https://memgraph.com/docs/querying/clauses/drop) - drop all constraints, indexes, or the entire database 
  * [`EXPLAIN`](https://memgraph.com/docs/querying/clauses/explain) - inspect a particular Cypher query in order to see its execution plan.
  * [`FOREACH`](https://memgraph.com/docs/querying/clauses/foreach) - iterates over a list of elements and stores each element inside a variable
  * [`LOAD CSV`](https://memgraph.com/docs/data-migration/csv) - loads data from CSV file
  * [`MATCH`](https://memgraph.com/docs/querying/clauses/match) - searches for patterns
  * [`MERGE`](https://memgraph.com/docs/querying/clauses/merge) - creates patterns if they don't exist
  * [`OPTIONAL MATCH`](https://memgraph.com/docs/querying/clauses/optional-match) - behaves the same as [`MATCH`](https://memgraph.com/docs/querying/clauses/match), but when it fails to find the pattern it fills missing parts of the pattern with null values
  * [`PROFILE`](https://memgraph.com/docs/querying/clauses/profile) - profiles the execution of a query returns a detailed report on how the query's plan behaved
  * [`REMOVE`](https://memgraph.com/docs/querying/clauses/remove) - removes labels and properties
  * [`RETURN`](https://memgraph.com/docs/querying/clauses/return) - defines what will be presented to the user in the result set
  * [`SET`](https://memgraph.com/docs/querying/clauses/set) - adds new or updates existing labels and properties
  * [`UNION`](https://memgraph.com/docs/querying/clauses/union) and [`UNION ALL`](https://memgraph.com/docs/querying/clauses/union) - combines results from multiple queries
  * [`UNWIND`](https://memgraph.com/docs/querying/clauses/unwind) - unwinds a list of values as individual rows
  * [`WHERE`](https://memgraph.com/docs/querying/clauses/where) - filters the matched data
  * [`WITH`](https://memgraph.com/docs/querying/clauses/with) - combines multiple reads and writes
  * [`USING PERIODIC COMMIT num_rows`](https://memgraph.com/docs/querying/read-and-modify-data#periodic-commit) - batches query for periodic execution
  * [`CALL {subquery} IN TRANSACTIONS OF num_rows ROWS`](https://memgraph.com/docs/querying/read-and-modify-data#call-subqueries-in-transactions) - batches subquery for periodic execution
