クエリ言語リファレンス(バージョン 0.7)

GoogleVisualization API のクエリ言語を使用すると、データソースに対するクエリでさまざまなデータ操作を行うことができます。

目次

はじめに

通常、ビジュアリゼーションには特定の形式のデータが必要です。たとえば、円グラフではデータがテキストラベルと数値の 2 つの列である場合があります。データソース内のデータは、この構造と完全には一致しない場合があります。 たとえば、データソースに 3 つ以上の列がある場合や、列の順序が円グラフで想定されている順序と異なる場合があります。

クエリ言語を使用すると、データ操作とフォーマットのリクエストをデータソースに送信し、返されたデータ構造とコンテンツが想定される構造と一致するようにできます。

クエリ言語の構文は SQL に似ています。SQL に精通しているデベロッパーであれば、このクエリ言語をすぐに習得して使用できます。ウェブ上に多くの SQL チュートリアルがあります。このクエリ言語と SQL にはいくつかの違いがあります。詳細については、syntaxセクションをご覧ください。

クエリ言語を実装するために、または実装する場合、データソース言語のすべての機能を実装するために、データソースは必要ありません。他に信じられない理由がない限り、この言語の全機能の実装をデータソースに頼ることはしないでください。

クエリ言語の使用

クエリ文字列をデータソース リクエストに添付するには、JavaScript コード内からクエリ文字列を設定する方法と、データソース URL のパラメータとしてクエリ文字列を設定するという 2 つの方法があります。リクエストにクエリ文字列が含まれていない場合、データソースのデフォルトの動作では、デフォルトの行/列の順序と形式に従ってすべての行と列が返されます。これを変更するには、データソースへのリクエストにクエリ文字列を含めます。

JavaScript からクエリを設定する

JavaScript コード内からクエリ文字列を設定するには、google.visualization.Query クラスの setQuery メソッドを呼び出します。

var query = new google.visualization.Query(DATA_SOURCE_URL);
query.setQuery('select dept, sum(salary) group by dept');
query.send(handleQueryResponse);

データソース URL でクエリを設定する

tq パラメータを使用して、データソースの URL にクエリ文字列を追加できます。JavaScript ではなく URL パラメータでクエリを設定すると、他のデベロッパーが作成した可視化を簡単に使用できます。また、クエリのカスタマイズも可能です。

クエリ文字列は、URL パラメータとして適切にエンコードする必要があります。URL をエンコードするには、JavaScript の encodeURIComponent 関数を使用します。また、このセクションの最後にあるエンコード ツールを使用して、手動でエンコードすることもできます。

例:

Google スプレッドシートの次のクエリ文字列について考えてみましょう。(スプレッドシートの列 ID は常に文字です。公開されるスプレッドシートに表示される列見出しのテキストは ID ではなくラベルです)。クエリ文字列には、ラベルではなく ID を使用する必要があります)。

select A, sum(B) group by A

エンコードすると、このクエリは次のようになります。

select%20A%2C%20sum(B)%20group%20by%20A

次のようなスプレッドシートの URL とします。

https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4

スプレッドシートの URL に /gviz/tq?tq=YOUR_QUERY_STRING を追加して、最終的なクエリ文字列を取得します。

https://docs.google.com/a/google.com/spreadsheets/d/1r8_mfnZAvTFmT02JHi1XgOwn_-sLCR9XgmR8wEQ4uW4/gviz/tq?tq=select%A%2C%20sum(B)%20group%20by%20A

クエリ文字列をエンコードまたはデコードするには、以下のツールを使用します。

注: 非公開のスプレッドシート データにアクセスするには、OAuth を使用して明示的な認証情報を渡す必要があります。詳細については、Google スプレッドシート: 承認セクションをご覧ください。

言語の構文

概要

GoogleVisualization API のクエリ言語の構文は、SQL 構文に類似したように設計されています。ただし、これは SQL のサブセットであり、学習が必要な独自の機能がいくつかあります。SQL の知識があれば、それほど難しくないでしょう。

データテーブル

このドキュメントでは、データテーブルという用語をクエリの結果セットを指すために使用します。データテーブルは行と列で構成されます。データテーブルの各列には次のプロパティがあります。

  • 識別子(または列 ID)。クエリ内の列を参照するために使用されます。クエリでは、識別子でのみ、ラベルで列を参照しないでください。ヒント: スペースを含む ID は使用しないでください。スペースは管理が難しく、コード内に小さなミスが見つかりにくくなります。また、スペースを含む ID はバッククォートで囲む必要があります。
  • ラベル。一般的にエンドユーザーに表示される string。たとえば、円グラフでは凡例として使用したり、表では列見出しとして使用したりできます。
  • データ型。サポートされているデータ型は stringnumberbooleandatedatetimetimeofday です。列のすべての値は、列の型と一致するデータ型か、null 値になります。これらの型は、このページのリテラル セクションで説明されている JavaScript 型と類似していますが、同一ではありません。
  • フォーマット パターン。データソースでは、列の一部またはすべての形式パターンを定義できます。このパターンをオーバーライドするには、format 句を追加します。

すべての例で使用されている表:

このセクション全体を通して、すべてのクエリの例は次の表を参照します。列ヘッダーは列識別子です。

名前
string
部門
string
lunchTime
timeofday
給与
number
hireDate
date
年齢
number
isSenior
boolean
seniorityStartTime
datetime
Johnエング12:00:00
1000
2005-03-1935true2007 年 12 月 2 日 15:56:00
Daveエング12:00:00
500
2006-04-1927falsenull
サリーエング13:00:00
600
2005-10-1030falsenull
Benセールス12:00:00
400
2002-10-1032true2005 年 3 月 9 日 12:30:00
ダナセールス12:00:00
350
2004-09-0825falsenull
Mikeマーケティング13:00:00
800
2005-01-1024true2007 年 12 月 30 日 14:40:00

言語句

クエリ言語の構文は、次の句で構成されます。各句は 1 つまたは 2 つのキーワードで始まります。すべての句は省略可能です。句はスペースで区切ります。句の順序は次のようにする必要があります。

使用量
select 返される列とその順序を選択します。省略すると、テーブルのすべての列がデフォルトの順序で返されます。
where 条件に一致する行のみを返します。省略すると、すべての行が返されます。
group by 複数の行にわたる値を集計します。
pivot 列内の個別の値を新しい列に変換します。
order by 列の値で行を並べ替えます。
limit 返される行数を制限します。
offset 指定された数の最初の行をスキップします。
label 列ラベルを設定します。
format 指定された書式パターンを使用して、特定の列の値を書式設定します。
options 追加オプションを設定します。
from from 句が言語から削除されました。

 

選択

select 句は、返される列とその順序を指定するために使用されます。この句が指定されていない場合、または select * が使用されている場合は、データソース テーブルのすべての列が元の順序で返されます。列は(ラベルではなく)識別子によって参照されます。たとえば Google スプレッドシートの場合、列識別子は 1 ~ 2 文字の列文字(A、B、C、...)です。

select 句の項目は、列識別子か、集計関数スカラー関数演算子の出力です。

例:

select *
select dept, salary
select max(salary)

次の例では、スペース(メールアドレス)を含む列 ID または予約語(日付)を含む列 ID を参照するためにバッククォートが使用されています。

select `email address`, name, `date`

サンプル テーブルに対して次のクエリを実行します。

select lunchTime, name

次のレスポンスを返します。

lunchTime name
12:00:00John
12:00:00Dave
13:00:00サリー
12:00:00Ben
12:00:00ダナ
13:00:00Mike

場所

where 句は、指定した条件に一致する行のみを返すために使用されます。

単純な比較演算子は <=, <, >, >=, =, !=, <> です。比較演算子 != <> はどちらも、等しくないことを意味します。文字列は辞書順の値によって比較されます。ほとんどのコンピュータ言語では、等式は == ではなく = で示されます。null との比較を行うには、is null または is not null を使用します。

論理演算子 andornot を使用すると、複数の条件を結合できます。括弧を使用して明示的な優先順位を定義できます。

Where 句では、より複雑な文字列比較演算子もサポートされています。これらの演算子は 2 つの文字列を引数として受け取り、文字列以外の引数(日付や数値など)は比較前に文字列に変換されます。文字列のマッチングでは大文字と小文字が区別されます(この問題を回避するには、upper() または lower()スカラー関数を使用します)。

  • contains - 部分文字列の一致。whole contains part は、part全体内のいずれかの場合、true。例: where name contains 'John' は「John」、「John Adams」、「Long John Silver」には一致しますが、「john adams」には一致しません。
  • starts with - 接頭辞の一致。value starts with prefix は、prefixvalue の先頭にある場合に true になります。例: where dept starts with 'engineering' は「engineering」と「engineering manager」に一致します。where dept starts with 'e' は、「engineering」、「eng」、「e」に一致します。
  • ends with - 接尾辞の一致。 ends with 接尾辞value の最後にある場合、suffix は true です。例: where role ends with 'y' は、「cowboy」、「boy」、「y」に一致します。
  • matches -(preg)正規表現の一致。haystack matches needle は、needle の正規表現が haystack と一致する場合に true になります。例: where country matches '.*ia' はインドとナイジェリアには一致しますが、インディアナ州には一致しません。これはグローバル検索ではないため、where country matches 'an' は「カナダ」には一致しません。
  • like - 2 つのワイルドカードをサポートするテキスト検索。% は任意の種類の 0 個以上の文字に一致し、_(アンダースコア)は任意の 1 文字に一致します。これは SQL の LIKE 演算子に似ています。例: where name like fre% は、「fre」、「fred」、「freddy」に一致します。

例:

where salary >= 600
where dept != 'Eng' and date '2005-01-21' < hireDate
where (dept<>'Eng' and isSenior=true) or (dept='Sales') or seniorityStartTime is null

サンプル テーブルに対して次のクエリを実行します。

select name where salary > 700

次のレスポンスを返します。

name
John
Mike

グループ条件

group by 句は、行をまたいで値を集計するために使用されます。group-by 句の値の組み合わせごとに 1 行が作成されます。データは、order by 句で特に指定しない限り、グループ化列によって自動的に並べ替えられます。

注: group by 句を使用する場合は、select 句にリストされるすべての列group by 句にリストするか、集計関数でラップする必要があります。

例:

select dept, max(salary) group by dept

サンプル テーブルに対して次のクエリを実行します。

select lunchTime, avg(salary), count(age) group by isSenior,lunchTime

次のレスポンスを返します。

lunchTime 平均給与 年齢
12:00:00 425 2
13:00:00 600 1
12:00:00 700 2
13:00:00 800 1

ピボット

pivot 句は、列内の個別の値を新しい列に変換するために使用されます。たとえば、「year」列でピボットすると、元のテーブルに含まれている個々の年ごとに列を持つテーブルが生成されます。これは、たとえば、折れ線グラフの可視化で各列を個別の線として描画する場合に役立ちます。年ごとに別々の線を引く場合で、「year」が元のテーブルの列の 1 つである場合は、ピボット オペレーションを使用して必要なデータ変換を行うことをおすすめします。

注: pivot 句を使用する場合は、select 句にリストされるすべての列group by 句にリストするか、集計関数でラップする必要があります。

複数の行でピボット列の値が同じ場合があるため、ピボットは集計を意味します。group by を使用せずに pivot を使用すると、結果テーブルに含まれる行は 1 行のみになります。たとえば、サンプル テーブルに対して次のクエリを実行します。

select sum(salary) pivot dept

次のレスポンスを返します。

エンジニアの給与合計 マーケティングの給与 給与合計
2100 800 750

これは、2,100 が Eng 部門の給与、マーケティング部門の給与 800 などの合計であるためです。

pivotgroup by とともに使用すると、関連する行と関連列の集計結果が各セルに格納されるテーブルが作成されるため、さらに便利です。たとえば、サンプル テーブルに対して次のクエリを実行します。

select dept, sum(salary)
  group by dept
  pivot lunchTime

次のレスポンスを返します。

dept 12:00:00 給与の総額 13:00:00 給与の総額
エング 1500 600
マーケティング null 800
セールス 750 null

pivot 列と group by 列を切り替えて、この表を「反転」させることもできます。サンプル テーブルに対して次のクエリを実行します。

select lunchTime, sum(salary)
  group by lunchTime
  pivot dept

次のレスポンスを返します。

lunchTime エンジニアの給与合計 マーケティングの給与 給与合計
12:00:00 1500 null 750
13:00:00 600 800 null

pivot 句で複数の列を使用することもできます。このような場合、レスポンス テーブルの列は、元のテーブルに存在する列の値の一意のすべての組み合わせで構成されます。たとえば、サンプル テーブルに対して次のクエリを実行します。

select sum(salary)
  pivot dept, lunchTime

次のレスポンスを返します。

エンジニアリング,12:00:00 給与合計 エンジニアリング,13:00:00 給与合計 マーケティング、13:00:00 給与合計 販売、12:00:00 給与合計
1500 600 800 750

元のテーブルに表示される組み合わせにのみ、レスポンス テーブルの列が提供されます。Marketing,12:00:00 または Sales,13:00:00 の列がないのはそのためです。

複数の集計を使用することもできます。たとえば、サンプル テーブルに対して次のクエリを実行します。

select sum(salary), max(lunchTime)
  pivot dept

次のレスポンスを返します。

エンジニアの給与合計 マーケティングの給与 給与合計 エンジニアリングの最長昼食時間 マーケティングの最長昼食時間 セールスの最長昼食時間
2100 800 750 13:00:00 13:00:00 12:00:00

select 句の複数の集計、group by 句の複数の列、pivot 句の複数の列を組み合わせることができます。内部的には、集計は group by 句と pivot 句で列を連結することによって実行されます。

pivot 句で指定された列は、selectgroup byorder by 句の中では使用できない場合があります。 pivot を使用する場合、order by 句に集計列を含めることはできません。これは、select 句で指定された集計ごとに、結果テーブルに多くの列が生成されるためです。ただし、pivot を使用すると、集計列をフォーマットできます。このような形式を使用すると、ピボット オペレーションによって生成される、特定の集計に関連するすべての新しい列が、指定されたパターンで整形されます。上記の例では、format sum(salary) "some_format_string" を追加すると、Eng sum-salary、Marketing sum-salary、Sales sum-salary の各列が影響を受けます。

集計列にラベルを付けることができます。label 句でラベルが指定されていない場合、ピボットの結果として生成される列のラベルは、ピボット列の値のリスト、集計タイプ(min、max、sum、...)、集計された列のラベルで構成されます。例: "Eng,12:00:00 sum Salary"。select 句で集計が 1 つだけ指定された場合、集計部分はラベルから削除され、ピボット列の値のリストのみが保持されます。例: "Eng,12:00:00"label 句で集計列のラベルを指定すると、select 句内の集計が 1 つだけの場合でも、複数の場合でも、要求されたラベルが値のリストに追加されます。たとえば、label sum(salary) "sumsal" の場合、「Eng,12:00:00 sumsal」、「Eng,13:00:00 sumsal」などの列ラベルが生成されます。

並べ替え

order by 句は、指定された列の値で行を並べ替えるために使用されます。

order by 句の項目は、列識別子か、集計関数スカラー関数演算子の出力です。

例:

order by dept, salary desc
select dept, max(salary) group by dept order by max(salary)

上限

limit 句は、返される行の数を制限するために使用されます。

例:

limit 100

オフセット

offset 句は、指定された数の最初の行をスキップするために使用されます。limit 句が使用されている場合は、最初に offset が適用されます。たとえば、limit 15 offset 30 は 31 ~ 45 行目を返します。

例:

offset 10
limit 30 offset 210

ラベル

label 句は、1 つ以上の列のラベルを設定するために使用されます。クエリでは ID の代わりにラベル値を使用することはできません。

label 句の項目は、列識別子か、集計関数スカラー関数演算子の出力です。

構文:

label column_id label_string [,column_id label_string]
column_id
: ラベルが割り当てられている列の識別子
label_string
その列に割り当てるラベル。円グラフの凡例ラベルなど、多くの可視化では、エンドユーザーに表示するテキストとして列ラベルを使用します。ラベルは文字列リテラルであり、それらの構文ルールに従います。

例:

次の例では、dept 列のラベルを「Department」に、name 列のラベルを「Employee Name」に、location 列のラベルを「Employee Location」に設定しています。

label dept 'Department', name "Employee Name", location 'Employee Location'

形式

format 句は、1 つ以上の列のセルに書式設定された値を指定するために使用されます。返されるデータには、書式設定された列の各セルの実際の値と書式設定された値の両方が含まれている必要があります。多くの可視化では、計算には書式設定されていない値が使用されますが、表示には書式設定された値が使用されます。この句で指定するパターンは通常、対応する列の pattern プロパティで返されます。

パターンの構文:

number さん、date さん、timeofday さん、datetime さん
ICU で定義された日付数値のパターン。
boolean
パターンは、true の場合の値:false の場合の値の形式の string です。

例:

format salary '#,##0.00', hireDate 'dd-MMM-yyyy', isSenior 'Yes!:Not yet'

 

オプション

options 句は、クエリ実行の追加オプションを制御するために使用します。options 句の後に指定できるキーワードは次のとおりです。

  • no_format 結果から書式設定された値を削除し、基になる値のみを残します。特定の可視化で書式設定された値を使用してレスポンスのサイズを削減しない場合に使用できます。
  • no_values: 結果から基になる値を削除し、フォーマットされた値のみを残します。レスポンスのサイズを削減するために、特定の可視化で書式設定された値のみを使用する場合に使用できます。

データ操作関数

1 つの列のデータを操作または集計したり、列間でデータの比較や結合を行ったりできる演算子と関数にはいくつかの種類があります。例としては、sum()(列内のすべての値を加算する)、max(列内の最大値を見つける)、+(2 つの列の値を同じ行に加算する)などが挙げられます。

関数には、任意の句で使用できるものと、句のサブセットで使用できるものがあります。以下で説明します。

例:

この表の場合 このクエリを適用すると... このような結果が得られます
名前 給与 StartDate
Sharon 1000 100 2009 年 1 月 1 日
アビタル 2,000 200 2008/1/21
Moran 3,000 300 2008/2/12
select upper(name), year(startDate)
名前 年(StartDate)
実力 2008
モラン 2008
シャロン 2009

 

次のデータ操作関数は、Google ビジュアリゼーション API のクエリ言語によって定義されています。

 

集計関数

集計関数には単一の列の識別子が渡され、各グループ内のすべての値に対してアクションを実行します(グループは group by 句または pivot 句で指定されます。これらの句が使用されていない場合はすべての行で指定されます)。

例:

select max(salary)               // Returns a table with one column and one row.
select max(salary) group by dept // Returns a table with the max salary for each dept column value.
select max(salary) pivot dept    // Returns a one-row table with a column for each dept,
                                 //   and the max salary for that department.

集計関数は、selectorder bylabelformat 句で使用できます。wheregroup bypivotlimitoffsetoptions 句には指定できません

サポートされている集計関数は次のとおりです。

名前 説明 サポートされている列の型 戻り値の型
avg() グループの列のすべての値の平均値を返します。 number number
count() グループの指定された列内の要素の数を返します。null セルはカウントされません。 任意の種類 number
max() グループの列の最大値を返します。日付は小さい方のものと比較され、string はアルファベット順に比較されます。その際、大文字と小文字が区別されます。 任意の種類 列と同じ型です
min() グループの列の最小値を返します。日付は小さい方のものと比較されます。string はアルファベット順に比較されます。その際、大文字と小文字が区別されます 任意の種類 列と同じ型です
sum() グループの列内のすべての値の合計を返します。 number number

注: 集計関数は、列識別子を引数としてのみ使用できます。

max(startDate)                      // OK
min(firstScore) + min(secondScore)  // OK
max(year(startDate))                // INVALID. max requires column ID
sum(salary + perks)                 // INVALID. sum requires column ID.

スカラー関数

スカラー関数は、0 個以上のパラメータに対して動作し、別の値を生成します。スカラー関数には、適切な型のパラメータに評価される任意の式を渡すことができます。これらの型は、このドキュメントのリテラル セクションで定義されている型であり、同様の名前の JavaScript オブジェクトとは若干異なる場合があります。

列名は、スカラー関数でラップすることで変更されることに注意してください。

スカラー関数は、単一の値に評価されるものをパラメータとして受け取ることができます。

year(max(startDate))
datediff(now(), todate(1234567890000))

スカラー関数は、selectwheregroup bypivotorder bylabel, format のいずれかの句で使用できます。

名前
year()

日付または日時の値から年の値を返します。たとえば、 year(date "2009-02-05") は 2009 を返します。

パラメータ: date 型または datetime 型の 1 つのパラメータ
戻り値の型: number
month()

日付または日時の値から、ゼロベースの月の値を返します。たとえば、month(date "2009-02-05") は 1 を返します。注: 月は 0 から始まるので、1 月の場合は 0、2 月の場合は 1 が返されます。

パラメータ: date 型または datetime 型の 1 つのパラメータ
戻り値の型: number
day()

date または日時の値から日を返します。たとえば、day(date "2009-02-05") は 5 を返します。

パラメータ: date 型または datetime 型の 1 つのパラメータ
戻り値の型: number
hour()

日時または timeofday 値から時間の値を返します。たとえば、hour(timeofday "12:03:17") は 12 を返します。

パラメータ: datetime 型または timeofday 型の 1 つのパラメータ
戻り値の型: number
minute()

datetime または timeofday の値から分の値を返します。たとえば、minute(timeofday "12:03:17") は 3 を返します。

パラメータ: datetime 型または timeofday 型の 1 つのパラメータ
戻り値の型: number
second()

datetime または timeofday 値から 2 番目の値を返します。たとえば、second(timeofday "12:03:17") は 17 を返します。

パラメータ: datetime 型または timeofday 型の 1 つのパラメータ
戻り値の型: number
millisecond()

datetime または timeofday 値のミリ秒部分を返します。たとえば、millisecond(timeofday "12:03:17.123") は 123 を返します。

パラメータ: datetime 型または timeofday 型の 1 つのパラメータ
戻り値の型: number
quarter()

date または datetime 値から四半期を返します。たとえば、quarter(date "2009-02-05") は 1 を返します。四半期は 1 から始まるので、最初の四半期は 1、2 四半期は 2 というように返されます。

パラメータ: date 型または datetime 型の 1 つのパラメータ
戻り値の型: number
dayOfWeek()

date または datetime 値から曜日を返します。たとえば、dayOfWeek(date "2009-02-26") は 5 を返します。曜日は 1 から始まるため、日曜日には 1、月曜日には 2 が返されます。

パラメータ: date 型または datetime 型の 1 つのパラメータ
戻り値の型: number
now()

現在の datetime を GMT タイムゾーンで表す日時の値を返します。

パラメータ: なし
戻り値の型: datetime
dateDiff()

2 つの date 値または datetime 値間の日数を返します。注: 値の date 部分のみが計算に使用されるため、この関数は常に整数値を返します。たとえば、dateDiff(date "2008-03-13", date "2008-02-12") は 29 を返し、dateDiff(date "2009-02-13", date "2009-03-13") は -29 を返します。時間の値は比較の前に切り捨てられます。

パラメータ: date 型または datetime 型の 2 つのパラメータ(それぞれのいずれか 1 つを指定できます)
戻り値の型: number
toDate()

指定された値を date 値に変換します。

  • date を指定すると、同じ値が返されます。
  • datetime を指定すると、date の部分を返します。たとえば、toDate(dateTime "2009-01-01 12:00:00") は「2009-01-01」を返します。
  • number N を指定すると、エポック後 date N ミリ秒を返します。エポックは、1970 年 1 月 1 日 00:00:00 GMT と定義されます。たとえば、toDate(1234567890000) は「2009-02-13」を返します。
パラメータ: datedatetime、または number 型の 1 つのパラメータ
戻り値の型: date
upper()

指定された string を大文字で返します。たとえば、upper("foo") は「FOO」を返します。

パラメータ: string 型の 1 つのパラメータ
戻り値の型: string
lower()

指定された string を小文字で返します。たとえば、lower("Bar") は「bar」を返します。

パラメータ: string 型の 1 つのパラメータ
戻り値の型: string

算術演算子

算術演算子を使用すると、単一の数値に評価されるもの(つまり、適切な集計関数、演算子、または定数の出力)に対して算術演算を実行できます。

例:

select empSalary - empTax
select 2 * (max(empSalary) / max(empTax))

次の演算子が定義されます。

名前 説明 パラメータ 戻り値の型
+ 2 つの number 値の合計を返します。 2 つの number number
- 2 つの number 値の差を返します。 2 つの number number
* 2 つの number の積を返します。 2 つの number number
/ 2 つの number の商を返します。ゼロ除算は null を返します。 2 つの number number

言語要素

リテラル

リテラルは、比較または割り当てに使用される値です。リテラルには、string、数値、ブール値、さまざまな日付/時刻型を使用できます。クエリ構文で使用されるリテラルの例を次に示します。

where startDate < date "2008-03-18"  // date "2008-03-18" is a date literal
limit 30                             // 30 is a numeric literal
format salary '#,##0.00', isSenior 'not yet:of course!'  // '#,##0.00' and 'not yet:of course!' are both string literals

リテラルの各型の形式は次のとおりです。

string
string リテラルは一重引用符または二重引用符で囲む必要があります。例: "fourteen" 'hello world' "It's raining"
number
数値リテラルは 10 進表記で指定します。例: 3  3.0  3.14  -71  -7.2  .6
boolean
ブール値リテラルは true または false です。
date
キーワード date を使用し、その後に yyyy-MM-dd 形式の string リテラルを続けます。例: date "2008-03-18"
timeofday
キーワード timeofday の後に、HH:mm:ss[.SSS] 形式の string リテラルを続けます。例: timeofday "12:30:45"
datetime
日付と時刻。datetime キーワード、または timestamp キーワードの後に yyyy-MM-dd HH:mm:ss[.sss] 形式の string リテラルを続けます。例: datetime '2008-03-18 12:30:34.123'

ID

識別子(ID)は、列を識別するテキスト string です。

重要: ID が

  • スペースがあり
  • 予約語である
  • 英数字とアンダースコア以外の文字が含まれている([a-zA-Z0-9_])
  • 数字で始まる

必ずバッククォート(一重引用符ではない)で囲む必要があります。

それ以外の場合、識別子を引用符で囲む必要はありません。(構文で定義されているキーワードの中には予約語ではないものもあります。たとえば、バッククォートなしで「max」を識別子として使用できます)。

例: col1   employee_table   `start date`   `7 days traffic`   `select`

バッククォートが必要な ID は選択しないことをおすすめします。バッククォートの使用を忘れたり、誤って「バッククォート」の代わりに「一重引用符」を使用したりするおそれがあるためです。このような誤りはよくある間違いであり、デバッグが困難になることもあります。

大文字と小文字の区別

識別子と文字列リテラルでは大文字と小文字が区別されます。その他の言語要素では、大文字と小文字が区別されません。

予約済みの単語

次の予約語を識別子として使用する場合は、バッククォートで囲む必要があります。

and
asc
by
date
datetime
desc
false
format
group
label
limit
not
offset
options
or
order
pivot
select
timeofday
timestamp
true
where