Skip to content

Instantly share code, notes, and snippets.

@rabhatumaragar
Last active March 10, 2021 15:14
Show Gist options
  • Save rabhatumaragar/b366de1c3e8d4171dc33108f47c37509 to your computer and use it in GitHub Desktop.
Save rabhatumaragar/b366de1c3e8d4171dc33108f47c37509 to your computer and use it in GitHub Desktop.
MySQL Cheat Sheet for Dummies

MySQL Cheat Sheet with some dummy queries to help you get going.

Login

mysql -u root -p

Show Users

SELECT User, Host FROM mysql.user;

Create User

CREATE USER 'someuser'@'localhost' IDENTIFIED BY 'somepassword';

Grant All Priveleges On All Databases

GRANT ALL PRIVILEGES ON * . * TO 'someuser'@'localhost';
FLUSH PRIVILEGES;

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 testdb;

Delete Database

DROP DATABASE testdb;

Select Database

USE testdb;

Create Table

CREATE TABLE employee(
   id INT AUTO_INCREMENT,
   first_name VARCHAR(100),
   last_name VARCHAR(100),
   email VARCHAR(50),
   location VARCHAR(100),
   dept VARCHAR(100),
   PRIMARY KEY(id)
);

Delete / Drop Table

DROP TABLE employee;

Show Tables

SHOW TABLES;

Insert Row / Record

INSERT INTO employee (first_name, last_name, email, location, dept) values ('Irrfan', 'Khan', '[email protected]', 'Mumbai', 'Development');

Insert Multiple Rows / Records at once

INSERT INTO employee (first_name, last_name, email, location, dept) values ('KK', 'Menon', '[email protected]', 'Delhi', 'Development'), ('Piyush', 'Mishra', '[email protected]', 'Delhi', 'Design'), ('Sanjay', 'Mishra', '[email protected]', 'Kolkata', 'Sales'), ('Deepak', 'Dobriyal', '[email protected]', 'Delhi', 'Sales'), ('Nawazuddin', 'Siddiqui', '[email protected]', 'Delhi', 'Design'), ('Jaideep', 'Ahlawat', '[email protected]', 'Mumbai', 'Development');

Select

SELECT * FROM employee;
SELECT first_name, last_name FROM employee;

Where Clause

SELECT * FROM employee WHERE location='Delhi';
SELECT * FROM employee WHERE location='Delhi' AND dept='Design';
SELECT * FROM employee WHERE dept = 'Sales';

Savepoint / Rollback

START TRANSACTION;
SAVEPOINT initsave;
ROLLBACK TO initsave;

Delete Row

DELETE FROM employee WHERE id = 6;

Update Row

UPDATE employee SET email = '[email protected]' WHERE id = 3;

Add New Column

ALTER TABLE employee ADD age VARCHAR(3);

Modify Column

ALTER TABLE employee MODIFY COLUMN age INT(3);

Order By (Sort)

SELECT * FROM employee ORDER BY first_name ASC;
SELECT * FROM employee ORDER BY first_name DESC;

Concatenate Columns

SELECT CONCAT(first_name, ' ', last_name) AS 'Name', dept FROM employee;

Select Distinct Rows

SELECT DISTINCT location FROM employee;

Between (Select Range)

SELECT * FROM employee WHERE age BETWEEN 20 AND 25;

Like

SELECT * FROM employee WHERE first_name LIKE 'p%';
SELECT * FROM employee WHERE dept LIKE 'de_%';
SELECT * FROM employee WHERE dept LIKE '%t';
SELECT * FROM employee WHERE last_name LIKE '%mishra%';

Not Like

SELECT * FROM employee WHERE dept NOT LIKE 'd%';

IN

SELECT * FROM employee WHERE dept IN ('design', 'sales');

New Table With Foreign Key (department)

CREATE TABLE empsalary(
   id INT,
   salary INT,
   bonus INT,
   PRIMARY KEY(id),
   FOREIGN KEY (id) REFERENCES employee(id)
);

Add Data to Posts Table

INSERT INTO empsalary VALUES (1, 100000, 10000),(3, 150000, 15000),(6, 150000, 15000),(2, 100000, 10000),(7, 100000, 10000),(5, 200000, 20000),(4, 200000, 20000);

INNER JOIN (NOT IN Class 12 Syllabus 2020-21)

SELECT  
employee.first_name,  
employee.last_name, 
employee.dept,  
empsalary.salary,  
empsalary.bonus 
FROM employee 
INNER JOIN empsalary 
ON employee.id = empsalary.id 
ORDER BY employee.id;

EQUI JOIN

SELECT CONCAT(employee.first_name, ' ', employee.last_name) AS "Name", (empsalary.salary + empsalary.bonus) AS "Salary" FROM employee, empsalary WHERE employee.id = empsalary.id;

NATURAL JOIN

SELECT * FROM employee NATURAL JOIN empsalary;

Aggregate Functions

SELECT COUNT(id) FROM employee;
SELECT MAX(salary) FROM empsalary;
SELECT MIN(age) FROM employee;
SELECT SUM(age) FROM employee;

Group By

SELECT dept, COUNT(first_name) FROM employee GROUP BY dept;
SELECT location, COUNT(first_name) FROM employee WHERE location in ("Delhi","Mumbai") GROUP BY location;
SELECT dept, COUNT(first_name) FROM employee GROUP BY dept HAVING count(first_name) >=2;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment