ノンエンジニアの為のmysql勉強会 第2回

19
ノンエンジニアの為の MySQL勉強会 22014/8/15 Yuta Tonegawa

Upload: yuta-tonegawa

Post on 05-Dec-2014

834 views

Category:

Technology


4 download

DESCRIPTION

ラクスル社内で実施したノンエンジニアの為のMySQL勉強会の資料です。

TRANSCRIPT

Page 1: ノンエンジニアの為のMySQL勉強会 第2回

ノンエンジニアの為のMySQL勉強会 第2回

2014/8/15Yuta Tonegawa

Page 2: ノンエンジニアの為のMySQL勉強会 第2回

一連のカリキュラム

1. とりあえず触ってみる (8/8)

2. こだわりって出力してみる (8/15) <- 今日

Page 3: ノンエンジニアの為のMySQL勉強会 第2回

今日のアジェンダ

1. 前回のおさらい

2. SELECT 文

3. WHERE 文 (AND, OR, LIKE, IN, BETWEEN)

4. テーブル結合

5. 関数 (COUNT, SUM, YEAR, MONTH)

6. 集計 (GROUP)

Page 4: ノンエンジニアの為のMySQL勉強会 第2回

今日の目標

月別の売上/件数を一発出力

Page 5: ノンエンジニアの為のMySQL勉強会 第2回

1.前回のおさらい

phpMyAdmin というツールでデータベースを直接見ます

https://raksul.com/phpmyadmin/

user 自分のユーザー名

pass ********

ログイン後 左上の raksul を選択してください

Page 6: ノンエンジニアの為のMySQL勉強会 第2回

1.前回のおさらい

下の「エクスポート」

エクスポート方法「詳細」

フォーマット「CSV」

一行目にカラム名を追加する 「チェック」

UTF8形式なので開く時注意

Page 7: ノンエンジニアの為のMySQL勉強会 第2回

2.SELECT文

8月の shop_order のいくつかの項目を表示してみましょう。

SELECT ← 表示

`user_id` , `receipt_num` , `total_price` , `paid_amount` ←カラム(列)名

FROM `shop_order` ← テーブル名

WHERE `create_time` > '2014-08-01 00:00:00' ←フィルタ条件

LIMIT 0 , 30 ←表示範囲

Page 8: ノンエンジニアの為のMySQL勉強会 第2回

SELECT ← 表示

`user_id` , `receipt_num` , `total_price` , `paid_amount` ←カラム(列)名FROM `shop_order` ← テーブル名

WHERE `create_time` > '2014-08-01 00:00:00' ←フィルタ条件

LIMIT 0 , 30 ←表示範囲

3.WHERE節

対象となる「行」をフィルタします。

Page 9: ノンエンジニアの為のMySQL勉強会 第2回

3.WHERE節AND 2つの条件が両方当てはまるものにフィルタ

WHERE `user_id` =2

AND `create_time` > '2013-08-01 00:00:00'

OR 2つの条件のいずれかに当てはまるものにフィルタ

WHERE `user_id` =2

OR `create_time` > '2013-08-01 00:00:00'

Page 10: ノンエンジニアの為のMySQL勉強会 第2回

3.WHERE節IN いずれかに当てはまる

WHERE `user_id` IN (1,2,3)

LIKE 文字列比較

WHERE `c_name` LIKE ‘’

BETWEEN ~と~の間

WHERE `create_time` BETWEEN ‘2014-08-01 00:00:00’ AND ‘2014-08-13 23:

59:59’

Page 11: ノンエンジニアの為のMySQL勉強会 第2回

エラー画面が出た!

閑話休題

Page 12: ノンエンジニアの為のMySQL勉強会 第2回

閑話休題

Page 13: ノンエンジニアの為のMySQL勉強会 第2回

エラーメッセージの英語は難しくない

near あたりを見ればOK

閑話休題

Page 15: ノンエンジニアの為のMySQL勉強会 第2回

5.関数

SELECT

COUNT( `order_id` ) , <- 件数

SUM( `total_price` ) <- 合計

FROM `shop_order`

WHERE `create_time` > '2014-08-01 00:00:00'

Page 16: ノンエンジニアの為のMySQL勉強会 第2回

5.関数

SELECT

`order_id` ,

YEAR( `create_time` ), <- YEAR

MONTH( `create_time` ) <- MONTH

FROM `shop_order`

Page 18: ノンエンジニアの為のMySQL勉強会 第2回

6.集計

SELECT

YEAR( `create_time` ) AS y,

MONTH( `create_time` ) AS m,

SUM( `total_price` ) ,

COUNT( `order_id` )

FROM `shop_order`

GROUP BY y, m ← 集計列を設定

Page 19: ノンエンジニアの為のMySQL勉強会 第2回

お疲れ様でした