はじめに 本書では GridDB Advanced Edition における SQL の記述方法および 注意事項について記載しています GridDB Advanced Edition をご使用になる前に 必ずお読みください なお 本書で説明する機能は GridDB Advanced Edition

Similar documents
1,.,,,., RDBM, SQL. OSS,, SQL,,.

eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索

Microsoft PowerPoint - db03-5.ppt

Microsoft PowerPoint - 講義補助資料2017.pptx

PowerPoint Presentation

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

Microsoft Word - Android_SQLite講座_画面800×1280

GMA024F0 GridDB Web API 説明書 Toshiba Digital Solutions Corporation 2017 All Rights Reserved.

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

プレポスト【問題】

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

Chapter Two

アジェンダ ORACLE MASTER Oracle Database 11g 概要 11g SQL 基礎 Ⅰ 試験紹介 ポイント解説 Copyright 2011 Oracle. All rights reserved. 2

,, create table drop table alter table

Microsoft PowerPoint pptx

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

Microsoft Word - SQL.rtf

PowerPoint プレゼンテーション

1 ex01.sql ex01.sql ; user_id from (select user_id ;) user_id * select select (3+4)*7, SIN(PI()/2) ; (1) select < > from < > ; :, * user_id user_name

Chapter Two

第 2 章 問合せの基本操作 この章では データベースから情報を検索する際に使用する SELECT コマンド および SELECT コマンドと 同時に使用する句について説明します 1. 問合せとは 2. 基本的な問合せ 3. 列の別名 4. 重複行を一意にする 5. 検索行の絞込み 6. 文字パター

sinfI2005_VBA.doc

橡j_Oracle_whitepaper.PDF

第 1 章 条件分岐 この章では 条件に応じて処理を分岐する方法について説明します 1. CASE 式で複雑な条件分岐を実現 2. 関数を使用した条件分岐 3. MERGE 文による条件に応じた DML の実行

基本サンプル

リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1

ODBC Driver for 4D Server

データベース移行ツール操作説明書 日本ブレイディ株式会社

はじめに 本書は GridDB ODBC ドライバを利用して GridDB Advanced Edition のデータベースにアクセスするア プリケーション開発者を対象としています 本書を読むためには 以下の知識が必要になります GridDB Advanced Edition についての基礎知識 W

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

基本サンプル

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

関数サンプル2

クエリの作成が楽になるUDF

PowerPoint プレゼンテーション

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

FileMaker SQL Reference

Calpont InfiniDBマルチUM同期ガイド

標準化 補足資料

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

基本サンプル

CMP2-3SQL2b.pptx

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

PowerPoint Presentation

プログラミング実習I

FileMaker 15 SQL リファレンスガイド

関数サンプル2

JavaScriptプログラミング入門 2.JavaScriptの概要

SQLite データベース IS04 組み込み 1

PowerPoint プレゼンテーション

Microsoft Word - JDBC検証 docx

Web型iEDIシステム操作説明書

tkk0408nari

日本オラクル株式会社

結合演算 ( 復習 ) データベース論 (9) R 社員番号 氏名麻生太郎安部晋三与謝野馨森喜朗 部門経理課営業課総務課営業課 S 部門経理課営業課総務課 電話 問合せ言語と SQL(2) R S 社員番号

Microsoft Word - no103.docx

SQL (2) データベース論 Ⅰ 第 7 回 URL 作成者末次文雄 C

PGECons技術ドキュメントテンプレート Ver.3

PowerPoint プレゼンテーション

Oracle Database Connect 2017 JPOUG

データベースS

データベースアクセス

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

関数サンプル1

講習No.8

n n n ( ) n Oracle 16 PostgreSQL 3 MySQL

ポインタ変数

PA4

セットアップカード

Microsoft PowerPoint - CproNt02.ppt [互換モード]

_02-4.ppt

Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba Sequel のすすめ - 私が SQL を嫌いな理由 Powered by Rabbit 2.0.7

Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介

7-1- 基 RDB に関する基礎知識 1 独立行政法人情報処理推進機構

目次 1. データモデルと SQL( 復習 ) 2.SQL の特徴 3.SQL の文法 4. データ定義 ( 基本編 ) 5.DB 管理 ( 基本編 ) 6. データ操作 ( 基本編 ) 7. レポート課題 8. 参考書ほか

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10

Copyright c 2008 Zhenjiang Hu, All Right Reserved.

3 - 正しい SQL ( 方言を排除した SQL 文の記述方法 )

データベース工学 2011年度資料

はじめに コースの概要と目的条件分岐の方法や複雑な集計の手法など SQL のコーディングの幅を広げるためのテクニックについて説明します また パフォーマンスを考慮した記述方法や正しい結果を取得するための記述方法などについても あわせて説明します 本コースでは 実践的な SQL の記述手法を広く浅く紹

PGECons技術ドキュメントテンプレート Ver.3

FormPat インポート設定ガイド

PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 :55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1

ExcelVBA


はじめに コースの概要と目的 Oracle をより効率的に使用するための SQL のチューニング方法について説明します また 索引の有無 SQL の 記述方法がパフォーマンスにどのように影響するのかを実習を通して理解します 受講対象者 アプリケーション開発者 / データベース管理者の方 前提条件 S

Taro php.jtdc

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

Oracle データベースと PSQL v11 を比較する 株式会社エージーテック 2014 年 9 月 30 日

Oracle Liteデータベースの理解

NEC COBOL SQL アクセス Server Runtime V1.0 COBOL SQL アクセス Server Runtime V1.0 (1 年間保守付 ) COBOL SQL アクセス Server Runtime V1.0 (1 年間時間延長保守付 ) セットアップカード SL438

橡実践Oracle Objects for OLE


CodeGear Developer Camp

第 5 章 結合 結合のパフォーマンスに影響を与える結合の種類と 表の結合順序について内部動作を交えて 説明します 1. 結合処理のチューニング概要 2. 結合の種類 3. 結合順序 4. 結合処理のチューニングポイント 5. 結合関連のヒント

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt

Transcription:

GMA022D0 GridDB Advanced Edition SQL リファレンス Toshiba Solutions Corporation 2016 All Rights Reserved.

はじめに 本書では GridDB Advanced Edition における SQL の記述方法および 注意事項について記載しています GridDB Advanced Edition をご使用になる前に 必ずお読みください なお 本書で説明する機能は GridDB Advanced Edition ライセンスを保有するユーザのみがご利用いただけます 商標 GridDB は 東芝ソリューション株式会社の登録商標です Oracle と Java は Oracle Corporation 及びその子会社 関連会社の米国及びその他の国における登録商標です 文中の社名 商品名等は各社の商標または登録商標である場合があります Linux は Linus Torvalds 氏の米国およびその他の国における登録商標または商標です Red Hat は米国およびその他の国における Red Hat, Inc. の登録商標もしくは商標です その他製品名は それぞれの所有者の商標または登録商標です II

目次 1. GridDB Advanced Edition とは...1 2. SQL 記述...2 2.1 使用できる操作... 2 2.2 データ型... 2 2.2.1 データ格納に使用する型と NULL の格納... 2 2.2.2 テーブル作成時にカラム型として記述可能な表現... 3 2.2.3 コンテナをテーブルとしてアクセスするときのデータ型と値の扱い... 5 2.3 ユーザとデータベース... 5 3. GridDB AE でサポートされる SQL 文...6 3.1 データ定義言語 (DDL)... 6 3.1.1 CREATE DATABASE... 6 3.1.2 CREATE TABLE... 7 3.1.3 CREATE INDEX... 7 3.1.4 CREATE USER... 8 3.1.5 DROP DATABASE... 8 3.1.6 DROP TABLE... 8 3.1.7 DROP INDEX... 8 3.1.8 DROP USER... 9 3.1.9 SET PASSWORD... 9 3.2 データ制御言語 (DCL)... 9 3.2.1 GRANT 文... 9 3.2.2 REVOKE 文... 9 3.3 データ操作言語 (DML)... 9 3.3.1 INSERT 文... 9 3.3.2 DELETE 文... 9 3.3.3 UPDATE 文... 10 3.3.4 SELECT 文... 10 3.4 句... 10 3.4.1 FROM 句... 10 3.4.2 GROUP BY 句... 10 3.4.3 HAVING 句... 11 3.4.4 ORDER BY 句... 11 3.4.5 WHERE 句... 11 3.4.6 LIMIT 句 /OFFSET 句... 11 3.5 述語... 11 3.5.1 BETWEEN 述語... 11 3.5.2 IN 述語... 12 III

3.5.3 LIKE 述語... 12 3.6 Comment... 12 3.7 関数... 12 A 参考文献... 12 B 付録 : 予約語... 12 IV

1. GridDB Advanced Edition とは GridDB Advanced Edition では GridDB のデータに SQL でアクセスできるインターフェース (NewSQL インタフェース ) を提供します 本書では GridDB Advanced Edition( 以降 GridDB AE と記載します ) のサポートするデータベースにアクセスするための NewSQL インタフェースの SQL について説明します NoSQL インタフェースとは異なるインタフェースですのでご注意ください なお JDBC ドライバの使用方法は GridDB Advanced Edition JDBC ドライバ説明書 を参照してください 1

2. SQL 記述 本章では NewSQL インタフェースで使用できる SQL の記述について示します 2.1 使用できる操作 本バージョンでは SELECT 文の他 CREATE TABLE 等の DDL(Data Definition Language データ定義言語 ) や INSERT/DELETE 文などをサポートしています 詳細は第 3 章を参照して下さい 2.2 データ型 2.2.1 データ格納に使用する型と NULL の格納 NewSQL インタフェースでデータの格納に使用する型を表 1 に示します この型名はテーブル作成時にカラム型として記述できます NoSQL インタフェースのクライアントでは INTEGER 型は 32 ビットの整数値ですが NewSQL インタフェースの INTEGER 型は 64 ビットの整数値であり 格納できる値の範囲が異なります 表 1: データの格納に使用する型と NULL の扱い データ型 内容詳細 NULL の扱い BOOL 型 True/False - BYTE 型 -2 7 から 2 7-1 (8 ビット ) の整数値 0 SHORT 型 -2 15 から 2 15-1 (16 ビット ) の整数値 0 INTEGER 型 -2 31 から 2 31-1 (32 ビット ) の整数値 0 LONG 型 -2 63 から 2 63-1 (64 ビット ) の整数値 0 FLOAT 型 倍精度型 (64 ビット ) IEEE754 で定められた浮動小数点数 0.0 DOUBLE 型 倍精度型 (64 ビット ) IEEE754 で定められた浮動小数点数 0.0 TimeStamp 型 STRING 型 BLOB 型 日付と時刻の組 日付のみ 時刻のみの値を格納 取得する場合 時刻 00:00:00 または 日付 1970-01-01 が指定されたとみなす Unicode コードポイントを文字とする 任意個数の文字の列より構成されるテキスト文字 画像や音声などのバイナリデータのためのデータ型 入力したままので保存されるラージオブジェクト 文字 x あるいは X をつけて X'23AB' のような 16 進表現もできます - サイズ 0 のテキスト サイズ 0 のデータ また 本バージョンではテーブルに NULL を格納することができません NULL を格納しようとした場合には 表 1 に示す値が格納されます ただし SQL 式での演算では NULL を使用することができます これにより IS NULL などの演算子をテーブルに格納された値に対して使用すると SQL 仕様とは異なる結果となる場合がありますのでご注意下さい 2

2.2.2 テーブル作成時にカラム型として記述可能な表現 NewSQL インタフェースでは テーブル作成時にカラム型として記述された型名について 2.2.1 で列挙した型名と一致しなくても ルールに従って解釈しデータの格納に使用する型を決定します 以下のルールを上から順にチェックし 合致したルールによってデータ格納に使用する型を決定します ルールのチェック時には記述した型名およびルールでチェックする文字列の大文字小文字は区別しません 複数のルールに合致した場合はより上にあるルールが優先されます どのルールにも当てはまらない場合はエラーとなりテーブル作成に失敗します ルール No. テーブル作成時 カラム型として記述した文字列作成するテーブルのカラム型 1 2.2.1 に列挙した型名 テーブル作成時に指定された型に従う 2 "REAL" DOUBLE 型 3 "TINYINT" から始まる型名 BYTE 型 4 "SMALLINT" から始まる型名 SHORT 型 5 "BIGINT" から始まる型名 LONG 型 6 "INT" を含む型名 INTEGER 型 7 "CHAR", "CLOB", "TEXT" のどれかを含む型名 STRING 型 8 "BLOB" を含む型名 BLOB 型 9 "REAL", "DOUB" のどれかを含む型名 DOUBLE 型 10 "FLOA" を含む型名 FLOAT 型 上記ルールによるデータ型決定の例を示します 記述した型名が "BIGINTEGER" LONG 型 ( ルール 5) 記述した型名が "LONG" LONG 型 ( ルール 1) 記述した型名が "TINYINT" BYTE 型 ( ルール 3) 記述した型名が "FLOAT" FLOAT 型 ( ルール 1) 記述した型名が "VARCHAR" TEXT 型 ( ルール 7) 記述した型名が "CHARINT" LONG 型 ( ルール 6) 記述した型名が "BIGBLOB" BLOB 型 ( ルール 8) 記述した型名が "FLOATDOUB" DOUBLE 型 ( ルール 9) 記述した型名が "INTREAL" LONG 型 ( ルール 6) 記述した型名が "FLOATINGPOINT" LONG 型 ( ルール 6) 記述した型名が "DECIMAL" エラー 3

NoSQL インタフェースのクライアントにおけるデータ型と同等の型を NewSQL インタフェースで使用する場合は以下のように記述してください ただし一部同等の型が存在せず 使用できないものがあります 表 2:NoSQL インタフェースのクライアントのデータ型と同等のカラム型記述 NoSQL インタフェースのデータ型 同等の型となる NewSQL インタフェースのカラム型記述 STRING( 文字列型 ) "STRING" または "String 型となる表現 " BOOL( ブール型 ) "BOOL" BYTE(8 ビット整数型 ) "BYTE" または "BYTE 型となる表現 " SHORT(16 ビット整数型 ) "SHORT" または "SHOR 型となる表現 " INTEGER(32 ビット整数型 ) INTEGER LONG(64 ビット整数型 ) "LONG" または "LONG 型となる表現 " FLOAT(32 ビット単精度浮動小数点数型 ) "FLOAT" または "FLOAT 型となる表現 " DOUBLE(64 ビット倍精度浮動小数点数型 ) "DOUBLE" または "DOUBLE 型となる表現 " TIMESTAMP( 時刻型 ) "TIMESTAMP" GEOMETRY( 空間型 ) 存在しません ( 使用できません ) BLOB 型 "BLOB" または "BLOB 型となる表現 " 配列型 存在しません ( 使用できません ) 4

2.2.3 コンテナをテーブルとしてアクセスするときのデータ型と値の扱い NoSQL インタフェースのクライアントで作成したコンテナを NewSQL インタフェースでテーブルとしてアクセスする場合のコンテナのカラム型および値の扱いを以下に示します 表 3: コンテナのデータ型と値の NewSQL インタフェースでの扱い コンテナのカラム型 NewSQL にマッピングされるデータ型 値 STRING 型 STRING 型 元の値と同一 BOOL 型 BOOL 型 元の値と同一 BYTE 型 BYTE 型 元の値と同一 SHORT 型 SHORT 型 元の値と同一 INTEGER 型 INTEGER 型 元の値と同一 LONG 型 LONG 型 元の値と同一 FLOAT 型 FLOAT 型 元の値と同一 DOUBLE 型 DOUBLE 型 元の値と同一 TIMESTAMP 型 TIMESTAMP 型 元の値と同一 GEOMETRY 型 STRING 型 全ての値が NULL BLOB 型 BLOB 型 元の値と同一 配列型 STRING 型 全ての値が NULL 2.3 ユーザとデータベース GridDB のユーザには 管理ユーザと一般ユーザの 2 種類があり 利用できる機能に違いがあります また データベースを作成することで 利用ユーザ単位にアクセスを分離することができます ユーザ データベースの詳細は テクニカルリファレンス をご参照ください さらに NewSQL インタフェースでデータを登録 検索するには データを格納するテーブル ( 表 ) を作成する必要があります 登録されるデータは行と呼び 1 個以上の列データから構成されます データベース名 列名および一般ユーザ名は 1 文字以上の ASCII 英数字ならびにアンダースコア _ の列で構成されます ただし 先頭の文字には数字を指定できません テーブル名も同様ですが ノードアフィニティ機能向けに @ の文字も指定できます ノードアフィニティ機能については テクニカルリファレンス をご参照ください なお テーブル名 列名は大文字 小文字の区別がありません 一方 データベース名と一般ユーザ名は命名時の大文字 小文字は保持されますが 大文字小文字同一視した場合に同一名となるデータベース 一般ユーザは作成できません 5

3. GridDB AE でサポートされる SQL 文 サポートされる SQL 文は 表 4 の通りです 表 4: サポートされる SQL 文一覧 コマンド CREATE DATABASE CREATE TABLE CREATE INDEX CREATE USER DROP DATABASE DROP TABLE DROP INDEX DROP USER SET PASSWORD GRANT REVOKE INSERT DELETE UPDATE SELECT Comment 概要データベースを作成する テーブルを作成する 索引を作成する 一般ユーザを作成する データベースを削除する テーブルを削除する 索引を削除する 一般ユーザを削除する 一般ユーザのパスワードを変更する 一般ユーザにデータベースへのアクセス権を設定する 一般ユーザからデータベースへのアクセス権を削除する テーブルに行を挿入する テーブルから行を削除する テーブルにある行を更新する データを取得する コメントを表記する 本章では SQL 文の分類ごとに説明を行います 3.1 データ定義言語 (DDL) CREATE 文 DROP 文などから構成されます 3.1.1 CREATE DATABASE データベースを作成します CREATE DATABASE データベース名 ; 管理ユーザのみが実行可能です public information_schema と同一の名前のデータベースは GridDB の内部用に予約済みの ため作成できません 既に同一の名前のデータベースが存在した場合は何も変更しません データベース名に使用できる文字は ASCII の英数字とアンダースコア ( _ ) のみです ASCII の大文字と小文字は同一視されます 先頭には数字を使用できません 6

3.1.2 CREATE TABLE テーブルを作成します CREATE TABLE [IF NOT EXISTS] テーブル名 ( 列定義 1 [, 列定義 2 ] ) [PARTITION BY HASH 列名 PARTITIONS 分割数 ]; 列定義 : 列名型名 [ 列制約 ] 列制約 : [PRIMARY KEY] ( 先頭の列のみ指定可 ) IF NOT EXISTS が指定された場合 指定したテーブル名と同じ名前のテーブルが存在しないときの み作成します 列定義 では 列名と型名の指定が必須です 指定可能な型名は 2.2 データ型を参照してください 列制約 は 先頭の列の [PRIMARY KEY] のみサポートしています PARTITION BY HASH 列名 PARTITIONS 分割数 が指定された場合 指定した列の値によりデータパ ーティショニングされたテーブル ( ラージテーブル ) を作成します 列名 に指定する列は String 型か INTEGER 型である必要があります [PRIMARY KEY] を指定した列がある場合 列名 はそれと同一である必要があります 分割数 は 2 以上かつ 10000 以下である必要があります テーブル名 列名に使用できる文字は ASCII の英数字とアンダースコア ( _ ) のみです ASCII の大文字と小文字は同一視されます テーブル名 列名の先頭には数字を使用できません テーブル名に @ ヒント情報 を付けることでノードアフィニティ機能を使うことができます ノ ードアフィニティ機能については テクニカルリファレンス をご参照ください 通常のテーブルは NoSQL の単一のコレクションとして作成され データパーティショニングされた テーブル ( ラージテーブル ) は NoSQL の複数のコレクションとして作成されます テーブルを NoSQL の時系列として作成することはできません 3.1.3 CREATE INDEX 索引を作成します CREATE INDEX [IF NOT EXISTS] インデックス名 ON テーブル名 ( 索引をつける列名 ); 既に存在する索引と同じ名前の索引は作成できません 処理対象のテーブルにおいて実行中のトランザクションが存在する場合 それらの終了を待機して から作成を行います インデックス名に使用できる文字は ASCII の英数字とアンダースコア ( _ ) のみです ASCII の大文字と小文字は同一視されます 先頭には数字を使用できません 7

3.1.4 CREATE USER 一般ユーザを作成します CREATE USER ユーザ名 IDENTIFIED BY パスワード文字列 ; 管理ユーザのみが実行可能です インストール時に登録済の管理ユーザ (admin および system) と同一の名前のユーザは作成できませ ん ユーザ名に使用できる文字は ASCII の英数字とアンダースコア ( _ ) のみです ASCII の大文 字と小文字は同一視されます 先頭には数字を使用できません パスワード文字列に使用できる文字は ASCII 文字のみです 大文字と小文字は区別されます gs# で始まるテーブル information_schema と同名のテーブルは作成できません 3.1.5 DROP DATABASE データベースを削除します DROP DATABASE データベース名 ; 管理ユーザのみが実行可能です public information_schema という名前のデータベース 及び gs# で始まる名前のデー タベースは GridDB の内部用に予約済みのため削除できません ユーザが作成したテーブルが存在するデータベースは削除できません 3.1.6 DROP TABLE テーブルを削除します DROP TABLE テーブル名 ; 処理対象のテーブルにおいて実行中のトランザクションが存在する場合 それらの終了を待機して から削除を行います 3.1.7 DROP INDEX 指定された索引を削除します DROP INDEX [IF EXISTS] インデックス名 ; IF EXISTS が指定された場合 指定した名前の索引が存在しない場合は何も変更しません 処理対象のテーブルにおいて実行中のトランザクションが存在する場合 それらの終了を待機して から削除を行います 8

3.1.8 DROP USER 一般ユーザを削除します DROP USER ユーザ名 ; 管理ユーザのみが実行可能です 3.1.9 SET PASSWORD 一般ユーザのパスワードを変更します SET PASSWORD [FOR ユーザ名 ] = パスワード文字列 ; 管理ユーザは全ての一般ユーザのパスワードを変更可能です 一般ユーザは自身のパスワードのみ変更可能です 3.2 データ制御言語 (DCL) 3.2.1 GRANT 文 一般ユーザにデータベースへのアクセス権を付与します GRANT ALL ON データベース名 TO ユーザ名 ; 管理ユーザのみが実行可能です 1 つのデータベースにアクセス可能な一般ユーザは 1 ユーザに制限されています 3.2.2 REVOKE 文 一般ユーザからデータベースへのアクセス権を剥奪します REVOKE ALL ON データベース名 FROM ユーザ名 ; 管理ユーザのみが実行可能です 3.3 データ操作言語 (DML) 3.3.1 INSERT 文 テーブルに行を登録します {INSERT INSERT OR REPLACE REPLACE} INTO テーブル名 {VALUES ( { 数値 1 文字列 1} [, { 数値 2 文字列 2} ] ), SELECT 文 }; 3.3.2 DELETE 文 テーブルから行を削除します 9

DELETE FROM テーブル名 [WHERE 抽出条件 ]; 3.3.3 UPDATE 文 テーブルに存在する行を更新します UPDATE テーブル名 SET 列名 1 = 式 1 [, 列名 2 = 式 2 ] [WHERE 抽出条件 ]; パーティショニングを設定した場合 UPDATE を使ってパーティションキーになっている項目を 別の値に更新することは出来ません このような場合は DELETE 後に INSERT を行ってください ( 例 ) create table tab(a integer, b string) partition by hash a partitions 5; NG : update tab set a = a * 2; [240015:SQL_COMPILE_PARTITIONING_KEY_NOT_UPDATABLE] Partitioning column='a' is not datable on executing statement OK: update tab set b = XXX ; 3.3.4 SELECT 文 データを取得します SELECT [{ALL DISTINCT}] 列名 1 [, 列名 2 ] [FROM 句 ] [WHERE 句 ] [GROUP BY 句 [HAVING 句 ]] [ORDER BY 句 ] [LIMIT 句 [OFFSET 句 ]]; FROM 句 WHERE 句など様々な句から構成されます 3.4 句 3.4.1 FROM 句 SELECT を行うテーブル名を指定します FROM テーブル名 1 [, テーブル名 2 ] 3.4.2 GROUP BY 句 前に指定された句の結果の中で 指定された列で同じ値を持った行をグループ化します GROUP BY 列名 1 [, 列名 2 ] 10

3.4.3 HAVING 句 GROUP BY 句によりグループ化された情報に対して探索条件で絞り込みを行います GROUP BY 句は省略できません HAVING 探索条件 3.4.4 ORDER BY 句 検索結果の並べ替え ( ソート ) を行います ORDER BY 列名 1 [{ASC DESC}] [, 列名 2 [{ASC DESC}] ] 3.4.5 WHERE 句 先行する FROM 句の結果に 探索条件を適用します WHERE 探索条件 探索条件 探索条件は述語や SELECT 文などが使用できます 3.4.6 LIMIT 句 /OFFSET 句 指定した位置から指定した件数分のデータを取り出します LIMIT 値 1 OFFSET 値 2 値 1 は取り出すデータ件数を表し 値 2 は取り出すデータ位置を表します 3.5 述語 比較演算子 (= > など ) を使った比較述語以外に BETWEEN 述語 IN 述語 LIKE 述語を使うことができます 3.5.1 BETWEEN 述語 指定した範囲の値を取り出します 式 1 [NOT] BETWEEN 式 2 AND 式 3 BETWEEN 述語が真となるのは 次の条件のときです 式 2 式 1 式 3 NOT を指定した場合は 条件を満足しない行に対して この述語は真になります 11

3.5.2 IN 述語 条件を満たす集合を取り出します 式 1 [NOT] IN ( 式 2 [, 式 3 ] ) 3.5.3 LIKE 述語 パターン一致比較を行います 式 [NOT] LIKE 文字パターン [ESCAPE エスケープ文字 ] 文字パターンは % や _ の特殊文字を使って表現します %: 任意の文字列 _: 任意の文字 なお % や _ を通常の文字として使いたい場合には エスケープ文字を ESCAPE エスケープ文字 で指定した上で エスケープ文字を % や _ の前に記述してください 3.6 Comment SQL 文中にコメントを書くことができます 書式は --( ハイフンを 2 つ ) の後ろに記述するか /* */ で囲みます コメントの後ろには改行が必要です 3.7 関数 GridDB AE の SQL 文には以下の関数が用意されています AVG GROUP_CONCAT SUM TOTAL EXISTS ABS CHAR COALESCE IFNULL INSTR HEX LENGTH LIKE LOWER LTRIM MAX MIN NULLIF PRINTF QUOTE RANDOM RANDOMBLOB REPLACE ROUND RTRIM SUBSTR TRIM TYPEOF UNICODE UPPER ZEROBLOB NOW TIMESTAMP TO_TIMESTAMP_MS TO_EPOCH_MS EXTRACT TIMESTAMPADD TIMESTAMPDIFF A 参考文献 日本工業標準調査会ウェブサイト, http://www.jisc.go.jp/, JISX3005-2 データベース言語 SQL 第 2 部 : 基本機能 (SQL/Foundation) B 付録 : 予約語 GridDB AE の SQL では 以下の単語が予約語として定義されています ABORT ACTION AFTER ALL ANALYZE AND AS ASC BEGIN BETWEEN BY CASE CAST COLLATE COLUMN COMMIT CONFLICT CREATE CROSS DATABASE DAY DELETE DESC DISTINCT DROP ELSE 12

END ESCAPE EXCEPT EXCLUSIVE EXISTS EXPLAIN EXTRACT FALSE FOR FROM GLOB GRANT GROUP HASH HAVING HOUR IDENTIFIED IF IN INDEX INITIALLY INNER INSERT INSTEAD INTERSECT INTO IS ISNULL JOIN KEY LEFT LIKE LIMIT MATCH MILLISECOND MINUTE MONTH NATURAL NO NOT NOTNULL NULL OF OFFSET ON OR ORDER OUTER PARTITION PARTITIONS PASSWORD PLAN PRAGMA PRIMARY QUERY RAISE REGEXP RELEASE REPLACE RESTRICT REVOKE RIGHT ROLLBACK ROW SECOND SELECT SET TABLE THEN TIMESTAMPADD TIMESTAMPDIFF TO TRANSACTION TRUE UNION UPDATE USER USING VALUES VIEW VIRTUAL WHEN WHERE WITHOUT XOR YEAR 13