テーブル,データ型,データロード
概要
植物の根の深さに関する値を保持するテーブルを作成し,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
);
挿入後,データプレビュー機能を使用して,テーブルにデータが正しくロードされたことを確認する.
データプレビュー
- テーブル詳細画面のデータプレビュータブを開く.
- または,ノートブック左側のオブジェクトブラウザからテーブルを選択し,虫眼鏡アイコンをクリックする.
クエリ実行
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;
エラー修正
エラーが発生した場合は以下を確認する.
- コンテキストを再設定する.
USE DATABASE GARDEN_PLANTS; USE SCHEMA VEGGIES;
- 完全修飾名を使用する.
SELECT * FROM GARDEN_PLANTS.VEGGIES.ROOT_DEPTH;