1. Data Definition Language (DDL)
* Purpose: Used to define the structure of the database, including tables, columns, data types, relationships, and constraints.
* Examples:
* SQL (Structured Query Language): The most common DDL. Commands like `CREATE TABLE`, `ALTER TABLE`, `DROP TABLE`, `CREATE INDEX` are part of SQL's DDL.
* Other DDLs: While SQL is prevalent, other database systems might have their own DDLs. For example, NoSQL databases like MongoDB use a JSON-like syntax for defining collections and documents.
2. Data Manipulation Language (DML)
* Purpose: Used to insert, update, delete, and retrieve data from the database.
* Examples:
* SQL: Commands like `INSERT INTO`, `UPDATE`, `DELETE`, `SELECT` are part of SQL's DML.
* Other DMLs: Like DDL, different database systems might have their own DMLs, often using a syntax similar to SQL.
3. Data Control Language (DCL)
* Purpose: Used to control access and permissions to the database, managing users, roles, and privileges.
* Examples:
* SQL: Commands like `GRANT`, `REVOKE`, `CREATE USER`, `DROP USER` are part of SQL's DCL.
4. Schema Definition Language (SDL)
* Purpose: Used to define the schema, the structure of a specific database or data model.
* Examples:
* XML Schema Definition (XSD): Used for defining the structure of XML documents.
* JSON Schema: Used for defining the structure of JSON documents.
* GraphQL Schema Definition Language (SDL): Used for defining the structure of GraphQL APIs.
5. Database Design Tools:
* Purpose: Used to visually design and create database models, which are often then translated into DDL.
* Examples:
* ERwin: A popular tool for designing Entity-Relationship diagrams, which can then be automatically translated into DDL.
* SQL Server Management Studio: A tool for managing SQL Server databases, including creating and editing database objects.
In Summary:
* There's no single language that does everything. You use a combination of DDL, DML, DCL, and sometimes SDL to define, manipulate, and control your database.
* SQL is the dominant language, particularly for relational databases, but other languages and tools are used for different database types and purposes.
* The choice of language or tool depends on the specific database system being used.