Database Cheat Sheets
Connection Commands
Instance Name -
sqlcmd -S serverName\InstanceNameIP Address -
sqlcmd -S IP_Add\InstanceNameIP Address/Port -
sqlcmd -S IP_Add,Port_Num
Useful Commands -
Display All Databases -
SELECT * FROM sys.databases;Use a Database -
USE db_name;Display Tables -
SELECT * FROM sys.tables;Get Table Information -
exec sp_help 'table_name';Delete Database -
DROP DATABASE db_name;View Database Information -
sp_who; provides information about the current users, sessions, and processes for an SQL DB Engine instance.
SELECT Statement -
SELECT col1, col2, coln FROM table;SELECT col1, col2, coln FROM table WHERE condition;SELECT col1, col2, coln FROM table ORDER BY col1 DESC;SELECT col1, COUNT(*) FROM table GROUP BY col1;SELECT col1, COUNT(*) FROM table GROUP by col1 HAVING condition;
JOIN Commands
INNER JOIN - Returns rows with matching values in both tables.
SELECT * FROM table1 INNER JOIN table2 ON table1.col=table2.col;LEFT JOIN/LEFT OUTER JOIN - Returns all rows from the left table (first table) and the matching rows from the right table (second table).
SELECT * FROM table1 LEFT JOIN table2 on table1.col=table2.col;RIGHT JOIN/RIGHT OUTER JOIN - Returns all rows from the right table (second table) and the matching rows from the left table (first table).
SELECT * FROM table1 RIGHT JOIN table2 ON table1.col=table2.col;FULL JOIN/FULL OUTER JOIN - Returns all rows when there is a match in either the left or right table.
SELECT * FROM table1 FULL JOIN table2 ON table1.col=table2.col;CROSS JOIN - Combines every row from the first table with every row from the second table, creating a 'Cartesian' product.
SELECT * FROM table1 t1, table2 t2 WHERE t1.col=t2.col;
Data Manipulation Commands -
INSERT -
INSERT INTO table (col1, col2, coln) VALUES (value1, value2, valuen);UPDATE -
UPDATE table SET col1=val1, col2=val2, coln=valn WHERE condition;DELETE -
DELETE FROM table WHERE condition;
Data Definition Commands -
CREATE - Create a new database or object - table, index, view, or stored procedure.
CREATE TABLE table_name (col1 datatype, col2 datatype, col_n datatype);For example:CREATE TABLE departments (dpt_id INT PRIMARY KEY, dpt_name VARCHAR(50), dpt_code VARCHAR(6));ALTER - Add, delete, or modify columns in an existing table.
ALTER TABLE table_name ADD col_name datatype;For example:ALTER TABLE departments ADD dpt_abr VARCHAR(10);ALTER TABLE table_name DROP COLUMN column_name;
DROP - Delete ('drop') an existing table from a database.
DROP TABLE table_name;TRUNCATE - Delete data inside a table but not the table itself.
TRUNCATE TABLE table_name;
Data Control Commands -
GRANT - Give specific privileges to users or roles.
GRANT SELECT, INSERT ON employees TO 'User Name';REVOKE - Take away privileges from users or roles.
REVOKE SELECT, INSERT ON departments FROM 'User Name';
Connection Commands
mysql -u username -pmysql -h host_name -u username -p [db_name]
Useful Commands -
Display Databases -
SHOW DATABASES;USE db_name;Display Tables -
SHOW TABLES;Table Information -
SHOW FIELDS FROM table_nameorDESCRIBE table_nameDisplay DB Information -
SHOW PROCESSLIST;Display Roles/Users -
SELECT User, Host FROM mysql.user;Display Locked/Password Expired Users -
SELECT user, Host, Account_locked, password_expired FROM mysql.user;Display Logged In Users -
SELECT user();Display User Privileges -
SHOW GRANTS FOR user_name;Display Logged In DB Users (Root Permission) -
SELECT user, host, db, command FROM information_schema.processlist;Backup DB to SQL File -
mysqldump -u username -p db_name > db_bkup_file_name.sqlRestore DB From SQL File -
mysql -u username -p db_name < db_bkup_file_name.sqlRepair Tables -
mysqlcheck --all-databases;ormysqlcheck --all-databases --fast;
Select Commands -
SELECT * FROM table;SELECT * FROM table1, table2;SELECT col_1, col_2, col_n FROM table1, table2;SELECT col_1, col_n FROM table WHERE condition;SELECT col_1, col_n FROM table WHERE condition GROUP BY col_1;SELECT col_1, col_n FROM table WHERE condition GROUP BY col_1 HAVING condtion;SELECT col_1, col_n FROM table WHERE condition ORDER BY col_1 DESC;SELECT DISTINCT col_1, col_2 FROM table;
Conditions -
column = value
column <> value
column LIKE 'value _ %'
column IS NULL
column IS NOT NULL
column IS IN (value_1, value_2)
column IS NOT IN (value_1, value_2)
condition_1 AND condition_2
condition_1 OR condition_2
Reset Root Password:
/etc/init.d/mysql stopmysql_safe --skip-grant-tables(Different terminal)
mysqlUPDATE mysql.user SET password=PASSWORD('new_pass') WHERE user ='root';
(Return to first terminal)
/etc/init.d/mysql start
Data Definition Commands
CREATE DATABASE db_name;DROP DATABASE db_name;ALTER TABLE table_name ADD column_name;ALTER TABLE table_name DROP COLUMN column_name;ALTER TABLE old_name RENAME TO new_name;ALTER TABLE table_name RENAME old_col_name TO new_col_name;DROP TABLE table_name;TRUNCATE TABLE table_name;
Data Control Commands
CREATE USER 'user_name'@localhost;DROP USER 'user_name'@localhost;GRANT ALL PRIVILEGES ON db_name.* TO 'user_name'@localhost IDENTIFIED BY 'password';GRANT SELECT, INSERT, DELETE ON db_name.* TO 'user'@'localhost' IDENTIFIED BY 'password';REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'host';- all permissionsFLUSH PRIVILEGES;SET PASSWORD FOR 'user'@'host' = PASSWORD('new_pass');
Useful Commands -
List Databases -
\lConnect to Database -
\c database_nameList Current DB Tables -
dtDisplay Table Schema -
\d table_nameDisplay All Roles/Users -
\duDisplay Last Command -
\eExecute Commands From File -
\i file_nameExit PostgreSQL Prompt -
\q
Useful Commands -
Display Databases -
.databasesDisplay Tables -
.tablesDisplay Table Schema -
.schema table_nameOpen New or Existing DB File -
.open file_nameSave Current DB to File -
.save file_nameExit SQLite Prompt -
.quitExecute Linux Command -
.system ls -l
Select Commands
SELECT * FROM table;SELECT col_1, col_2 FROM table;SELECT * FROM table ORDER BY column DESC;SELECT * FROM table LIMIT 10;
Join Commands
Inner Join -
SELECT * FROM table_1 INNER JOIN table_2 ON table_1.col=table_2.col;Left Join -
SELECT * FROM table_1 LEFT JOIN ON table_1.col=table_2.col;Cross Join -
SELECT * FROM table_1 CROSS JOIN table_2;
Data Manipulation Commands
INSERT INTO table (col_1, col_2) VALUES ('value_1', value_2);UPDATE table SET column_1=value_1 WHERE column_2='value_2';DELETE FROM table WHERE column_1='value_1';
Data Definition Commands
Create Database -
.open db_filename.dbCreate Table & Define Fields -
CREATE TABLE IF NOT EXISTS table_name (col1 INT PRIMARY KEY, col2 VARCHAR(20) NOT NULL);Add Column to Table -
ALTER TABLE table_name ADD column_name VARCHAR(15);Delete a Table -
DROP TABLE table_name;Rename a Table -
ALTER TABLE old_table_name RENAME TO new_table_name;
Last updated