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,LONGFLOAT,DOUBLE
文字列型
CHAR(n),VARCHAR(n)
日時型
DATE,DATETIME
バイナリー型
BINARY(n)
ネットワーク型
IPV4,IPV6
関数
時刻関数
NOW,SYSDATETO_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';学習の順序
- 基礎:基本の DDL/DML
- 学習:Machbase 固有の
DURATION、SEARCH - 習得:高度なクエリーと関数
- 参照:本セクションで構文を確認
関連ドキュメント
最終更新日