Translate

2009年7月6日月曜日

MySQLのメモ

ちょいちょいずつ整理しながら追加していく予定。
・ルートで起動(mac OS X)
/usr/local/mysql/bin/mysql -u root -p



◇作成/設定
・データベースの作成
CREATE DATABASE {データベース名};


・テーブルの作成
CREATE TABLE {テーブル名}(
 {名前} {型} {etc},
 {名前} {型} {etc},
 {名前} {型} {etc},
 {名前} {型} {etc}
);





◇確認
・バージョン
SELECT VERSION();


・データベース一覧取得
SHOW DATABASES;


・データベース内のテーブル一覧取得
SHOW OPEN TABLES FROM {データベース名};


・テーブル内、型一覧
SHOW FIELDS FROM {テーブル名};
or
DESC {テーブル名};


・テーブル内データ一覧取得
SELECT * FROM {テーブル名};


・テーブルのSTATUSを調べる
SHOW TABLE STATUS;



◇文字コードの確認
・デフォルト文字コード設定を確認
status


・データベースの文字コードを確認
SHOW CREATE DATABASE {データベース名};


・テーブルの文字コードを確認
SHOW CREATE TABLE {テーブル名};


◇削除
・テーブルの削除
DROP TABLE {テーブル名};


・データベースの削除
DROP DATABASE {データベース名};



◇他
・データベースの切替
USE {データベース名}


・コマンドを抜ける
exit or quit

2009年7月1日水曜日

SPIDERING HACKS(#18)

#18は、スクリプトにプログレスバーを追加してみよう♪
ってお話ね。
原理は、LWP::UserAgentのオブジェクトを作ったのちに
getやらpostする時に、:content_cbヘッダに関数を指定することで
ある一定サイズのダウンロードが行われるたびに上記:content_cbに
指定した関数が呼び出されるを利用して、ダウンロードの進捗を表す
プログレスバーを作ろうってこった。

ちなみに、一定サイズのダウンロードごとに関数が呼び出されるわけだが
:content_cbヘッダと共に:read_size_hintというヘッダに、どのくらいの
ダウンロードサイズごとに関数を呼び出すか参考までに指定することが
できるそうな。
(指定したから、必ずそのサイズごとに呼ばれるわけではないらしい)


もっとも原始的な物はこんな感じになる。
#!/usr/bin/perl#!
use strict;
use warnings;
use LWP;
$|++;

die "[error]URLを指定して下さい。\n" unless @ARGV;
my $final_data; #受信データを格納する変数
for my $url (@ARGV){
$final_data = '';
print "URL", substr($url, 0, 40), "のダウンロード中...";
my $ua = LWP::UserAgent->new();
my $res = $ua->get($url, ':content_cb'=>\&callback);
print "\n";
}

sub callback{
my ($data, $response, $protocol) = @_;
$final_data .= $data;
print ".";
}


ポイントは、
5行目で特殊変数$|に0以外の数値を指定してバッファリングしないようにしている点
13行目で:content_cbをセットしている点かな。

他の物については、後でおいおい追加してメモ書きしておくかな。。