SQL Server【Lesson5】テーブルへデータ挿入

SQL Server

前回のSQLServer【Lesson4】FOREIGN KEY(外部キー)の設定で、設定も含め、データテーブルが
一通り完成しました。

今回は、そのデータテーブルにデータを挿入していきます。
データ挿入方法は、UIから簡単にデータ挿入、自動クエリ機能を使ったデータ挿入、の
二通りあります。今回は、UIから簡単にデータ挿入する方法をご紹介します。

この【Lesson5】を終えると、一つのデータベースが構築された事になりますので、
気合い入れていきましょう!

データテーブルへのデータ挿入

まだ何もデータが入ってない【顧客】テーブルから開きます。

これまでは、テーブルの列の定義やキーの設定などをやってきたので、【デザイン】項目を
選んでいましたが、今回はデータ挿入なので、【上位200行の編集】を選択しましょう。

この【上位200行の編集】から行う方法が、UIから簡単にデータ挿入できる方法です。

UIからデータ挿入(T_顧客テーブル)

【T_顧客】テーブルの行(データ)編集UIがでてきましたが、もちろん中身は
何も入っていないので、行には全てNULLが表示されています。

ここに文字や数値を入力します。
とりあえず、5件程度のデータを挿入してみましょう。

表計算ソフトであるExcelのセルに、データ入力する感じと少し似てますね!
ただ、決定的に違うのは、入力できる型が決められている事です。

【Lesson2】【Lesson3】で、各テーブルの、各列に扱えるデータの型を設定しました。

int型、string型、date型などを設定したのですが、その列では設定されている型しか
データ挿入できません。

データ型の相違によるエラー

エラーメッセージに注目です!

セルの値が無効です(行6,列1)。
エラーメッセージ:入力文字列の形式が正しくありません。

(行6,列1)が示す部分は、【顧客ID】列の6行目を指しています。
つまり、’6’というデータを指している事になります。

この全角入力した’6’は、数字ではなく文字として認識されている為に、エラー処理されました。

【顧客ID】に設定したint型は、数値を扱いたい場合、半角英数字の数字を入力しなければ
認識されません。


string型の場合は全角半角のどちらでも認識できますが、同じ’6’でも数値としてではなく、
文字の’6’として扱われます。データを取り出して四則演算をしようとしても、数値ではなく
文字列として扱われるためできません。

例えば、あ+あ、[全角]6 + [全角]6などの計算ができない感じです。
どうやっても文字の計算ってできませんよね?

PRIMARY KEY(主キー)制約違反によるエラー

6行目の【顧客ID】列でエラー処理されました。
ここでは、中間辺りに答えとなるエラーメッセージが出ています。

制約’PK_T_顧客’のPRIMARY KEY違反。オブジェクト’dbo.T_顧客’には重複するキーを
挿入できません。重複するキーの値は(5)です。

【顧客ID】は、【T_顧客】テーブルのPRIMARY KEY(主キー)です。
PRIMARY KEY(主キー)の列は、重複するデータを挿入する事はできません。
【顧客ID】の5行目、6行目のデータの値が、エラーメッセージ通りに重複した(5)が
入っている事が確認できます。

エラーメッセージには、エラー処理された理由(答え)が必ず書かれているので、しっかりと
読むことが重要です!


SQL Server【Lesson3】PRIMARY KEY(主キー)の設定で、PRIMARY KEY(主キー)についての
記事があるので、忘れた人は戻って確認してみましょう!

UIからデータ挿入(T_車両)(T_従業員)(T_販売管理)

残る3つのテーブルにデータをどんどん入れていきましょう!
データの型、PRIMARY KEY(主キー)、FOREIGN KEY(外部キー)に注意。

【T_車両】テーブルで、PRIMARY KEYは’車ID’です。

【T_従業員】テーブルで、PRIMARY KEYは’従業員ID’です。

【T_販売管理】テーブルで、PRIMARY KEYは’販売管理ID’です。
FOREIGN KEYは’顧客ID’と’車ID’と’従業員ID’です。

FOREIGN KEY(外部キー)制約違反によるエラー

11行目の【顧客ID】列でエラー処理されました。
ここでのエラーメッセージの注目すべきポイントです。

INSERTステートメントはFOREIGN KEY制約”FK_T_販売管理_T_顧客”と競合しています。
競合が発生したのは、データベース”TOYONA自動車工業”、テーブル”dbo.T_顧客”,
column’顧客ID’です。

【T_販売管理】テーブルの【顧客ID】は、【T_顧客】テーブルの【顧客ID】の
FOREIGN KEY制約です。

その為、【T_顧客】の顧客IDに存在するデータしか、【T_販売管理】の顧客IDにデータ挿入する
ことはできません。


【T_販売管理】の11行目の顧客IDに入力された’223’というデータは、【T_顧客】の顧客IDに
‘223’が登録されていない為、【T_販売管理】でも登録できない、これがエラーの原因でした。

今回は、UIから簡単にテーブルへデータを挿入する方法でした。
次回は、自動クエリ機能を使ってデータ検索や、データ挿入などをやってみます!

SQL Server【Lesson6】便利な自動クエリ機能へつづく。

コメント

タイトルとURLをコピーしました