====== MySQL ====== ---- ===== Cleaner Terminal Output ===== MySQL can have quite messy output when running queries from the ''mysql'' cli. You can terminate a statement with ''\G'' instead of '';'' to format as a list instead of table. SELECT * FROM users\G Alternatively, you can set the pager to ''less'' which retains the table format and can be scrolled with arrowkeys. pager less -SFX SELECT * FROM users; nopager; -- to turn off ---- ===== Create User ===== CREATE USER 'kalenpw'@'localhost' IDENTIFIED BY 'p@ssword'; ---- ===== Grant permissions ===== replace ''*.*'' with ''schema.table'' if needed GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'; ---- ===== Basic syntax ===== **update**\\ UPDATE employees SET email = 'user@domain.com' WHERE id = 123; ---- ===== Many to Many Relationship Joins ===== SELECT a.* FROM map_ads_categories m JOIN ads a ON (m.ad_id = a.id) WHERE m.category_id = 28; SELECT * FROM map_ads_categories m JOIN ads a ON (m.ad_id = a.id) JOIN categories c ON (m.category_id = c.id) WHERE c.id = 28; ---- ===== Util ===== -- list number of rows in each table SELECT table_name, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'TABLE_NAME' ORDER BY TABLE_ROWS DESC; ----