Skip to content

Instantly share code, notes, and snippets.

@margyle
Forked from hofmannsven/README.md
Last active March 21, 2016 22:58
Show Gist options
  • Save margyle/d3932df1d392139b341b to your computer and use it in GitHub Desktop.
Save margyle/d3932df1d392139b341b to your computer and use it in GitHub Desktop.
alias mysql=/Applications/MAMP/Library/bin/mysql
[mysqld]
max_allowed_packet=64M
MySQL
===============
Getting started: http://www.sqlteaching.com/
Related tutorial: http://cd64.de/mysql-cli
SQL joins infografic: http://cd64.de/sql-joins
Commands
-----------
Access monitor: `mysql -u [username] -p;` (will prompt for password)
Show all databases: `show databases;`
Access database: `mysql -u [username] -p [database]` (will prompt for password)
Create new database: `create database [database];`
Select database: `use [database];`
Show all tables: `show tables;`
Show table structure: `describe [table];`
Create new table with columns: `CREATE TABLE [table] ([column] VARCHAR(120), [another-column] DATETIME);`
Adding a column: `ALTER TABLE [table] ADD COLUMN [column] VARCHAR(120);`
Adding a column with an unique, auto-incrementing ID: `ALTER TABLE [table] ADD COLUMN [column] int NOT NULL AUTO_INCREMENT PRIMARY KEY;`
Inserting a record: `INSERT INTO [table] ([column], [column]) VALUES ('[value]', [value]');`
MySQL function for datetime input: `NOW()`
Selecting records: `SELECT * FROM [table];`
Selecting parts of records: `SELECT [column], [another-column] FROM [table];`
Counting records: `SELECT COUNT([column]) FROM [table];`
Counting and selecting grouped records: `SELECT *, (SELECT COUNT([column]) FROM [table]) AS count FROM [table] GROUP BY [column];`
Selecting specific records: `SELECT * FROM [table] WHERE [column] = [value];` (Selectors: `<`, `>`, `!=`)
Searching records for a word: `SELECT * FROM [table] WHERE [column] LIKE '%[value]%';`
Searching records for a word starting with [value]: `SELECT * FROM [table] WHERE [column] LIKE '[value]%';`
Updating records: `UPDATE [table] SET [column] = '[updated-value]' WHERE [column] = [value];`
Deleting records: `DELETE FROM [table] WHERE [column] = [value];`
Delete *all records* from a table (without dropping the table itself): `DELETE FROM [table];`
(This also resets the incrementing counter for auto generated columns like an id column.)
Removing table columns: `ALTER TABLE [table] DROP COLUMN [column];`
Deleting tables: `DROP TABLE [table];`
Deleting databases: `DROP DATABASE [database];`
Custom column output names: `SELECT [column] AS [custom-column] FROM [table];`
Export a database dump (more info [here](http://stackoverflow.com/a/21091197/1815847)): `mysqldump -u [username] -p [database] > db_backup.sql`
Logout: `exit;`

Commands

Select but without duplicates: SELECT distinct name, email, acception FROM owners WHERE acception = 1 AND date >= 2015-01-01 00:00:00

Commands

Create new user: CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

Grunt ALL access to user for * tables: GRANT ALL ON database.* TO 'user'@'localhost';

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment