PostgresSQL:大文字、小文字を区別せず正規表現検索

WHERE句などで大文字と小文字を区別しない正規表現検索を行いたい場合には、lower関数を使います。

SELECT *
FROM table1
WHERE lower(column1) LIKE 'abc%';

ちなみに、もう一つの方法はLIKEの代わりにILIKEを使用します。
(※:PostgreSQL 7.1以降で有効)

SELECT *
FROM table1
WHERE column1 ILIKE 'abc%';

※テーブル「table1」から、column1の値に「abc」を含む行を検索します。
(Abc、abc、ABCなどが全てマッチします。)

PostgreSQLで外部結合した時、NULL値を初期値に変換する方法

「OUTER JOIN」等、外部結合の時のNULL値を他のデフォルト値に置き換える方法。RDBMSはPostgreSQL。

参考サイト:SQL の COALESCE
http://sonic64.com/2003-07-29.html

COALESCE()という関数を使えば良いみたい!

SELECT  t1.name,
        COALESCE(v1.quantity, 0)   AS quantity
FROM    t_info                     AS t1
        LEFT OUTER JOIN order_view AS v1
        ON (t1.id = v1.id)
WHERE   t1.status = 1
ORDER BY quantity DESC

ちなみにOracleではNVL(),MySQLではifnull()だそうです。

phpMyAdminのインストール

phpMyAdminのインストール。
参考サイト:
http://www.phpmyadmin.net/home_page/downloads.php (ダウンロードページ)

http://fdays.blogspot.com/2007/12/centos-phpmyadmin.html (インストール方法)

まずは、ダウンロード。

$ wget http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.11.5-all-languages-utf-8-only.tar.gz?download

次に解凍。

$ tar -xzvf phpMyAdmin-2.11.5-all-languages-utf-8-only.tar.gz

次に、移動して使いやすいディレクトリ名に変更

$ mv phpMyAdmin-2.11.5-all-languages-utf-8-only /var/www/html/phpmyadmin

$ cd /var/www/html/phpmyadmin/

サンプルファイルを元に設定ファイルを編集

$ cp config.sample.inc.php config.inc.php

$ vi config.inc.php

$cfg['blowfish_secret']に値をセットすればとりあえず使える。

ログインしたら「mcrypt 拡張をロードできません。」と言われたので

# yum --enablerepo=utterramblings install php-mcrypt

でインストール。これで無事okになりました。

MySQLの設定

■初期設定

まずは自動起動をonにします。

# /sbin/chkconfig mysqld on

次にとりあえずサーバを起動します。

# /etc/init.d/mysqld start

初期化が終了しサーバが起動します。
そしたら、次はrootユーザのパスワードを設定します。

# mysqladmin -u root password 'パスワード'

■初期設定2

まず、MySQLにrootユーザでログインします。

# mysql -u root -p

パスワードを求められるので、パスワードを入力します。
で、ここで以下のSQL文を打てばわかるのですが、

mysql> SELECT User, Password FROM mysql.user;
+------+------------------+
| User | Password         |
+------+------------------+
| root | 50e019fb042f2a33 |
| root |                  |
| root |                  |
|      |                  |
|      |                  |
+------+------------------+
5 rows in set (0.01 sec)

MySQLには最初パスワードの存在しないユーザが用意されていますので、これを削除します。

mysql> DELETE FROM mysql.user WHERE Password = '';

次に、いつも使うユーザを追加します。

mysql> GRANT ALL on *.* to webmaster@localhost IDENTIFIED BY 'パスワード';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

webmasterの部分はお好きなユーザ名に変えてください。
FLUSH PRIVILEGESは権限を更新しろーみたいなかんじです、たぶん。
これをやらないとここで書いたユーザの権限が追加されません。

それで、rootからexitし、今追加したユーザで、

# mysql -u webmaster -p

として、パスワードを入力して、ログインできればOKです。