SQL, or Structured Query Language, is the global standard language for interacting with Relational Database Management Systems (RDBMS). In the world of data, SQL is used across almost every tool to query and manage databases, whether they are cloud-based or on-premises.
While many data professionals use SQL every day, many don’t know that SQL commands are categorized into three main groups: DDL, DML, and DCL.
You may have encountered these acronyms when reading documentation or working in one of your tools and wondered what they meant. Lucky for you, you are in the right place. In this blog, I’ll break it all down for you.
(Note: The command examples listed below are not exhaustive.)

DDL - Data Definition Language
These are the commands used to define the structure of a database. Think of commands that build or modify the objects in your database, such as:
- CREATE – Creates a new database object (like a table).
- DROP – Deletes an object and its structure from the database entirely.
- ALTER – Modifies the structure of an existing database object.
DML - Data Manipulation Language
These are the commands used to manage the data within that structure. Think of commands that alter the state of the records inside your database objects, such as:
- SELECT – Retrieves data from one or more tables depending on specified criteria.
- INSERT – Adds new rows into a table.
- UPDATE – Modifies specified rows of data within an existing table.
- DELETE – Removes specified rows of data from an existing table.
DCL - Data Control Language
These are the commands used to control access and security. Think of commands that determine which users or accounts have permission to read or write to different objects, such as:
- GRANT – Gives privileges to a user or role (e.g., allowing them to select data from a specific table).
- REVOKE – Removes privileges previously given to a user or role.
