MySQLでDUALテーブルなしに計算結果を取得する方法
Oracleなどのデータベースでは、定数や計算式をSELECTする際に「FROM DUAL」というダミーテーブルの指定が必要ですが、MySQLではFROM句を省略できます。つまり、SELECT文に計算式や値を直接記述するだけで、その演算結果を取得することが可能です。
基本的な使い方
以下のように、SELECTの後に単純な計算式を指定するだけで、その結果が返されます。
mysql> Select 1+1; +-----+ | 1+1 | +-----+ | 2 | +-----+ 1 row in set (0.02 sec)
同様に、定数のみを指定して選択することもできます。
mysql> Select 1; +---+ | 1 | +---+ | 1 | +---+ 1 row in set (0.00 sec)
補足:FROM DUALとの互換性について
なお、MySQLは他のデータベースとの互換性を考慮し、「FROM DUAL」を明示的に記述することも許容していますが、あくまで任意であり必須ではありません。
この仕組みを活用すれば、現在の日時を確認するSELECT NOW(); のような関数の実行や、簡単な計算・動作検証などを、テーブルを用意することなく手軽に行うことができます。
-
JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法
MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI
-
MySQLテーブルに多数の行を高速に挿入する最速の方法とは?
MySQLで大量の行を効率よくテーブルに挿入したい場合、INSERT INTO文を1回だけ実行し、複数の値セットをカンマ(,)で区切って指定する方法が最も高速です。INSERT文を1行ずつ繰り返し実行すると、そのたびにSQLの解析やネットワーク通信のコストが発生しますが、複数行挿入(バルクインサート)を使えばこれらのオーバーヘッドを大幅に削減できます。最速の挿入方法の構文insert into yourTableName values(NULL,yourValue1,yourValue2),(NULL,yourValue1,yourValue2),....N;このように、1つのINSERT I