標準的なSQL

標準的な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 #

idname というフィールドを持つテーブル 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 #

テーブル名 t1id = 5 のレコードの nameTakashi に変更

UPDATE t1 SET name = 'Takashi' WHERE id = 5

DELETE #

テーブル名 t1id = 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のサンプルコードはこちらです。

>> 標準的なSQLコマンドのサンプルコード #