SQLShack

これで、SQL INSERT INTO TABLEコマンドを使用して、これらのテーブルにデータを移入する準備が整いました。 これを行うには、Excelで文を準備し、これらの文をSQL Serverに貼り付けて実行します。 また、SELECTステートメントを使用して、これらのコマンドの前後の両方のテーブルの内容を確認します。 それでは、始めましょう。

INSERT INTO TABLEステートメント

データベース構造を作成し、データベースにデータを持たないことには意味がありません。 INSERT INTO TABLE文は、この問題を解決するために使用します。 これは、4つの重要なSQL DML(データ操作言語)文の1つですSELECT…FROM、INSERT INTO TABLE、UPDATE…SET、およびDELETE FROM…INSERT INTOも非常に複雑な文である可能性があるため、完全な構文は非常に複雑 ここでT-SQL INSERT INTO TABLEの完全な構文を見てください。

この記事では、単純化された構文を使用しますが、最も一般的な構文も使用します。

INSERT INTO table_name(column_list)VALUES(column_values);

このようなINSERT INTOステートメントでは、データを挿入するtable_nameを定義し、すべての列を一覧表示する必要があります(それらのすべてを使用する可能性がありますが、それらの一部のみを使用する可能性があります)、すべての値を一覧表示します。 列の値は列タイプの定義と一致する必要があることに注意してください(たとえば、数値列/属性にテキスト値を挿入することはできません)。

テーブルにすべての値を挿入する場合は、table_nameの後にすべての列を一覧表示する必要はなく、さらに単純化された構文を使用できます。

INSERT INTO table_name VALUES(column_values);

このアプローチは既存のテーブルに新しい列を追加しても機能するため、個人的にはすべての列名を一覧表示することを好みます。

  • 注:INSERT INTO TABLE文は、1つの文で複数の行を挿入したり、SELECT文と組み合わせたりするように記述することができます。

INSERTステートメントとSELECTステートメントが組み合わされるような場合の簡略化された構文を以下に示します。

INSERT INTO destination_table(column_list,…)
SELECT column_list
FROM source_table
WHERE condition;

INSERT INTO TABLE example

何かをする前に、テーブルに格納されているものを確認しましょう。 これは前回の記事で作成したモデルです。 国に関連するデータを格納するテーブルと、都市に関連するデータを格納するテーブルが1つあります。 彼らはまた、お互いに関連していますが、我々は次の記事でそれについて話します:

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

INSERT INTO TABLE-data model

これら二つのテーブルの内容をチェックするために、我々は二つの単純なSELECTステートメントを使用します:

1
2

SELECT*FROM country;
SELECT*FROM city;

SELECTはこの記事のトピックではありませんが、その基本的な構文は

SELECT1or more attributes FROM table;

SELECTの後の星(*)は、そのテーブルのすべての属性/列の値をクエリ結果に表示

期待どおり、これらの2つのテーブルには何もなく、SQL Serverは次の図に示すように結果を返します。 ステートメントは、SELECTクエリで使用したテーブルから列の名前を返しますが、これらの列名の下には何もありません。 これは、定義された列名(ヘッダー)を持つ空のExcelシートとして見ることができます。 あなたはどのタイプのデータがあるべきか知っていますが、何もありません:

今、我々はそれを変更する必要があります。

まず、次のINSERT INTO TABLEステートメントを使用してcountryテーブルにデータを入力します:

1
2
3
4
5

INSERT INTO country(country_name,country_name_eng,country_code)VALUES(‘Deutschland’,’Germany’,’DEU’);
INSERT INTO country(country_name,country_name_eng,country_code)VALUES(‘Srbija’,’Serbia’,’SRB’);
INSERT INTO country(country_name,country_name_eng,country_code)値(‘hrvatska’,’croatia’,’hrv’);
INSERT INTO country(country_name,country_name_eng,country_code)VALUES(‘United States of America’,’United States of America’,’USA’);
INSERT INTO country(country_name,country_name_eng,country_code)VALUES(‘Polska’,’Poland’,’POL’);

五カ国のデータが正常に挿入されました。 結果は下の写真に示されています。 私たちは5つのINSERT INTO TABLE文を持っていたので、「メッセージ」セクションのこれらの5つのコマンドのそれぞれに1つの「(1行の影響を受けた)」メッセージがあ:

テーブルに挿入-国

すべての値(値の後)は、列をリストしたのと同じ方法で並べ替えられたことに注意してください(insert INTO country後)。 3つの値はすべてテキストです。 クエリは、すべてが同じデータ型(テキスト)を持っているため、正しい方法で並べ替えていなくても機能しますが、データは間違った列に格納されます。 その場合、意味上のエラーが発生します。次に行う必要があるのは、cityテーブルにデータを入力することです。 これは、次のステートメントを使用して行います:

1
2
3
4
5
6

都市に挿入(city_name,lat,long,country_id)値(‘ベルリン’, 52.520008, 13.404954, 1);
都市に挿入(city_name,lat,long,country_id)値(‘ベオグラード’, 44.787197, 20.457273, 2);
都市に挿入(city_name,lat,long,country_id)値(‘Zagreb’, 45.815399, 15.966568, 3);
INSERT INTO city(city_name,lat,long,country_id)VALUES(‘ニューヨーク’,40.73061,-73.935242,4);
都市に挿入(city_name,lat,long,country_id)値(‘Los Angeles’, 34.052235, -118.243683, 4);
都市に挿入(city_name,lat,long,country_id)値(‘ワルシャワ’, 52.237049, 21.017532, 5);

これらの文を実行した後、これが結果でした。 予想通り、6行が追加されました。 そして、もう一度、我々はメッセージセクションに各挿入のための1つのメッセージを持っています:

City

この場合、値を同じ方法でリストしていない場合、列のデータ型が同じではないため、列をリストします(テキスト、10進数、10進数、整数の順)。 このタイプのエラーは構文エラーと呼ばれ、DBMS自体がクエリの実行をまったく妨げます。

SELECT–挿入されたものを確認します

今度は、テーブルに格納されているものをもう一度確認します。 以前に使用したのと同じ2つのSELECT文を使用します:

1
2

SELECT*FROM country;
SELECT*FROM city;

結果は下の写真に示されています。 クエリを実行した後、クエリの下にResultsとMessagesセクションがあることに注意してくださ:

SELECT statements

データベース内の両方のテーブルにデータが含まれていると結論付けることができ、これよりも涼しい方法で”再生”する準備が整いました。

EXCELを使用してテーブルに挿入

多くの場合、提供されたデータセットに基づいて複数のSQLステートメントを実行する必要があります。 これは、INSERT INTO TABLE文だけでなく、UPDATE文およびDELETE文にも当てはまります。 これらの文を手動で入力することは意味がありませんが、むしろこの部分を自動化する式(またはスクリプト)を準備するよりスマートなアプローチで行 このような状況では、私はExcelと数式を使用することを好みます。

注: 個人的には、データベースの文脈では、複数のステートメントを作成する必要があるときや、結果を提示したり、ダッシュボードを作成したりするときに、Excel

これらの式を見てみましょう:

国Excel

最初の国(ドイツ)を挿入するために使用される式は次のとおりです:

1
=”INSERT INTO country(country_name,country_name_eng,country_code)VALUES(‘”&B2& “‘, ‘” & C2& “‘, ‘” & D2&”‘);”

都市Excel

最初の都市(ベルリン)を挿入するために使用される式は次のとおりです:

1
=”INSERT INTO city(city_name,lat,long,country_id)VALUES(‘”&B2& “‘, ” & C2&”,”&D2&”,”&E2″,”&E2″,”

あなたのタスクを自動化するために、これらの式を使用して自由に感じます。 後で、複数のUPDATE文とDELETE文を実行している場合(およびSELECT文を作成している場合でも)、同様のアプローチを使用します。

結論

この記事では、4つの最も重要なSQL文の1つであるINSERT INTO TABLE文について説明しました。 前の記事で作成したテーブルにデータを入力するために使用しました。 これは、よりスマートなもののようなデータベース理論に移行するための前提条件であり、より重要なのは、データベースから結果を返すことでした。

次の記事では、主キーとは何か、データベースで重要な理由について説明します。

目次

Sqlを学ぶ:データベースの作成&テーブル操作の作成

SQLを学ぶ:テーブルへの挿入

SQLを学ぶ:主キー

Sqlを学ぶ:外部キー

Sqlを学ぶ:外部キー

Sqlを学ぶ:外部キー

sqlを学ぶ:selectステートメント

sqlを学ぶ:内部結合と左結合

Sqlを学ぶ:Sqlスクリプト

sqlを学ぶ:関係の種類

Sqlを学ぶ:sqlスクリプト

Sqlを学ぶ:関係の種類

Sqlを学ぶ:sqlスクリプト

Sqlを学ぶ:Sqlスクリプト

Sqlを学ぶ: 複数のテーブルを結合する

Sqlを学ぶ:集計関数

SQLを学ぶ:複雑なSELECTクエリを書く方法

SQLを学ぶ:INFORMATION_SCHEMAデータベース

SQLを学ぶ:SQLデータ型

Sqlを学ぶ:集合論

SQLを学ぶ:集合論

SQLを学ぶ:集合論

SQLを学ぶ:集合論

SQLを学ぶ:集合論

SQLを学ぶ:集合論

sqlの学習:ユーザー定義関数

Sqlの学習:ユーザー定義ストアドプロシージャ

Sqlの学習:Sqlビュー

Sqlの学習:Sqlトリガー

Sqlの学習:Sqlクエリの練習

SQLを学ぶ: SQLクエリの例

Sqlを学ぶ:SQLクエリを使用して手動でレポートを作成する

Sqlを学ぶ:SQL Serverの日付と時刻関数

Sqlを学ぶ:日付と時刻関数を使用してSQL Serverのレポートを作成する

Sqlを学ぶ:SQL Serverのピボットテーブル

Sqlを学ぶ:sql server excelへのエクスポート

sqlを学ぶ:SQL serverループのイントロ

SQLを学ぶ:sql serverカーソル

Sqlを学ぶ:データの削除と更新のためのSqlベストプラクティス

Sqlを学ぶ:命名規則

Sqlを学ぶ:Sqlカーソル

Sqlを学ぶ:Sqlカーソル

SQL: SQL関連のジョブ

Sqlを学ぶ:Sql Serverでの非Equi結合

Sqlを学ぶ:SQLインジェクション

Sqlを学ぶ:動的SQL

  • 著者
  • 最近の投稿
エミール・ドルクシッチ
Emilは、データベースに関連するすべてのもので10年以上の経験を持つデータベースの専門家です。 その間、彼はITと金融業界で働いていましたが、現在はフリーランサーとして働いています。
彼の過去と現在の仕事は、データベースの設計とコーディングから、データベースに関する教育、コンサルティング、執筆まで様々である。 また、忘れないように、BI、アルゴリズム、チェス、philately、2匹の犬、2匹の猫、1匹の妻、1匹の赤ちゃんを作成します。..
あなたはLinkedInの上で彼を見つけることができます
エミールDrkusicによるすべての投稿を表示

エミール・ドルクシッチ
Emil Drkusicによる最新の投稿(すべて見る)
  • Sqlを学ぶ:動的SQL-2021年3月3日
  • SQLを学ぶ:SQLインジェクション-2020年11月2日
  • SQLを学ぶ: SQL Serverでの非Equi結合-September29, 2020

コメントを残す

メールアドレスが公開されることはありません。

More: