MariaDBは無料で使えるデータベースの管理システムで、MariaDBの動いているサーバーに他のPCからデータを蓄積できる。 ここではMySQL(MariaDB)を操作する上でよく使うコマンドをまとめた。
$ sudo apt install -y mariadb
$ brew install mariadb
$ mysql -u <user名> -h <host名> -p <パスワード>
-uでユーザー指定、-hで接続先 (MariaDBが動いているサーバー)、
-pのみでパスワード有効化、後ろにパスワードを入力するとパスワードを聞かれずに入れる
-e "<コマンド>"でmysqlコマンドを実行できる
host名はIPかURL。%を用いればワイルドカードにできる。
%を使う場合はクォート等で囲う。
例えばあるデータベースを作成し、`<user名>`@`192.168.0.%`でユーザーを作ると%の部分が異なるhostからデータベースを触れる。`<user名>`@`%`だと、どこからでも接続できる。
create user `<user名>`@`<host名>` identified by '<パスワード>';
select host,user from mysql.user;
ユーザーごとにデータベースの権限を設定できる。defaultではなんの権限もない。
権限の種類はselect, insert, update, create, delete, all (privileges)がある。
grant <権限の種類> on <DBの名前>.<TABLEの名前> to `<user名>`@`<host名>`;
自分の権限を見る際はfor以下はいらない。
show grants for `<user名>`@`<host名>`;
show databases;
show tables form <Database名>;
show columns from <Table名>;
実際にtableに入っている値を見るなら以下のコマンド。
select * from <Database名>.<Table名>;
※Tableに何か値がないと正しく表示されない。
create database <Database名>;
Excelで例えると、Tableはシート、Columnは列を意味している。 後のinsertという操作をすることで、新しい行にデータが入っていくイメージ。 Columnには、データ型、デフォルトの値等を設定できる。
create table <Database名>.<Table名> (<Column名> <データ型> <Option>, ・・・);
Table名の変更
rename table <変更前Table名> to <変更後Table名>;
columnを今あるTableに追加する場合
alter table <Table名> add <追加Column名> <型> <オプション>;
columnをTableから削除する場合
alter table <Table名> drop <削除Column名>;
columnの型、オプション等を変更する場合
alter table <Table名> modify <Column名> <変更後の型とオプション>;
新しいデータ(行)を追加する場合、普通はデータの挿入(insert)を行う。
insert into <Table名> (<Column名1> <Column名2> ...) values (<データ1>, <データ2>, ...);
ここで()の中のColumn名は追加したいColumn名を全て入れる。 二個目の()のデータの数は必ず1個目の()の中のColumn名の数と一致させる。 挿入するデータは1個めのColumnに対応させるように順番を揃えて、","区切りで入力する。
すでにあるデータに対して、修正したいときはデータの変更(update)を行う。
update <Table名> set <Column名>=<変更後データ> (where <条件>);
このときwhereで条件付をしてあげないと、全ての行のデータが書き換わるので注意。