1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SnowflakeAdvent Calendar 2024

Day 10

ゼロから始めるSnowflake(5/10)

Posted at

テーブル,データ型,データロード

概要

植物の根の深さに関する値を保持するテーブルを作成し,INSERT文を使用してデータをロードする.また,SELECT文とLIMIT句を使用してデータをクエリする方法について学ぶ.


Root Depth テーブルの作成

以下のSQLコードを使用してROOT_DEPTHテーブルを作成する.

CREATE TABLE IF NOT EXISTS GARDEN_PLANTS.VEGGIES.ROOT_DEPTH (
   ROOT_DEPTH_ID number(1),
   ROOT_DEPTH_CODE text(1),
   ROOT_DEPTH_NAME text(7),
   UNIT_OF_MEASURE text(2),
   RANGE_MIN number(2),
   RANGE_MAX number(2)
);

テーブルの作成後,ノートブック画面の左側にあるデータベースオブジェクトブラウザで,ROOT_DEPTHテーブルを確認する.テーブルが見つからない場合

  • オブジェクトブラウザまたはブラウザ全体を更新する.
  • 実行時のロールやスキーマを確認する.

データの投入

テーブルが作成されたら,以下の方法でデータをロードする.

INSERT文を使用

以下のSQLを実行して,テーブルに1行を挿入する.

USE SCHEMA GARDEN_PLANTS.VEGGIES;

INSERT INTO ROOT_DEPTH (
    ROOT_DEPTH_ID,
    ROOT_DEPTH_CODE,
    ROOT_DEPTH_NAME,
    UNIT_OF_MEASURE,
    RANGE_MIN,
    RANGE_MAX
)
VALUES (
    1,
    'S',
    'Shallow',
    'cm',
    30,
    45
);

挿入後,データプレビュー機能を使用して,テーブルにデータが正しくロードされたことを確認する.

データプレビュー

  1. テーブル詳細画面のデータプレビュータブを開く.
  2. または,ノートブック左側のオブジェクトブラウザからテーブルを選択し,虫眼鏡アイコンをクリックする.

クエリ実行

SELECT *

テーブルのすべての列を取得するには,以下のようにクエリを実行する.

SELECT *
FROM ROOT_DEPTH;

列の操作オプション

SELECT *文に以下のオプションを付け加えて,出力を調整することができる.

  • EXCLUDE: 特定の列を除外する.
    SELECT * EXCLUDE (range_min, range_max)
    FROM ROOT_DEPTH;
    
  • REPLACE: 特定の列の値を置き換える.
    SELECT * REPLACE (root_depth_code||'-RDC' AS root_depth_code)
    FROM ROOT_DEPTH;
    
  • RENAME: 列に別名を付ける.
    SELECT * RENAME (range_min AS root_depth_range_min,
                     range_max AS root_depth_range_max)
    FROM ROOT_DEPTH;
    
  • ILIKE: 指定パターンに一致する列を取得する.
    SELECT * ILIKE '%ROOT%'
    FROM ROOT_DEPTH;
    

LIMIT

必要な行数だけを取得する場合は,以下のようにLIMIT句を使用する.

SELECT *
FROM ROOT_DEPTH
LIMIT 1;

データの追加

以下のSQLを編集して2行追加する.

INSERT INTO ROOT_DEPTH (
    ROOT_DEPTH_ID,
    ROOT_DEPTH_CODE,
    ROOT_DEPTH_NAME,
    UNIT_OF_MEASURE,
    RANGE_MIN,
    RANGE_MAX
)
VALUES (
    2,
    '#',
    '#',
    '#',
    45,
    60
);

INSERT INTO ROOT_DEPTH (
    ROOT_DEPTH_ID,
    ROOT_DEPTH_CODE,
    ROOT_DEPTH_NAME,
    UNIT_OF_MEASURE,
    RANGE_MIN,
    RANGE_MAX
)
VALUES (
    3,
    '#',
    '#',
    '#',
    60,
    90
);

結果確認

全データを取得し,以下のクエリを使用して結果を確認する.

SELECT *
FROM ROOT_DEPTH;

エラー修正

エラーが発生した場合は以下を確認する.

  1. コンテキストを再設定する.
    USE DATABASE GARDEN_PLANTS;
    USE SCHEMA VEGGIES;
    
  2. 完全修飾名を使用する.
    SELECT *
    FROM GARDEN_PLANTS.VEGGIES.ROOT_DEPTH;
    

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?