MySQLメモ

メモ程度に.逐次追加予定.

char 固定長文字列(足りないところには空白が入る)
varchar 可変長の文字列
int 整数
datetime 日付時刻

その他

not null 非NULL
primary key 主キー
unique ユニーク
foregin key 外部キー
外部キー

外部キーはめんどくさい
parentテーブル

カラム名
id 主キー
name

childテーブル

カラム名
id 主キー
parent_id 外部キー(parent)
text
create table parent(
  id int auto_increment primary key not null,
  name varchar(20) not null
);

create table child(
  id int auto_increment primary key not null,
  parent_id int,
  text varchar(30) not null,
  foreign key(parent_id) references parent(id)
);

SQLクエリ

ユーザーの追加
grant all privileges on *.* to username@localhost identified by 'password';
パスワードの変更
set password for username@localhost='password';
データベース一覧を表示
show databases;
データベースの追加
create databases db1;
データベースの削除
drop databases db1;
データベースを選択
use db1;
表の作成
create table table1(column1 type, column2 type, column3 type, ・・・);
表の削除
drop table table1;
表一覧を表示
show tables;
行の追加
update table1(column1, column3, ・・・) values(value1, value2, ・・・);
行の選択(すべての列を取る)
select * from table1;
行の選択(指定した列だけを取る)
select column1, column2 from table1;
行の選択(条件付き)
select column1, column2 from table1 where column2 = "TEST";
行の選択(指定した行数だけ取る)
select column1, column2 from table1 where column2 = "TEST" limit 0, 100;
行の削除

selectと同じ感覚で使う.selectは該当列を取ってくるのに対しdeleteは該当列を削除する.

delete from table1 where text = "";
列の追加

not nullをつけたときは,既存の行には0が入る.

alter table table1 add column1;
表の定義を表示
show columns from table1;

詳細なら

show full columns from table1;