cheetsheetz/SQL.md

267 lines
3.4 KiB
Markdown

# Comprehensive SQL Cheat Sheet
## Table of Contents
1. [Database Basics](#database-basics)
2. [SQL Syntax](#sql-syntax)
3. [Data Types](#data-types)
4. [Table Operations](#table-operations)
5. [Querying Data](#querying-data)
6. [Filtering Data](#filtering-data)
7. [Joins](#joins)
8. [Aggregate Functions](#aggregate-functions)
9. [Group By](#group-by)
10. [Subqueries](#subqueries)
11. [Transactions](#transactions)
12. [Indexes](#indexes)
13. [Views](#views)
## Database Basics
### Creating a Database
```sql
CREATE DATABASE dbname;
```
### Using a Database
```sql
USE dbname;
```
### Deleting a Database
```sql
DROP DATABASE dbname;
```
## SQL Syntax
### SELECT Statement
```sql
SELECT column1, column2 FROM table_name;
```
### WHERE Clause
```sql
SELECT * FROM table_name WHERE condition;
```
### ORDER BY Clause
```sql
SELECT * FROM table_name ORDER BY column1 ASC, column2 DESC;
```
### LIMIT Clause
```sql
SELECT * FROM table_name LIMIT 10;
```
## Data Types
### Numeric Types
```sql
INT, FLOAT, DOUBLE, DECIMAL
```
### Character Types
```sql
CHAR, VARCHAR, TEXT
```
### Date and Time Types
```sql
DATE, TIME, DATETIME
```
## Table Operations
### Creating a Table
```sql
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);
```
### Altering a Table
```sql
ALTER TABLE table_name
ADD column_name datatype;
```
### Dropping a Table
```sql
DROP TABLE table_name;
```
## Querying Data
### Basic SELECT
```sql
SELECT * FROM table_name;
```
### Aliasing Columns
```sql
SELECT column1 AS alias1, column2 AS alias2 FROM table_name;
```
## Filtering Data
### WHERE Clause
```sql
SELECT * FROM table_name WHERE condition;
```
### AND, OR, NOT
```sql
SELECT * FROM table_name WHERE condition1 AND condition2;
```
### IN Clause
```sql
SELECT * FROM table_name WHERE column_name IN (value1, value2);
```
## Joins
### INNER JOIN
```sql
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
```
### LEFT JOIN
```sql
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
```
### RIGHT JOIN
```sql
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
```
## Aggregate Functions
### COUNT
```sql
SELECT COUNT(column) FROM table_name;
```
### SUM
```sql
SELECT SUM(column) FROM table_name;
```
### AVG
```sql
SELECT AVG(column) FROM table_name;
```
### MIN and MAX
```sql
SELECT MIN(column), MAX(column) FROM table_name;
```
## Group By
```sql
SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;
```
## Subqueries
### Single-Row Subquery
```sql
SELECT column1 FROM table_name WHERE column2 = (SELECT column2 FROM another_table WHERE condition);
```
### Multi-Row Subquery
```sql
SELECT column1 FROM table_name WHERE column2 IN (SELECT column2 FROM another_table WHERE condition);
```
## Transactions
### Begin Transaction
```sql
BEGIN;
```
### Commit Transaction
```sql
COMMIT;
```
### Rollback Transaction
```sql
ROLLBACK;
```
## Indexes
### Creating an Index
```sql
CREATE INDEX index_name ON table_name (column1, column2);
```
### Dropping an Index
```sql
DROP INDEX index_name;
```
## Views
### Creating a View
```sql
CREATE VIEW view_name AS
SELECT column1, column2 FROM table_name WHERE condition;
```
### Updating a View
```sql
CREATE OR REPLACE VIEW view_name AS
SELECT new_column1, new_column2 FROM table_name WHERE condition;
```
### Dropping a View
```sql
DROP VIEW view_name;
```