2013年3月4日、ブログは以下のURLに移行しました。最新の記事はこちらで公開しています。
新しいブログでは、コメントやリンクが一部切れていたり、一部機能が調整中です。
新しいブログへ

MySQLの直観的な仕様~OracleやPostgreSQLで困ること

投稿日:2010.07.02 / カテゴリ:WEB、WEBシステム関連 / 投稿者:Tom Goodsun

MySQLのイケてない仕様だの、いろいろあるもののやはり今の主流には変わりない。
私も仕事で使うのはMySQLが比率的に8割ぐらいとなっている。
ほかはOracleやPostgreSQL。DB2やSQL Serverは使ったことすらない。

で、まぁウェブで主流の3大DBベンダーを使っててふと気付いた小さいことだけど、物理名(列別名や表別名)ってそれぞれのベンダーで違う。
たとえば、Oracleでは次のSQLは列別名はすべて英大文字になってしまう。
対して、PostgreSQLではすべて小文字になってしまう。
MySQLはそのままの形で返してくれる。

SELECT col1 AS name, col2 AS ADDRESS FROM sample_table;

-- Oracleの場合
col1 AS name >> NAME
col2 AS ADDRESS >> ADDRESS

-- PostgreSQLの場合
col1 AS name >> name
col2 AS ADDRESS >> address

-- MySQLの場合
col1 AS name >> name
col2 AS ADDRESS >> ADDRESS

これはプログラムなんかで扱う場合は非常に困る。
一応これは回避策があって、別名を引用符で囲むことでその通り表示される。ちなみにスペースも入れられる。

SELECT col1 AS 'name', col2 AS 'ADDRESS 1' FROM sample_table;

コメント

まだコメントはありません。
このアイテムは閲覧専用です。コメントの投稿、投票はできません。