Mysql Notes
Joe's site has some awesome notes on it. The MySQL ones are some of my favorite. Most of these came from there plus some other ones I found handy.
SELECT
Show Tables
SHOW TABLES;
Unique
/* Select only the unique instances of "col_name". */
SELECT DISTINCT(col_name) FROM tbl_name;
-- If you select more than one column you must use
-- DISTINCT for the first column:
SELECT DISTINCT(col_name), other_col1, other_col2 FROM tbl_name;
Random
-- Select _one_ random quote.
SELECT QUOTE FROM DREQUOTES ORDER BY RAND() LIMIT 1
Maximum
SELECT MAX(COST) FROM TBL_WITH_COST_FIELD
-- Select the highest value that is held
-- in the COST field.
Tables
Rename Table
RENAME TABLE old_table_name TO new_table_name
Add Column
ALTER TABLE table_name ADD COLUMN column_name VARCHAR(20)
Drop Column
ALTER TABLE table_name DROP COLUMN column_name
Rename Column
ALTER TABLE table_name CHANGE old_column_name new_column_name VARCHAR(20)
Modify Column Data Type
ALTER TABLE table_name MODIFY column_name VARCHAR(20)
-- CAUTION!!!
-- If you change the column type drastically you can lose data.
-- For example: if you have a column of type VARCHAR(20) and you want to
-- change it to INT(5), any fields containing characters will be changed to
-- zeros (0).
Modify Column Default Value
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'your default'
ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT
Make Column Unique
ALTER TABLE table_name ADD UNIQUE(column_name);
Copy Table
CREATE TABLE backupTbl LIKE possiblyOtherDB.tbl;
-- Copy data into that table:
INSERT backupTbl SELECT * FROM possiblyOtherDB.tbl;
User Administration
Users are unique by "Host" and "User".
Add/Modify Users
-- Create user "drwinchester" with password 'hazelhainsworth'.
GRANT SELECT ON CATALOG.* TO 'drwinchester'@'localhost' IDENTIFIED BY 'hazelhainsworth';
-- Remove Dr. Winchester's password:
GRANT SELECT ON CATALOG.* TO 'drwinchester'@'localhost' IDENTIFIED BY '';
-- Give Dr. Winchester more privileges to CATAGLOG:
GRANT ALL ON CATALOG.* TO 'drwinchester'@'localhost' IDENTIFIED BY '';
Database Administration
Create Database
CREATE DATABASE MyCoolDatabase
Drop Database
DROP DATABASE MyCoolDatabase
Backup Table
mysqldump --opt MyDataBaseName > tabledump.sql
Restore Table
mysql -A MyDataBaseName > tabledump.sql
Format
Dates
What | Symbol | Example |
---|---|---|
Year (4) | %Y | 2007 |
Year (2) | %y | 07 |
Month (2) | %m | 03 |
Month (1) | %c | 3 |
Month (abbr.) | %b | Mar |
Month (full name) | %M | March |
Day (2) | %d | 05 |
Day (1) | %e | 5 |
Hour (24-2) | %H | 09 |
Hour (12-2) | %h | 09 |
Hour (24-1) | %k | 9 |
Hour (12-1) | %l | 9 |
Minute (2) | %i | 01 |
Seconds (2) | %s | 04 |