コンソールを使用したデータのフェッチ

コンソールを使用してOracle NoSQL Database Cloud Service表データを表示およびダウンロードする方法について学習します。

この記事には次のトピックが含まれます:

表データの表示

NoSQLコンソールからOracle NoSQL Database Cloud Service表のデータを表示する方法について学習します。

表データを表示するには:

  1. InfrastructureコンソールからNoNoSQLコンソールにアクセスします。「インフラストラクチャ・コンソールからのサービスへのアクセス」を参照してください。

  2. NoSQLコンソールには、テナンシ内のすべての表がリストされます。表の詳細を表示するには、次のいずれかを行います:

    • 表名をクリックするか、

    • 表名に対応するアクション・メニューをクリックし、「詳細の表示」を選択します。

    「表の詳細」ページが開きます。

  3. 「表の詳細」ページで、「リソース」の下の「データの検索」タブを選択します。

  4. デフォルトで、問合せテキストには、表からすべてのレコードを取得するSQL問合せが移入されます。この問合せは、Oracle NoSQLステートメントに有効なSQLで変更できます。文が不完全または障害があるというエラーが表示される場合があります。OCIコンソールで発生する可能性のあるエラーとその修正方法について学習するには、OCIコンソールでのSQL文エラーのデバッグを参照してください。SQL問合せの例は、開発者ガイドを参照してください。

  5. 「実行」を選択します。

    表データが「レコード」セクションに表示されます。

  6. 実行されたSQL問合せの問合せ実行計画を表示するには、「問合せ実行計画の表示」を選択します。詳細な問合せ実行計画が新しいウィンドウに表示されます。

表データのダウンロード

  1. InfrastructureコンソールからNoNoSQLコンソールにアクセスします。「インフラストラクチャ・コンソールからのサービスへのアクセス」を参照してください。

  2. NoSQLコンソールには、テナンシ内のすべての表がリストされます。表の詳細を表示するには、次のいずれかを行います:

    • 表名をクリックするか、

    • 表名に対応するアクション・メニューをクリックし、「詳細の表示」を選択します。

    「表の詳細」ページが開きます。

  3. 「表の詳細」ページで、「リソース」の下の「データの検索」タブを選択します。

  4. デフォルトで、問合せテキストには、表からすべてのレコードを取得するSQL問合せが移入されます。この問合せは、Oracle NoSQLステートメントに有効なSQLで変更できます。文が不完全または障害があるというエラーが表示される場合があります。OCIコンソールで発生する可能性のあるエラーとその修正方法について学習するには、OCIコンソールでのSQL文エラーのデバッグを参照してください。SQL問合せの例は、開発者ガイドを参照してください。

  5. ダウンロードする行に対応するアクション・メニューをクリックし、「JSONのダウンロード」を選択します。

    行はJSONフォーマットでダウンロードされます。

SQLコマンドを使用したデータのフェッチ

SQLのSELECT文を使用して、NoSQL表からデータをフェッチできます。

表からのすべての行のフェッチ

表から列を選択できます。そのためには、文のSELECTの後に目的の表の列名をリストします。FROM句の後に表の名前を指定します。子表からデータを取り出すには、parent.childのようなドット表表記法を使用します。表のすべての列を選択するには、アスタリスク(*)ワイルドカード文字を使用します。SELECT文には、既存の列の値に基づく計算式を含めることもできます。

例1:BaggageInfoからすべてのデータを選択してください。

SELECT * FROM BaggageInfo

説明: BaggageInfoスキーマには、いくつかの固定静的フィールドとJSON列があります。静的フィールドは、チケット番号、フルネーム、性別、連絡先電話番号および確認番号です。手荷物情報はJSONとして格納され、ドキュメントの配列が移入されます。

出力 (簡潔にするために結果の行のみを表示):

{"ticketNo":1762330498104,"fullName":"Michelle Payne","gender":"F","contactPhone":"575-781-6240","confNo":"RL3J4Q",
"bagInfo":[{
   "bagArrivalDate":"2019-02-02T23:59:00Z",
   "flightLegs":[
      {"actions":[
           {"actionAt":"SFO","actionCode":"ONLOAD to IST","actionTime":"2019-02-02T12:10:00Z"},
           {"actionAt":"SFO","actionCode":"BagTag Scan at SFO","actionTime":"2019-02-02T11:47:00Z"},
           {"actionAt":"SFO","actionCode":"Checkin at SFO","actionTime":"2019-02-02T10:01:00Z"}],
           "estimatedArrival":"2019-02-03T01:00:00Z",
           "flightDate":"2019-02-02T12:00:00Z",
           "flightNo":"BM318",
           "fltRouteDest":"IST",
           "fltRouteSrc":"SFO"},
      {"actions":[
           {"actionAt":"IST","actionCode":"ONLOAD to ATH","actionTime":"2019-02-03T13:06:00Z"},
           {"actionAt":"IST","actionCode":"BagTag Scan at IST","actionTime":"2019-02-03T12:48:00Z"},
           {"actionAt":"IST","actionCode":"OFFLOAD from IST","actionTime":"2019-02-03T13:00:00Z"}],
           "estimatedArrival":"2019-02-03T12:12:00Z",
           "flightDate":"2019-02-02T13:10:00Z",
           "flightNo":"BM696",
           "fltRouteDest":"ATH",
           "fltRouteSrc":"IST"},
      {"actions":[
           {"actionAt":"JTR","actionCode":"Offload to Carousel at JTR","actionTime":"2019-02-03T00:06:00Z"},
           {"actionAt":"ATH","actionCode":"ONLOAD to JTR","actionTime":"2019-02-03T00:13:00Z"},
           {"actionAt":"ATH","actionCode":"OFFLOAD from ATH","actionTime":"2019-02-03T00:10:00Z"}],
           "estimatedArrival":"2019-02-03T00:12:00Z",
           "flightDate":"2019-2-2T12:10:00Z",
           "flightNo":"BM665",
           "fltRouteDest":"JTR",
           "fltRouteSrc":"ATH"}],
     "id":"79039899186259",
     "lastActionCode":"OFFLOAD",
     "lastActionDesc":"OFFLOAD",
     "lastSeenStation":"JTR",
     "lastSeenTimeGmt":"2019-02-02T23:59:00Z",
     "routing":"SFO/IST/ATH/JTR",
     "tagNum":"17657806247861"}
]}

例2: BaggageInfo表から特定の列を選択するには、列名をカンマ区切りのリストとしてSELECT文に含めます。

SELECT fullName, contactPhone, gender FROM BaggageInfo

説明: 3つの静的フィールド(フルネーム、電話番号、性別)の値を表示する必要があります。

出力:

{"fullName":"Lucinda Beckman","contactPhone":"364-610-4444","gender":"M"}
{"fullName":"Adelaide Willard","contactPhone":"421-272-8082","gender":"M"}
{"fullName":"Raymond Griffin","contactPhone":"567-710-9972","gender":"F"}
{"fullName":"Elane Lemons","contactPhone":"600-918-8404","gender":"F"}
{"fullName":"Zina Christenson","contactPhone":"987-210-3029","gender":"M"}
{"fullName":"Zulema Martindale","contactPhone":"666-302-0028","gender":"F"}
{"fullName":"Dierdre Amador","contactPhone":"165-742-5715","gender":"M"}
{"fullName":"Henry Jenkins","contactPhone":"960-428-3843","gender":"F"}
{"fullName":"Rosalia Triplett","contactPhone":"368-769-5636","gender":"F"}
{"fullName":"Lorenzo Phil","contactPhone":"364-610-4444","gender":"M"}
{"fullName":"Gerard Greene","contactPhone":"395-837-3772","gender":"M"}
{"fullName":"Adam Phillips","contactPhone":"893-324-1064","gender":"M"}
{"fullName":"Doris Martin","contactPhone":"289-564-3497","gender":"F"}
{"fullName":"Joanne Diaz","contactPhone":"334-679-5105","gender":"F"}
{"fullName":"Omar Harvey","contactPhone":"978-191-8550","gender":"F"}
{"fullName":"Fallon Clements","contactPhone":"849-731-1334","gender":"M"}
{"fullName":"Lisbeth Wampler","contactPhone":"796-709-9501","gender":"M"}
{"fullName":"Teena Colley","contactPhone":"539-097-5220","gender":"M"}
{"fullName":"Michelle Payne","contactPhone":"575-781-6240","gender":"F"}
{"fullName":"Mary Watson","contactPhone":"131-183-0560","gender":"F"}
{"fullName":"Kendal Biddle","contactPhone":"619-956-8760","gender":"F"}

例3:stream_acctからすべてのデータを選択します。

SELECT * FROM stream_acct

説明: stream_acctスキーマには、いくつかの固定静的フィールドとJSON列があります。

出力 (簡潔にするために結果の行のみを表示):

{"acct_id":1,"profile_name":"AP","account_expiry":"2023-10-18T00:00:00.0Z",
"acct_data":{
[{
   "showName": "At the Ranch",
   "showId": 26,
   "showtype": "tvseries",
   "genres": ["action", "crime", "spanish"],
   "numSeasons": 4,
   "seriesInfo": [{
      "seasonNum": 1,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 20,
         "episodeName": "Season 1 episode 1",
         "lengthMin": 85,
         "minWatched": 85,
         "date": "2022-04-18"
      },
      {
         "episodeID": 30,
         "lengthMin": 60,
         "episodeName": "Season 1 episode 2",
         "minWatched": 60,
         "date": "2022 - 04 - 18 "
      }]
   },
   {
      "seasonNum": 2,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 40,
         "episodeName": "Season 2 episode 1",
         "lengthMin": 50,
         "minWatched": 50,
         "date": "2022-04-25"
      },
      {
         "episodeID": 50,
         "episodeName": "Season 2 episode 2",
         "lengthMin": 45,
         "minWatched": 30,
         "date": "2022-04-27"
      }]
   },
   {
      "seasonNum": 3,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 60,
         "episodeName": "Season 3 episode 1",
         "lengthMin": 50,
         "minWatched": 50,
         "date": "2022-04-25"
      },
      {
         "episodeID": 70,
         "episodeName": "Season 3 episode 2",
         "lengthMin": 45,
         "minWatched": 30,
         "date": "2022 - 04 - 27 "
      }]
   }]
},
{
   "showName": "Bienvenu",
   "showId": 15,
   "showtype": "tvseries",
   "genres": ["comedy", "french"],
   "numSeasons": 2,
   "seriesInfo": [{
      "seasonNum": 1,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 20,
         "episodeName": "Bonjour",
         "lengthMin": 45,
         "minWatched": 45,
         "date": "2022-03-07"
      },
      {
         "episodeID": 30,
         "episodeName": "Merci",
         "lengthMin": 42,
         "minWatched": 42,
         "date": "2022-03-08"
      }]
   }]
}]}}

表からのデータのフィルタ

WHERE句でフィルタ条件を指定することによって、問合せ結果をフィルタ処理できます。通常、フィルタ条件は、論理演算子ANDまたはORを使用して結合された1つ以上の比較式で構成されます。次の比較演算子もサポートされています: =、!=、>、>=、<および<=。

例1:特定の予約番号FH7G1Wの乗客のフルネームとともに、乗客の手荷物のタグ番号を検索します。

SELECT bag.fullName, bag.bagInfo[].tagNum FROM BaggageInfo bag
WHERE bag.confNo="FH7G1W"

説明:特定の予約番号に対応するタグ番号をフェッチします。

出力:

{"fullName":"Rosalia Triplett","tagNum":"17657806215913"}

ノート:理解を深めるため、すべての静的フィールドおよびbag Info JSONを含むデータ行を次に示します。

   {
   "ticketNo": 1762344493810,
   "fullName": "Adam Phillips",
   "gender": "M",
   "contactPhone": "893-324-1064",
   "confNo": "LE6J4Z",
   "bags": [
     {
       "id": "79039899165297",
       "tagNum": "17657806255240",
       "routing": "MIA/LAX/MEL",
       "lastActionCode": "OFFLOAD",
       "lastActionDesc": "OFFLOAD",
       "lastSeenStation": "MEL",
       "flightLegs": [
         {
           "flightNo": "BM604",
           "flightDate": "2019-02-01T01:00:00",
           "fltRouteSrc": "MIA",
           "fltRouteDest": "LAX",
           "estimatedArrival": "2019-02-01T03:00:00",
           "actions": [
             {
               "actionAt": "MIA",
               "actionCode": "ONLOAD to LAX",
               "actionTime": "2019-02-01T01:13:00"
             },
             {
               "actionAt": "MIA",
               "actionCode": "BagTag Scan at MIA",
               "actionTime": "2019-02-01T00:47:00"
             },
             {
               "actionAt": "MIA",
               "actionCode": "Checkin at MIA",
               "actionTime": "2019-02-01T23:38:00"
             }
           ]
         },
         {
           "flightNo": "BM667",
           "flightDate": "2019-01-31T22:13:00",
           "fltRouteSrc": "LAX",
           "fltRouteDest": "MEL",
           "estimatedArrival": "2019-02-02T03:15:00",
           "actions": [
             {
               "actionAt": "MEL",
               "actionCode": "Offload to Carousel at MEL",
               "actionTime": "2019-02-02T03:15:00"
             },
             {
               "actionAt": "LAX",
               "actionCode": "ONLOAD to MEL",
               "actionTime": "2019-02-01T07:35:00"
             },
             {
               "actionAt": "LAX",
               "actionCode": "OFFLOAD from LAX",
               "actionTime": "2019-02-01T07:18:00"
             }
           ]
         }
       ],
       "lastSeenTimeGmt": "2019-02-02T03:13:00",
       "bagArrivalDate": "2019.02.02T03:13:00"
     }
   ]
  }
 {: .infoboxnote}

例2:指定された予約番号FH7G1Wの手荷物はどこで、最後に確認されましたか。また、手荷物のタグ番号もフェッチします。

SELECT bag.fullName, bag.bagInfo[].tagNum,bag.bagInfo[].lastSeenStation
FROM BaggageInfo bag WHERE bag.confNo="FH7G1W"

説明: bagInfoはJSONであり、ドキュメントの配列が移入されます。特定の予約番号について、フルネームと最後に確認されたステーションをフェッチできます。

出力:

{"fullName":"Rosalia Triplett","tagNum":"17657806215913",
"lastSeenStation":"VIE"}

例3:チケット番号1762340579411の乗客の袋の詳細(タグおよび最後に確認した時刻)を選択します。

SELECT bag.ticketNo, bag.fullName, bag.bagInfo[].tagNum,bag.bagInfo[].lastSeenStation
FROM BaggageInfo bag where bag.ticketNo=1762320369957

説明: bagInfoはJSONであり、ドキュメントの配列が移入されます。特定のチケットについて、フルネーム、タグ番号および最後に確認されたステーションをフェッチできます。

出力:

{"fullName":"Lorenzo Phil","tagNum":["17657806240001","17657806340001"],
"lastSeenStation":["JTR","JTR"]}

例4: acct_idが1のユーザーについて、姓、アカウント有効期限、および視聴した番組のフェッチを行います。

SELECT account_expiry, acct.acct_data.lastName, acct.acct_data.contentStreamed[].showName FROM stream_acct acct WHERE acct_id=1

説明: acct_dataはJSONであり、ドキュメントの配列が移入されます。特定のアカウントIDについて、姓、アカウント有効期限および番組名がフェッチされます。

出力:

{"account_expiry":"2023-10-18T00:00:00.0Z","lastName":"Phillips","showName":["At the Ranch","Bienvenu"]}