Skip to content

Latest commit

ย 

History

History
695 lines (463 loc) ยท 7.85 KB

File metadata and controls

695 lines (463 loc) ยท 7.85 KB

Example syntax for 100 SQL commands/functions

Examples use standard SQL where possible (some are vendor-specific and noted).


๐Ÿ”น 1. Data Query Language (DQL)

  1. SELECT
SELECT name, age FROM users;
  1. SELECT DISTINCT
SELECT DISTINCT country FROM customers;
  1. FROM
SELECT * FROM orders;
  1. WHERE
SELECT * FROM users WHERE age > 18;
  1. GROUP BY
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
  1. HAVING
SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
  1. ORDER BY
SELECT * FROM products ORDER BY price DESC;
  1. LIMIT (MySQL/PostgreSQL)
SELECT * FROM users LIMIT 10;
  1. OFFSET
SELECT * FROM users LIMIT 10 OFFSET 20;
  1. FETCH FIRST (ANSI SQL)
SELECT * FROM users FETCH FIRST 10 ROWS ONLY;

๐Ÿ”น 2. Data Manipulation Language (DML)

  1. INSERT
INSERT INTO users (name, age) VALUES ('John', 25);
  1. INSERT INTO SELECT
INSERT INTO archive_users (name, age)
SELECT name, age FROM users WHERE active = 0;
  1. UPDATE
UPDATE users SET age = 26 WHERE name = 'John';
  1. DELETE
DELETE FROM users WHERE age < 18;
  1. TRUNCATE
TRUNCATE TABLE logs;
  1. MERGE (SQL Server/Oracle)
MERGE INTO target t
USING source s
ON (t.id = s.id)
WHEN MATCHED THEN UPDATE SET t.name = s.name
WHEN NOT MATCHED THEN INSERT (id, name) VALUES (s.id, s.name);
  1. REPLACE (MySQL)
REPLACE INTO users (id, name) VALUES (1, 'Alice');
  1. UPSERT (PostgreSQL)
INSERT INTO users (id, name)
VALUES (1, 'Alice')
ON CONFLICT (id)
DO UPDATE SET name = EXCLUDED.name;
  1. CALL
CALL GetUserStats();
  1. EXPLAIN
EXPLAIN SELECT * FROM users WHERE id = 1;

๐Ÿ”น 3. Data Definition Language (DDL)

  1. CREATE DATABASE
CREATE DATABASE company_db;
  1. DROP DATABASE
DROP DATABASE company_db;
  1. ALTER DATABASE
ALTER DATABASE company_db SET READ_ONLY = 1;
  1. CREATE TABLE
CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(100),
  age INT
);
  1. DROP TABLE
DROP TABLE users;
  1. ALTER TABLE
ALTER TABLE users ADD email VARCHAR(100);
  1. RENAME TABLE (MySQL)
RENAME TABLE users TO customers;
  1. CREATE INDEX
CREATE INDEX idx_name ON users(name);
  1. DROP INDEX
DROP INDEX idx_name ON users;
  1. CREATE VIEW
CREATE VIEW active_users AS
SELECT * FROM users WHERE active = 1;
  1. DROP VIEW
DROP VIEW active_users;
  1. CREATE SEQUENCE
CREATE SEQUENCE order_seq START WITH 1 INCREMENT BY 1;
  1. DROP SEQUENCE
DROP SEQUENCE order_seq;
  1. CREATE TRIGGER
CREATE TRIGGER before_insert_users
BEFORE INSERT ON users
FOR EACH ROW
SET NEW.created_at = NOW();
  1. DROP TRIGGER
DROP TRIGGER before_insert_users;
  1. CREATE FUNCTION
CREATE FUNCTION get_age(birthdate DATE)
RETURNS INT
RETURN YEAR(CURDATE()) - YEAR(birthdate);
  1. DROP FUNCTION
DROP FUNCTION get_age;
  1. CREATE PROCEDURE
CREATE PROCEDURE GetUsers()
BEGIN
  SELECT * FROM users;
END;
  1. DROP PROCEDURE
DROP PROCEDURE GetUsers;
  1. COMMENT
COMMENT ON TABLE users IS 'Stores user information';

๐Ÿ”น 4. Constraints

  1. PRIMARY KEY
id INT PRIMARY KEY
  1. FOREIGN KEY
FOREIGN KEY (user_id) REFERENCES users(id)
  1. UNIQUE
email VARCHAR(100) UNIQUE
  1. NOT NULL
name VARCHAR(100) NOT NULL
  1. CHECK
age INT CHECK (age >= 18)
  1. DEFAULT
status VARCHAR(20) DEFAULT 'active'
  1. AUTO_INCREMENT (MySQL)
id INT AUTO_INCREMENT PRIMARY KEY
  1. IDENTITY (SQL Server)
id INT IDENTITY(1,1) PRIMARY KEY
  1. ON DELETE CASCADE
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
  1. ON UPDATE CASCADE
FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE

๐Ÿ”น 5โ€“10 (Condensed for readability)

Below are concise syntax examples.


Joins

  1. INNER JOIN
SELECT * FROM orders
INNER JOIN users ON orders.user_id = users.id;
  1. LEFT JOIN
SELECT * FROM users
LEFT JOIN orders ON users.id = orders.user_id;
  1. RIGHT JOIN
SELECT * FROM users
RIGHT JOIN orders ON users.id = orders.user_id;
  1. FULL JOIN
SELECT * FROM users
FULL JOIN orders ON users.id = orders.user_id;
  1. CROSS JOIN
SELECT * FROM users CROSS JOIN roles;

Aggregate Functions

  1. COUNT()
SELECT COUNT(*) FROM users;
  1. SUM()
SELECT SUM(price) FROM orders;
  1. AVG()
SELECT AVG(price) FROM orders;
  1. MIN()
SELECT MIN(price) FROM products;
  1. MAX()
SELECT MAX(price) FROM products;

String Functions

  1. CONCAT()
SELECT CONCAT(first_name, ' ', last_name) FROM users;
  1. SUBSTRING()
SELECT SUBSTRING(name, 1, 3) FROM users;
  1. UPPER()
SELECT UPPER(name) FROM users;
  1. LOWER()
SELECT LOWER(name) FROM users;
  1. TRIM()
SELECT TRIM(name) FROM users;

Date Functions

  1. NOW()
SELECT NOW();
  1. CURRENT_DATE
SELECT CURRENT_DATE;
  1. DATE_ADD()
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);
  1. DATEDIFF()
SELECT DATEDIFF('2025-12-31', '2025-01-01');
  1. EXTRACT()
SELECT EXTRACT(YEAR FROM NOW());

Transactions

  1. BEGIN TRANSACTION
BEGIN TRANSACTION;
  1. COMMIT
COMMIT;
  1. ROLLBACK
ROLLBACK;
  1. SAVEPOINT
SAVEPOINT before_update;
  1. SET TRANSACTION
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

Security

  1. GRANT
GRANT SELECT ON users TO user1;
  1. REVOKE
REVOKE SELECT ON users FROM user1;
  1. CREATE USER
CREATE USER user1 IDENTIFIED BY 'password';
  1. DROP USER
DROP USER user1;
  1. ALTER USER
ALTER USER user1 IDENTIFIED BY 'newpassword';

๐Ÿ”น Additional Date & Time Functions (continued)

  1. CURRENT_TIME
SELECT CURRENT_TIME;
  1. YEAR()
SELECT YEAR(order_date) FROM orders;
  1. MONTH()
SELECT MONTH(order_date) FROM orders;
  1. DAY()
SELECT DAY(order_date) FROM orders;
  1. DATE_SUB()
SELECT DATE_SUB(NOW(), INTERVAL 30 DAY);
  1. TIME()
SELECT TIME(NOW());
  1. HOUR()
SELECT HOUR(order_time) FROM orders;
  1. MINUTE()
SELECT MINUTE(order_time) FROM orders;
  1. SECOND()
SELECT SECOND(order_time) FROM orders;
  1. CURRENT_TIMESTAMP
SELECT CURRENT_TIMESTAMP;

๐Ÿ”น Additional Transaction & Control Statements

  1. SET AUTOCOMMIT (MySQL)
SET AUTOCOMMIT = 0;
  1. LOCK TABLE
LOCK TABLE users WRITE;
  1. UNLOCK TABLES
UNLOCK TABLES;
  1. SET CONSTRAINTS (PostgreSQL)
SET CONSTRAINTS ALL DEFERRED;
  1. ROLLBACK TO SAVEPOINT
ROLLBACK TO SAVEPOINT before_update;

๐Ÿ”น Additional Administrative / Utility Commands

  1. SHOW TABLES (MySQL)
SHOW TABLES;
  1. SHOW DATABASES (MySQL)
SHOW DATABASES;
  1. DESCRIBE (MySQL)
DESCRIBE users;
  1. ANALYZE TABLE
ANALYZE TABLE users;
  1. VACUUM (PostgreSQL)
VACUUM;

โš ๏ธ Note: Some commands vary slightly between MySQL, PostgreSQL, SQL Server, and Oracle.