標準的なSQL #
このページでは、HottyDBで標準的なSQLを使う方法を紹介します。 HottyDBはJDBCを通じてSQLコマンドを受け付けるので、まずはJDBCを用いてSQL文を実行する方法を解説します。
JDBCによるSQL実行例 #
Getting Startedの手順により connection
が確立しているものとします。
通常Statementの場合 #
Statement作成 #
Statement statement = connection.createStatement();
データ参照 #
String sql = "SELECT name FROM product";
ResultSet resultSet = statement.executeQuery(sql);
データ更新 #
String sql = "DELETE FROM product WHERE id = 9";
int result = statement.executeUpdate(sql);
PreparedStatementの場合 #
PreparedStatement作成 #
PreparedStatement preparedStatement = connection.prepareStatement(
"INSERT INTO product (id, name, category_id) VALUES (?, ?, ?)"
);
データ操作実行 #
preparedStatement.setInt(1, i); // id
preparedStatement.setString(2, "すごい商品"); // name
preparedStatement.setInt(3, 2); // category_id
preparedStatement.executeUpdate();
利用可能なSQLの例 #
続いて、HottyDBで利用可能なSQLコマンドについて紹介します。
HottyDBはまだα
バージョンのため、対応していないSQLコマンドが多数あります。
このセクションでは、HottyDBで使うことができるSQLコマンドをいくつか紹介します。
DDLコマンド #
CREATE TABLE #
id
と name
というフィールドを持つテーブル t1
を作成.
CREATE TABLE t1 (id INT, name VARCHAR(20))
DROP TABLE #
DROP TABLE t1
CREATE INDEX #
テーブル名 t1
の フィールド名 id
にインデックス i1
を作成する命令
CREATE INDEX i1 ON t1 (id)
DROP INDEX #
DROP INDEX i1
DMLコマンド #
INSERT #
テーブル名 t1
に (id, name)
の値を (1, 'Taro')
でINSERTする命令
INSERT INTO t1 (id, name) VALUES (1, 'Taro')
UPDATE #
テーブル名 t1
の id = 5
のレコードの name
を Takashi
に変更
UPDATE t1 SET name = 'Takashi' WHERE id = 5
DELETE #
テーブル名 t1
の id = 3
のレコードを削除
DELETE FROM t1 WHERE id = 3
SELECT文 #
通常SELECT #
アスタリスク(*)は今のところ使えません(未実装)
SELECT a, b FROM t1
WHERE句による絞り込み #
SELECT a, b FROM t1 WHERE a > 5
テーブル結合(JOIN) #
JOIN句は使えませんが、下記のようにJOINすることが可能です
SELECT a, d FROM t1, t2 WHERE t1.b = t2.b
GROUP BY #
SELECT a, SUM(b) FROM t1 GROUP BY a
ORDER BY #
SELECT a, b FROM t1 ORDER BY b DESC
サブクエリ #
SELECT a, b FROM (SELECT a, b FROM t1)
テーブルのエイリアス #
サブクエリの結果を t2
と命名し、 t3
とJOINする
SELECT a, b
FROM (SELECT a, b FROM t1) AS t2, t3
WHERE t2.a = t3.a
フィールドのエイリアス #
SELECT a, SUM(b) AS sum_b FROM t1 GROUP BY a
サンプルコード #
以上のコマンドを実際に使ってみたJavaのサンプルコードはこちらです。