The UPPERCASE Values preceded by $ are names of values that would be substituted.
mysql --user=$USERNAME --password=$PASSWORD --host=$DBHOST
GRANT ALL PRIVILEGES ON *.* TO '$USERNAME'@'localhost' IDENTIFIED BY '$PASSWORD' WITH GRANT OPTION;
The following will allow the user to login from any host.
GRANT ALL PRIVILEGES ON *.* TO '$USERNAME'@'%' IDENTIFIED BY '$PASSWORD' WITH GRANT OPTION;
USE $DATABASE;
SHOW DATABASES;
SHOW TABLES;
DESCRIBE $TABLE;
CREATE DATABASE $DATABASE;
CREATE TABLE $TABLE ($FIELDNAMEONE TYPE(SIZE), $FIELDNAMETWO TYPE(SIZE)); Ex: mysql> CREATE TABLE pets (name VARCHAR(20), sex CHAR(1), birth DATE);
LOAD DATA LOCAL INFILE "infile.txt" INTO TABLE $TABLE; (Use \n for NULL)
INSERT INTO $TABLE VALUES ('MyName', 'MyOwner', '2002-08-31'); (Use NULL for NULL)
SELECT $COLUMNNAME FROM $TABLE WHERE $CONDITIONS;
SELECT * FROM $TABLE;
SELECT * FROM $TABLE WHERE $COLUMNNAME = "$VALUE";
SELECT * FROM $TABLE WHERE $COLUMNNAMEONE = "$VALUE1" AND $COLUMNNAMETWO = "$VALUE2";
SET AUTOCOMMIT=1; # used for quick recreation of table DELETE FROM $TABLE; LOAD DATA LOCAL INFILE "infile.txt" INTO TABLE $TABLE;
UPDATE $TABLE SET $COLUMNNAME = "$VALUEONE" WHERE $COLUMNNAME = "$VALUE2";
SELECT DISTINCT $COLUMNNAME FROM $TABLE;
SELECT $COLUMNNAME1, $COLUMNNAME2 FROM $TABLE ORDER BY $COLUMNNAME2; !!Sorting Backwards {{{ SELECT $COLUMNNAME1, $COLUMNNAME2 FROM $TABLE ORDER BY $COLUMNNAME2 DESC;
SELECT CURRENT_DATE, (YEAR(CURRENT_DATE)-YEAR(date_col)) AS time_diff [FROM $TABLE]; MONTH(some_date) extracts the month value and DAYOFMONTH() extracts day.
SELECT * FROM $TABLE WHERE $COLUMNNAME LIKE "blah%"; (% is wildcard - arbitrary # of chars) Find 5-char values: SELECT * FROM $TABLE WHERE $COLUMNNAME like "_____"; (_ is any single character) Extended Regular Expression Matching SELECT * FROM $TABLE WHERE $COLUMNNAME RLIKE "^b$"; (. for char, [...] for char class, * for 0 or more instances ^ for beginning, {n} for repeat n times, and $ for end) (RLIKE or REGEXP) To force case-sensitivity, use "REGEXP BINARY"
SELECT COUNT(*) FROM $TABLE;
SELECT $COLUMNNAME, COUNT(*) FROM $TABLE GROUP BY $COLUMNNAME; (GROUP BY groups together all records for each 'owner')
SELECT $TABLE1.$COLUMNNAME1, $VALUE1 FROM $TABLE, $TABLE2 WHERE $TABLE1.$COLUMNNAME1 = TABLE2.VALUE2; SELECT pet.name, comment FROM pet, event WHERE pet.name = event.name; These just do not look right........ (You can join a $TABLE to itself to compare by using 'AS')
SELECT DATABASE();
SELECT MAX($COLUMNNAME) AS $LABLENAME FROM $TABLE;
CREATE TABLE $TABLE ($COLUMNNAME1 INT NOT NULL AUTO_INCREMENT, $COLUMNNAME2 CHAR(10) NOT NULL); INSERT INTO $TABLE ($COLUMNNAME2) VALUES ("tom"),("dick"),("harry");
ALTER TABLE $TABLE ADD COLUMN [$NEWCOLUMNNAME syntax(int, char etc)] AFTER $COLUMNNAME;
ALTER $TABLE tbl DROP COLUMN col; (Full ALTER $TABLE syntax available at mysql.com.)
# mysql --user=$USERNAME --password=$PASSWORD < batch_file (Use -t for nice table layout and -vvv for command echoing.)
# mysqldump --opt -u username -p database > database_backup.sql (Use 'mysqldump --opt --all-databases > all_backup.sql' to backup everything.) (More info at MySQL's docs.)