というわけで、研究に利用するデータを整理するため、MySQLを利用することに決めました。
理由は、jsonで固めたままデータ使うのに飽きたからです。
以下の詳しすぎるサイトを斜め読み
以下にざっと基本的な使い方をメモ
1.データベースにアクセス(MySQLの起動)
> mysql -u root -p
> パスワード入力
2.テーブルの作成
mysql> create table book
->(
-> id int(11),
-> title varchar(64),
-> detail text,
-> published date
-> );
Query OK, 0 rows affected (0.03 sec)
3.テーブル構造の閲覧
mysql> desc book;
4.データの閲覧
mysql> select * from book
直接カラムを指定する場合は
mysql> select id from book;
5.テーブルへのデータの挿入
mysql> insert into book (id, title, detail, published) values (1234, 'hogehoge', '超ヤバい', '2013-10-01')
その他、カラムのTypeとPythonを利用したMySQLDBへのアクセス方法のリンク
*PS
DBにダンプしたいテキストに'や"が入っている時の対処方法、誰か教えて下さい。
例) /* 面倒くさいテキスト */ text = 'X'masケーキ(^q^)'
*追記
SELECTにおけるパターンマッチについて
MySQL :: MySQL 4.1 リファレンスマニュアル :: 3.3.4.7 パターンマッチ
例) SELECT * FROM db_name WHERE col(テーブルの要素) LIKE "パターン";
COUNTを利用した行のカウント
MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 1.3.4.8 行のカウント
例) SELECT user, COUNT(*) FROM recipe WHERE name LIKE "%ケーキ%" GROUP BY user; ~ ユーザの料理レシピのうち、キーワード"ケーキ"を含む料理レシピをカウント
これは、便利!
日付を指定してSELECT
日付を指定してデータをSELECTするMySQL|プログラムメモ
例)SELECT * FROM recipe WHERE date_col > '2014-01-01';
~ 2014年元旦以降のデータを取得
基礎的な統計量の計算
カウント・合計・平均・最大値・最小値(GROUP BY節で使う関数)|MySQL内部関数|MySQL|PHP & JavaScript Room
例)select *, avg(c.co) from ( select from_user, count(*) as co from tsukurepos group by from_user ) as c;
~ つくれぽを送った料理レシピ数の平均値
まだまだ、SQLに入門したてなので、もっと便利な使い方を知っていきたい。