ノンエンジニアの為のmysql勉強会 第2回
DESCRIPTION
ラクスル社内で実施したノンエンジニアの為のMySQL勉強会の資料です。TRANSCRIPT
ノンエンジニアの為のMySQL勉強会 第2回
2014/8/15Yuta Tonegawa
一連のカリキュラム
1. とりあえず触ってみる (8/8)
2. こだわりって出力してみる (8/15) <- 今日
今日のアジェンダ
1. 前回のおさらい
2. SELECT 文
3. WHERE 文 (AND, OR, LIKE, IN, BETWEEN)
4. テーブル結合
5. 関数 (COUNT, SUM, YEAR, MONTH)
6. 集計 (GROUP)
今日の目標
月別の売上/件数を一発出力
1.前回のおさらい
phpMyAdmin というツールでデータベースを直接見ます
https://raksul.com/phpmyadmin/
user 自分のユーザー名
pass ********
ログイン後 左上の raksul を選択してください
1.前回のおさらい
下の「エクスポート」
エクスポート方法「詳細」
フォーマット「CSV」
一行目にカラム名を追加する 「チェック」
UTF8形式なので開く時注意
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 ←表示範囲
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節
対象となる「行」をフィルタします。
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'
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’
エラー画面が出た!
閑話休題
閑話休題
エラーメッセージの英語は難しくない
near あたりを見ればOK
閑話休題
4.テーブル結合
SELECT * <- 全カラム
FROM `shop_order` , `shop_order_item` <- 複数テーブル指定
WHERE `shop_order`.`order_id` = `shop_order_item`.`order_id` <-結合条件
5.関数
SELECT
COUNT( `order_id` ) , <- 件数
SUM( `total_price` ) <- 合計
FROM `shop_order`
WHERE `create_time` > '2014-08-01 00:00:00'
5.関数
SELECT
`order_id` ,
YEAR( `create_time` ), <- YEAR
MONTH( `create_time` ) <- MONTH
FROM `shop_order`
5.関数
SELECT
`order_id` ,
YEAR( `create_time` ) AS y,
MONTH( `create_time` ) AS m
FROM `shop_order`
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 ← 集計列を設定
お疲れ様でした