0% found this document useful (0 votes)
3 views1 page

MySQL Cheatsheet

This document is a MySQL cheatsheet that provides a comprehensive collection of commands and syntax for various operations including browsing databases, selecting data, creating and modifying tables, and managing users and privileges. It covers essential SQL commands such as SELECT, INSERT, UPDATE, DELETE, and more, along with data types and backup/restore procedures. Additionally, it includes tips for resetting the root password and repairing tables after an unclean shutdown.

Uploaded by

fortunejite1234
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views1 page

MySQL Cheatsheet

This document is a MySQL cheatsheet that provides a comprehensive collection of commands and syntax for various operations including browsing databases, selecting data, creating and modifying tables, and managing users and privileges. It covers essential SQL commands such as SELECT, INSERT, UPDATE, DELETE, and more, along with data types and backup/restore procedures. Additionally, it includes tips for resetting the root password and repairing tables after an unclean shutdown.

Uploaded by

fortunejite1234
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Edit

MySQL
cheatsheet
Design and Development tips in
your inbox. Every weekday.

ads via Carbon

Browsing

SHOW DATABASES;
SHOW TABLES;
SHOW FIELDS FROM table / DESCRIBE table;
SHOW CREATE TABLE table;
SHOW PROCESSLIST;
KILL process_number;

Select

SELECT * FROM table;


SELECT * FROM table1, table2;
SELECT field1, field2 FROM table1, table2;
SELECT ... FROM ... WHERE condition
SELECT ... FROM ... WHERE condition GROUP BY field
SELECT ... FROM ... WHERE condition GROUP BY field
SELECT ... FROM ... WHERE condition ORDER BY field
SELECT ... FROM ... WHERE condition ORDER BY field
SELECT ... FROM ... WHERE condition LIMIT 10;
SELECT DISTINCT field1 FROM ...
SELECT DISTINCT field1, field2 FROM ...

Select - Join

SELECT ... FROM t1 JOIN t2 ON t1.id1 = t2.id2 WHER


SELECT ... FROM t1 LEFT JOIN t2 ON t1.id1 = t2.id2
SELECT ... FROM t1 JOIN (t2 JOIN t3 ON ...) ON ...

Conditions

field1 = value1
field1 <> value1
field1 LIKE 'value _ %'
field1 IS NULL
field1 IS NOT NULL
field1 IS IN (value1, value2)
field1 IS NOT IN (value1, value2)
condition1 AND condition2
condition1 OR condition2

Create / Open / Delete Database

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

mysqldump -u Username -p dbNameYouWant > databasen

Restore from backup SQL File

mysql -u Username -p dbNameYouWant < databasename_

Repair Tables After Unclean Shutdown

mysqlcheck --all-databases;
mysqlcheck --all-databases --fast;

Insert

INSERT INTO table1 (field1, field2) VALUES (value1

Delete

DELETE FROM table1 / TRUNCATE table1


DELETE FROM table1 WHERE condition
DELETE FROM table1, table2 WHERE table1.id1 =
table2.id2 AND condition

Update

UPDATE table1 SET field1=new_value1 WHERE conditio


UPDATE table1, table2 SET field1=new_value1, field
table1.id1 = table2.id2 AND condition;

Create / Delete / Modify Table

Create

CREATE TABLE table (field1 type1, field2 type2);


CREATE TABLE table (field1 type1, field2 type2, IN
CREATE TABLE table (field1 type1, field2 type2, PR
CREATE TABLE table (field1 type1, field2 type2, PR

CREATE TABLE table1 (fk_field1 type1, field2 type2


FOREIGN KEY (fk_field1) REFERENCES table2 (t2_fi
[ON UPDATE|ON DELETE] [CASCADE|SET NULL]

CREATE TABLE table1 (fk_field1 type1, fk_field2 ty


FOREIGN KEY (fk_field1, fk_field2) REFERENCES tab

CREATE TABLE table IF NOT EXISTS;

CREATE TEMPORARY TABLE table;

Drop

DROP TABLE table;


DROP TABLE IF EXISTS table;
DROP TABLE table1, table2, ...

Alter

ALTER TABLE table MODIFY field1 type1


ALTER TABLE table MODIFY field1 type1 NOT NULL ...
ALTER TABLE table CHANGE old_name_field1 new_name_
ALTER TABLE table CHANGE old_name_field1 new_name_
ALTER TABLE table ALTER field1 SET DEFAULT ...
ALTER TABLE table ALTER field1 DROP DEFAULT
ALTER TABLE table ADD new_name_field1 type1
ALTER TABLE table ADD new_name_field1 type1 FIRST
ALTER TABLE table ADD new_name_field1 type1 AFTER
ALTER TABLE table DROP field1
ALTER TABLE table ADD INDEX (field);

Change field order

ALTER TABLE table MODIFY field1 type1 FIRST


ALTER TABLE table MODIFY field1 type1 AFTER anothe
ALTER TABLE table CHANGE old_name_field1 new_name_
ALTER TABLE table CHANGE old_name_field1 new_name_
another_field

Keys

CREATE TABLE table (..., PRIMARY KEY (field1, fiel


CREATE TABLE table (..., FOREIGN KEY (field1, fiel
(t2_field1, t2_field2))

Users and Privileges

CREATE USER 'user'@'localhost';


GRANT ALL PRIVILEGES ON base.* TO 'user'@'localhos
GRANT SELECT, INSERT, DELETE ON base.* TO 'user'@'
REVOKE ALL PRIVILEGES ON base.* FROM 'user'@'host'
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'h
FLUSH PRIVILEGES;

SET PASSWORD = PASSWORD('new_pass');


SET PASSWORD FOR 'user'@'host' = PASSWORD('new_pas
SET PASSWORD = OLD_PASSWORD('new_pass');

DROP USER 'user'@'host';

Host ‘%’ indicates any host.

Main Data Types

TINYINT (1o: -128 to +127)


SMALLINT (2o: +-65 000)
MEDIUMINT (3o: +-16 000 000)
INT (4o: +- 2 000 000 000)
BIGINT (8o: +-9.10^18)

Precise interval: -(2^(8*N-1)) -> (2^8*N)-1

⚠ INT(2) = “2 digits displayed” – NOT “number


with 2 digits max”

FLOAT(M,D)
DOUBLE(M,D)
FLOAT(D=0->53)

⚠ 8,3 -> 12345,678 – NOT 12345678,123!

TIME (HH:MM)
YEAR (AAAA)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HH:MM; années 1000->9999)
TIMESTAMP (like DATETIME, but 1970->2038, compatib

VARCHAR (single-line; explicit size)


TEXT (multi-lines; max size=65535)
BLOB (binary; max size=65535)

Variants for TEXT&BLOB: TINY (max=255), MEDIUM


(max=~16000), and LONG (max=4Go). Ex:
VARCHAR(32), TINYTEXT, LONGBLOB, MEDIUMTEXT

ENUM ('value1', 'value2', ...) -- (default NULL, o

Reset Root Password

$ /etc/init.d/mysql stop

$ mysqld_safe --skip-grant-tables

$ mysql # on another terminal


mysql> UPDATE mysql.user SET password=PASSWORD('ne

## Switch back to the mysqld_safe terminal and kil


$ /etc/init.d/mysql start

Your commands may vary depending on your OS.

0 Comments for this cheatsheet. Write you

Search 357+ cheatsheets

Over 357 curated cheatsheets, by


developers for developers.

Devhints home

Other Databases cheatsheets

SQL joins cheatsheet Knex cheatsheet

PostgreSQL cheatsheet

PostgreSQL JSON cheatsheet

Top cheatsheets

Elixir cheatsheet ES2015+ cheatsheet

React.js cheatsheet Vim cheatsheet

Vimdiff cheatsheet Vim scripting cheatsheet

You might also like