--- title: "sql" tags: [ "Documentation", "data" ] --- MySQL, Aurora and the Maria Database work similarly, and mostly with the same commands. MySQL requires 160 Megs of disk space. The ontological layers go: > Database > table > record > field The record is a line containing multiple fields. The table contains multiple records. ## Database: RPGs ### Table: D&D #### Columns: | id | name | year | edition | stars | |:--:|:-------------------|:-----|:--------|:------| | 1 | Dungeons & Dragons | 1975 | 1 | 1 | | 2 | Dungeons & Dragons | 1980 | 2 | 1 | | 3 | Advanced Dungeons & Dragons | 1985 | 1 | 1 | # Getting started > sudo apt-get install mysql-server You'll be asked for a password. Log in with: > mysql -u root -p The -u requests a user, while -p tells it to prompt for a password. List all databases: > show databases; Make a new database; > create database creatures; Start work on the new database: > use creatures; > create table stats (Strength VARCHAR(2), Speed VARCHAR(2), Dexterity(2)); This creatures a row called 'stats' within the 'creature'table' with a number of variables, all of type VARCHAR (a variable length character string). Now you can insert data (which would normally be provided by a user via php or some-such). > insert into stats (Strength,Speed,Dexterity) values (-1,0,+1) Now have a look at the info: > select * from stats The old way to delete info by selection was: > delete * from stats where Charisma='0' ...but now it's: > delete from stats where Charisma='0' Update a thing: > update stats > set Speed='-1',Charisma='-2' > where Strength=0; Leaving out the specifier 'where' means you're updating the entire database. Control order with > SELECT * FROM stats ORDER BY Strength; Or for descending order, suffix 'DESC'. > select * from stats ORDER by Date DESC; # Resources Try more at [w3schools](http://www.w3schools.com/sql/sql_groupby.asp).