毎日テキストマイニング

180日間、毎日テキストマイニングをするブログです

2018/7/3【11日目】SQL構文を覚えよう

とりあえずAKBメンバーのデータを30件ずつ保存しました。 データベースには1032件の呟きが保存されています。 テーブルの中身はこんな感じです。

id,created_data,name,tweet,count_tweets,count_follows,count_followers,count_favolites,count_lists,users_favorites,retweet,favorite,datesp

1,"2018-07-02 22:05:22",48_asainanami,”テキストの内容”,93,91,10037,81,264,81,175,789,"2018-07-03 08:41:51"

今日はこのテーブルを使ってSQLを学んで行きたいと思います。

SQL

投稿者を指定

これは簡単ですね。whereの後ろにnameで指定すればいいだけです。

SELECT * FROM tweet WHERE name = '48_asainanami';

行数を数える

行数を数えるにはCount関数を使うらしいです。投稿者を48_asainanamiに指定して行数を数えてみます。

SELECT COUNT(*) FROM tweet WHERE name = '48_asainanami';

実行結果

30

時期を指定する

散々苦労したcreated_dataを使用します。 時期を指定する場合はBETWEEN ANDを使う。

select * from tweet where created_data between '2018-06-01' and '2018-06-30' and favorite >= 900;

ついでに条件の追加もANDで行う、条件のうちどちらかでも満たせばいいものはORでつなぐ。

何日から先を検索する

created_dataを大なり小なりで比較させて出します。 基本的に文字列はすべてシングルクォートで囲みます。

select * from tweet where created_data <= '2018-06-01';

文字検索

LIKEを使う

select * from tweet where tweet LIKE '%アイドル%';

%の入れ方で検索方法が変わるので注意。この%は0文字以上の任意の文字を表している。 ’%hoge’:hogeから始まる文章を検索する ‘hoge%’:hogeで終わる文章を検索する ‘%hoge%’:hogeを含む文章を検索する

任意の文字列を検索する

INを使います。IDなどを複数検索する時はこれを使う。

select * from tweet where id in (1,5,8);

並び替え

ORDER BY hoge ASC/DESCを使う

select * from tweet where id in (1,5,8) order by tweet ASC;

ASCが昇順、DESCが降順を指定する

サブクエリ

SELECTの中にSELECTを入れることができる、これをサブクエリというらしいです。 いい例が思い浮かばず実行は保留。

長さを測る

length(tweet)を使って、テキスト量を数えることができる。

select 'テキスト量', length(tweet) from tweet;

実践

7月3日分をデータベースに入れましたので、摘出してみます。

select Count(*) from tweet where  created_data >= '2018-07-03';

実行結果

73
select  TWEET from tweet where  created_data >= '2018-07-03';

実行結果

TWEET
"あああああああ相手のゴール綺麗に、、選手の皆さんお疲れ様でした!✨✨✨初めてこんな時間まで起きてスポーツ観戦しました!あー1限頑張るぞ!!!!"
"だ悔しい、、、追いつかれたぁ""あれ、入っちゃうかー、、、、、うーん”
(中略)

ということで、本日は73件の投稿でした。 形容詞を見てみますと、日本代表選手を見ているメンバーが多かったみたいですね。

'悔しい': 4, 'すごい': 4, 'ない': 4, 'かっこよい': 3, 'いい': 3, 'よい': 2, '良い': 2, '高い': 2, '楽しい': 2, '凄い': 1, '難しい': 1, 'たのしい': 1, 'よろしい': 1, '強い': 1, '暑い': 1, '涼しい': 1, '小さい': 1, '近い': 1, 'かわいい': 1, 'ゆるい': 1, '嬉しい': 1, '懐かしい': 1, '可愛い': 1, 'やばい': 1})

今日勉強したこと

-基礎的なSQL文の書き方