MySQL Cheat Sheet
MySQL Cheat Sheet
MySQL Locations
Mac /usr/local/mysql/bin
Windows /Program Files/MySQL/MySQL version/bin
Xampp /xampp/mysql/bin
On Windows - https://www.qualitestgroup.com/resources/knowledge-center/how-to-
guide/add-mysql-path-windows/
Login
mysql -u root -p
Show Users
SELECT User, Host FROM mysql.user;
Create User
CREATE USER 'someuser'@'localhost' IDENTIFIED BY 'somepassword';
Show Grants
SHOW GRANTS FOR 'someuser'@'localhost';
Remove Grants
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'someuser'@'localhost';
Delete User
DROP USER 'someuser'@'localhost';
Exit
exit;
Show Databases
SHOW DATABASES
Create Database
CREATE DATABASE acme;
Delete Database
DROP DATABASE acme;
Select Database
USE acme;
Create Table
CREATE TABLE users(
id INT AUTO_INCREMENT,
first_name VARCHAR(100),
last_name VARCHAR(100),
email VARCHAR(50),
password VARCHAR(20),
location VARCHAR(100),
dept VARCHAR(100),
is_admin TINYINT(1),
register_date DATETIME,
PRIMARY KEY(id)
);
Delete / Drop Table
DROP TABLE tablename;
Show Tables
SHOW TABLES;
Select
SELECT * FROM users;
SELECT first_name, last_name FROM users;
Where Clause
SELECT * FROM users WHERE location='Massachusetts';
SELECT * FROM users WHERE location='Massachusetts' AND dept='sales';
SELECT * FROM users WHERE is_admin = 1;
SELECT * FROM users WHERE is_admin > 0;
Delete Row
DELETE FROM users WHERE id = 6;
Update Row
UPDATE users SET email = 'freddy@gmail.com' WHERE id = 2;
Add New Column
ALTER TABLE users ADD age VARCHAR(3);
Modify Column
ALTER TABLE users MODIFY COLUMN age INT(3);
Order By (Sort)
SELECT * FROM users ORDER BY last_name ASC;
SELECT * FROM users ORDER BY last_name DESC;
Concatenate Columns
SELECT CONCAT(first_name, ' ', last_name) AS 'Name', dept FROM users;
Like (Searching)
SELECT * FROM users WHERE dept LIKE 'd%';
SELECT * FROM users WHERE dept LIKE 'dev%';
SELECT * FROM users WHERE dept LIKE '%t';
SELECT * FROM users WHERE dept LIKE '%e%';
Not Like
SELECT * FROM users WHERE dept NOT LIKE 'd%';
IN
SELECT * FROM users WHERE dept IN ('design', 'sales');
Create & Remove Index
CREATE INDEX LIndex On users(location);
DROP INDEX LIndex ON users;
INNER JOIN
SELECT
users.first_name,
users.last_name,
posts.title,
posts.publish_date
FROM users
INNER JOIN posts
ON users.id = posts.user_id
ORDER BY posts.title;
Left Join
SELECT
comments.body,
posts.title
FROM comments
LEFT JOIN posts ON posts.id = comments.post_id
ORDER BY posts.title;
Aggregate Functions
SELECT COUNT(id) FROM users;
SELECT MAX(age) FROM users;
SELECT MIN(age) FROM users;
SELECT SUM(age) FROM users;
SELECT UCASE(first_name), LCASE(last_name) FROM users;
Group By
SELECT age, COUNT(age) FROM users GROUP BY age;
SELECT age, COUNT(age) FROM users WHERE age > 20 GROUP BY age;
SELECT age, COUNT(age) FROM users GROUP BY age HAVING count(age) >=2;