SQL DDL Commands

Data Definition Language - CREATE, ALTER, DROP

CREATE TABLE

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE,
    age INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

ALTER TABLE

ALTER TABLE users ADD phone VARCHAR(20); # add column
ALTER TABLE users DROP COLUMN phone; # drop column
ALTER TABLE users MODIFY age BIGINT; # change type
ALTER TABLE users RENAME TO customers; # rename table

DROP TABLE

DROP TABLE users; # delete table
DROP TABLE IF EXISTS users; # delete if exists

TRUNCATE TABLE

TRUNCATE TABLE users; # delete all rows (fast)

Constraints

PRIMARY KEY # unique identifier
FOREIGN KEY # reference another table
UNIQUE # unique values
NOT NULL # required field
DEFAULT # default value
CHECK # validate data

CREATE INDEX

CREATE INDEX idx_email ON users(email); # create index
CREATE UNIQUE INDEX idx_username ON users(username); # unique index
DROP INDEX idx_email ON users; # drop index