---
title: MySQL
-updated: 2018-12-25
+updated: 2020-07-05
layout: 2017/sheet
category: Databases
---
-### Create / Delete Database
-
-```sql
-CREATE DATABASE dbNameYouWant
-CREATE DATABASE dbNameYouWant CHARACTER SET utf8
-DROP DATABASE dbNameYouWant
-ALTER DATABASE dbNameYouWant CHARACTER SET utf8
-```
-
-### Backup Database to SQL File
-
-```bash
-mysqldump -u Username -p dbNameYouWant > databasename_backup.sql
-```
-
-### Restore from backup SQL File
-
-```bash
-mysql - u Username -p dbNameYouWant < databasename_backup.sql
-```
-
-### Repair Tables After Unclean Shutdown
-
-```bash
-mysqlcheck --all-databases
-mysqlcheck --all-databases --fast
-```
-
### Browsing
```sql
-SHOW DATABASES
-SHOW TABLES
-SHOW FIELDS FROM table / DESCRIBE table
-SHOW CREATE TABLE table
-SHOW PROCESSLIST
-KILL process_number
+SHOW DATABASES;
+SHOW TABLES;
+SHOW FIELDS FROM table / DESCRIBE table;
+SHOW CREATE TABLE table;
+SHOW PROCESSLIST;
+KILL process_number;
```
### Select
```sql
-SELECT * FROM table
-SELECT * FROM table1, table2, ...
-SELECT field1, field2, ... FROM table1, table2, ...
+SELECT * FROM table;
+SELECT * FROM table1, table2;
+SELECT field1, field2 FROM table1, table2;
SELECT ... FROM ... WHERE condition
-SELECT ... FROM ... WHERE condition GROUPBY field
-SELECT ... FROM ... WHERE condition GROUPBY field HAVING condition2
-SELECT ... FROM ... WHERE condition ORDER BY field1, field2
-SELECT ... FROM ... WHERE condition ORDER BY field1, field2 DESC
-SELECT ... FROM ... WHERE condition LIMIT 10
+SELECT ... FROM ... WHERE condition GROUPBY field;
+SELECT ... FROM ... WHERE condition GROUPBY field HAVING condition2;
+SELECT ... FROM ... WHERE condition ORDER BY field1, field2;
+SELECT ... FROM ... WHERE condition ORDER BY field1, field2 DESC;
+SELECT ... FROM ... WHERE condition LIMIT 10;
SELECT DISTINCT field1 FROM ...
SELECT DISTINCT field1, field2 FROM ...
```
### Select - Join
```sql
-SELECT ... FROM t1 JOIN t2 ON t1.id1 = t2.id2 WHERE condition
-SELECT ... FROM t1 LEFT JOIN t2 ON t1.id1 = t2.id2 WHERE condition
+SELECT ... FROM t1 JOIN t2 ON t1.id1 = t2.id2 WHERE condition;
+SELECT ... FROM t1 LEFT JOIN t2 ON t1.id1 = t2.id2 WHERE condition;
SELECT ... FROM t1 JOIN (t2 JOIN t3 ON ...) ON ...
```
condition1 OR condition2
```
+### Create / Open / Delete Database
+
+```sql
+CREATE DATABASE DatabaseName;
+CREATE DATABASE DatabaseName CHARACTER SET utf8;
+USE DatabaseName;
+DROP DATABASE DatabaseName;
+ALTER DATABASE DatabaseName CHARACTER SET utf8;
+```
+
+### Backup Database to SQL File
+
+```bash
+mysqldump -u Username -p dbNameYouWant > databasename_backup.sql
+```
+
+### Restore from backup SQL File
+
+```bash
+mysql - u Username -p dbNameYouWant < databasename_backup.sql;
+```
+
+### Repair Tables After Unclean Shutdown
+
+```bash
+mysqlcheck --all-databases;
+mysqlcheck --all-databases --fast;
+```
+
### Insert
```sql
-INSERT INTO table1 (field1, field2, ...) VALUES (value1, value2, ...)
+INSERT INTO table1 (field1, field2) VALUES (value1, value2);
```
### Delete
### Update
```sql
-UPDATE table1 SET field1=new_value1 WHERE condition
+UPDATE table1 SET field1=new_value1 WHERE condition;
UPDATE table1, table2 SET field1=new_value1, field2=new_value2, ... WHERE
- table1.id1 = table2.id2 AND condition
+ table1.id1 = table2.id2 AND condition;
```
### Create / Delete / Modify Table
#### Create
```sql
-CREATE TABLE table (field1 type1, field2 type2, ...)
-CREATE TABLE table (field1 type1, field2 type2, ..., INDEX (field))
-CREATE TABLE table (field1 type1, field2 type2, ..., PRIMARY KEY (field1))
-CREATE TABLE table (field1 type1, field2 type2, ..., PRIMARY KEY (field1,
-field2))
+CREATE TABLE table (field1 type1, field2 type2);
+CREATE TABLE table (field1 type1, field2 type2, INDEX (field));
+CREATE TABLE table (field1 type1, field2 type2, PRIMARY KEY (field1));
+CREATE TABLE table (field1 type1, field2 type2, PRIMARY KEY (field1,field2));
```
```sql
```
```sql
-CREATE TABLE table IF NOT EXISTS (...)
+CREATE TABLE table IF NOT EXISTS;
```
```sql
-CREATE TEMPORARY TABLE table (...)
+CREATE TEMPORARY TABLE table;
```
#### Drop
```sql
-DROP TABLE table
-DROP TABLE IF EXISTS table
+DROP TABLE table;
+DROP TABLE IF EXISTS table;
DROP TABLE table1, table2, ...
```
### Users and Privileges
```sql
+CREATE USER 'user'@'localhost';
GRANT ALL PRIVILEGES ON base.* TO 'user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, DELETE ON base.* TO 'user'@'localhost' IDENTIFIED BY 'password';
REVOKE ALL PRIVILEGES ON base.* FROM 'user'@'host'; -- one permission only
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'host'; -- all permissions
+FLUSH PRIVILEGES;
```
```sql
-SET PASSWORD = PASSWORD('new_pass')
-SET PASSWORD FOR 'user'@'host' = PASSWORD('new_pass')
-SET PASSWORD = OLD_PASSWORD('new_pass')
+SET PASSWORD = PASSWORD('new_pass');
+SET PASSWORD FOR 'user'@'host' = PASSWORD('new_pass');
+SET PASSWORD = OLD_PASSWORD('new_pass');
```
```sql
-DROP USER 'user'@'host'
+DROP USER 'user'@'host';
```
Host ‘%’ indicates any host.