コンテンツにスキップ
SQL リファレンス

SQL リファレンス

Machbase の SQL 構文を説明します。SQL コマンド、データ型、関数、演算子を参照できます。

SQL コマンドの分類

データ定義言語(DDL)

  • CREATE TABLE:Log テーブルの作成
  • CREATE TAG TABLE:Tag テーブルの作成
  • CREATE VOLATILE TABLE:Volatile テーブルの作成
  • CREATE LOOKUP TABLE:Lookup テーブルの作成
  • CREATE VIEW:ビューの作成
  • ALTER TABLE:テーブル構造の変更
  • DROP TABLE:テーブルの削除
  • DROP VIEW:ビューの削除
  • CREATE INDEX:インデックスの作成
  • DROP INDEX:インデックスの削除

データ操作言語(DML)

  • INSERT:データの挿入
  • SELECT:データの検索
  • UPDATE:データの更新(Volatile/Lookup)
  • DELETE:データの削除
  • DURATION:時刻による検索条件

データ制御言語(DCL)

  • CREATE USER:ユーザーの作成
  • ALTER USER:ユーザーの変更
  • DROP USER:ユーザーの削除
  • GRANT:権限の付与
  • REVOKE:権限の取り消し

システムコマンド

  • SHOW TABLES:テーブル一覧
  • SHOW TABLE:テーブル構造
  • SHOW VIEWS:ビュー一覧
  • SHOW USERS:ユーザー一覧
  • SHOW INDEXES:インデックス一覧
  • SHOW STORAGE:ストレージ情報
  • SHOW LICENSE:ライセンス情報

データ型

数値型

  • SHORT, INTEGER, LONG
  • FLOAT, DOUBLE

文字列型

  • CHAR(n), VARCHAR(n)

日時型

  • DATE, DATETIME

バイナリー型

  • BINARY(n)

ネットワーク型

  • IPV4, IPV6

関数

時刻関数

  • NOW, SYSDATE
  • TO_DATE(), TO_TIMESTAMP()
  • TO_CHAR()
  • INTERVAL

集計関数

  • COUNT(), SUM(), AVG()
  • MIN(), MAX()
  • STDDEV(), VARIANCE()

文字列関数

  • UPPER(), LOWER()
  • LENGTH(), SUBSTR()
  • SEARCH キーワード

数学関数

  • ABS(), CEIL(), FLOOR()
  • ROUND(), TRUNC()
  • POWER(), SQRT()
  • 関数

Machbase 固有の機能

DURATION

SELECT * FROM table DURATION n MINUTE|HOUR|DAY [BEFORE n MINUTE|HOUR|DAY];

SEARCH キーワード

SELECT * FROM table WHERE column SEARCH 'keyword';

ロールアップクエリー

-- WITH ROLLUP で作成した TAG で実行
SELECT ROLLUP('hour', 1, time) AS rtime, AVG(value)
FROM tag_table
WHERE name = 'sensor-1'
GROUP BY rtime;

時刻に基づく削除

DELETE FROM table OLDEST n ROWS;
DELETE FROM table EXCEPT n ROWS|DAY;
DELETE FROM table BEFORE datetime;

詳細なリファレンス

構文の詳細は、次を参照してください。

クイックリファレンスの例

テーブルの作成

-- 組み込みロールアップ付き Tag
CREATE TAG TABLE sensors (
    sensor_id VARCHAR(20) PRIMARY KEY,
    time DATETIME BASETIME,
    value DOUBLE SUMMARIZED
) WITH ROLLUP;

-- Log テーブル
CREATE TABLE logs (
    level VARCHAR(10),
    message VARCHAR(2000)
);

-- Volatile テーブル
CREATE VOLATILE TABLE cache (
    key VARCHAR(100) PRIMARY KEY,
    value VARCHAR(500)
);

-- Lookup テーブル
CREATE LOOKUP TABLE devices (
    device_id INTEGER PRIMARY KEY,
    name VARCHAR(100)
);

-- VIEW
CREATE VIEW active_devices AS
SELECT device_id, name
FROM devices;

データの検索

-- 最近のデータ
SELECT * FROM sensors
WHERE time BETWEEN now - 1h AND now;

-- 条件付き
SELECT * FROM logs WHERE level = 'ERROR' DURATION 1 DAY;

-- 集計
SELECT sensor_id, AVG(value) FROM sensors
WHERE time BETWEEN now - 1d AND now
GROUP BY sensor_id;

-- ロールアップ検索
SELECT ROLLUP('hour', 1, time) AS rtime, AVG(value)
FROM sensors
WHERE sensor_id = 'sensor-1'
  AND time BETWEEN now - 7d AND now
GROUP BY rtime;

ユーザーの管理

-- ユーザーを作成
CREATE USER analyst IDENTIFIED BY 'password';

-- 権限を付与
GRANT SELECT ON sensors TO analyst;

-- パスワードを変更
ALTER USER analyst IDENTIFIED BY 'newpassword';

学習の順序

  1. 基礎:基本の DDL/DML
  2. 学習:Machbase 固有の DURATIONSEARCH
  3. 習得:高度なクエリーと関数
  4. 参照:本セクションで構文を確認

関連ドキュメント

最終更新日