前回の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】便利な自動クエリ機能へつづく。
コメント