Posts tagged ‘MySQL’

MySQLのSELECTした結果をCSVで書き出す方法はいろいろなサイトで確認できる。

  1.  
  2. SELECT * FROM data INTO OUTFILE "ファイルパス" FIELDS TERMINATED BY ‘,’;
  3.  

ファイルパスは、Windowsの場合は「c:\list.csv」など
Macの場合は「/Users/ユーザ名/list.csv」など

JOINした結果をCSVで取り出したい場合がある。
そんなときは、以下のようにすると取得できる

  1.  
  2. SELECT t1.id, t1.value1, t1.value2, t2.value1
  3. INTO OUTFILE "ファイルパス" FIELDS TERMINATED BY ","
  4. FROM table1 t1
  5. LEFT JOIN table2 t2 on
  6. t1.id=t2.id
  7. WHERE ・・・
  8.  

JOINした結果のcsv取り出しは、場所がFROM句の前になることに注意が必要ですね。
忘れてちょっとはまってしまった。。。

週単位で件数やある値の合計値、平均値等を取りたい場合のやり方。

例えば、以下のようなテーブルがあった場合以下のようになる
TabelA
——————
id primary
date1 datetime
size int
——————

週単位での件数を取得する

  1.  
  2. SELECT CONCAT(YEAR(date1),"/",lpad(WEEK(date1),2,0),"w") as week,
  3.        COUNT(*)
  4. FROM TableA
  5.  

解説:
 YEAR関数:引数の日付の年の部分だけ取得 ’2012-10-30 00:11:22′だったら”2012″
 WEEK関数:引数の日付の最初の日曜日から何週目か 
 lpad関数:左埋めをしてくれる関数(値,桁数,埋める文字)
      例えば(1,3,’0′)とすると001となる
      ORDER BYでうまくソートするために使用

 GROUP BY句で連結した週単位の文字列でグルーピングすることによって
 週単位の集計が行える

合計値を出力

  1.  
  2. SELECT CONCAT(YEAR(date1),"/",lpad(WEEK(date1),2,0),"w") as week,
  3.        SUM(size)
  4. FROM TableA
  5.  

SQLが微妙だったので書き換え(2012-12-12)

いろいろ応用が利きそうな書き方ですね。

MacでMySQLを動かすためのインストールメモ
Macの環境(古い…orz)
PowerPC
OS 10.4.11 tiger
1.ダウンロード 最新版は、PowerPC版はないので、
5.1.40をダウンロード ダウンロード先は、
以下のURL http://downloads.mysql.com/archives.php?p=mysql-5.1&v=5.1.40
32ビット版のインストーラフォーマットを使用
MD5のチェックサムは196d5075ecacaede862d85ffd0e90a0b

2.インストール
2-1.ダウンロードしたファイルをダブルクリックで展開
2-2.展開したファイルのmysql-5.1.40-osx10.4-powerpc.pkgをダブルクリック
画面の指示に従って、インストール
2-3.MySQL Start up Itemをインストール
2-4.MySQL.prefPaneを登録(システム環境設定から起動/終了ができます)

3.起動確認
3-1.システム環境設定のMySQLの項目を選択し、MySQLをスタートする
3-2.ターミナルからmysqlにログインできることを確認する
/usr/local/mysql/bin/mysql -u root mysqlで起動すれば、
インストール&起動確認完了

4.MySQLの設定
4-1.ルートのパスワード設定(ルートでログイン後)

  1. SET PASSWORD FOR root@localhost=PASSWORD(‘設定したいパスワード’);
  2. exit
  3.  

4-2.リモートからツールを使用してDBを操作したいので、
新たにユーザを作成

  1.  
  2.  GRANT ALL ON *.* to ユーザ名@% identified by "パスワード" WITH GRANT OPTION;
  3.  

#すべてのホストからログイン可能になっていますが、セキュリティ上微妙です。

5.ツール「Squel Pro」を使用して接続