SQL Server の CREATE、ALTER、DROP テーブル [T-SQL の例]
⚡ スマートサマリー
SQL Serverのテーブルは、データを行と列に格納します。Transact-SQLでは、CREATE TABLEを使用してテーブルを作成し、ALTER TABLEを使用して列を追加または変更し、DROP TABLEを使用してテーブル、そのデータ、およびその構造を削除します。

テーブルとは
テーブルはオブジェクトです SQLサーバー データを行と列の形式で格納する。下の図は、それぞれ行と列を示している。
T-SQL を使用して SQL Server にテーブルを作成する方法
データを保存する最初のステップは、テーブルを作成することです。 データベース データが格納される場所です。テーブルを作成した後、そこに行を挿入し続けることができます。
テーブルは以下の方法で作成できます。
- T-SQL: すべての列とそのデータ型を定義して新しいテーブルを作成します。
- T-SQL: 既存のテーブルを使用して新しいテーブルを作成します。
- テーブルデザイナーを使用しています。
これを詳しく調べてみましょう。
T-SQL: すべての列とそのデータ型を定義して新しいテーブルを作成する
以下は、SQL Serverでテーブルを作成するための構文です。
構文:
CREATE TABLE tableName ( column_1 datatype [ NULL | NOT NULL ], column_2 datatype [ NULL | NOT NULL ], ... );
ここでは、
- パラメータ tableName は、作成するテーブルの名前を示します。
- パラメータ column_1、column_2… は、テーブルに追加される列を示します。
- 列はNULLまたはNOT NULLのいずれかで指定する必要があります。指定しない場合、SQL Serverは既定値としてNULLを使用します。
2つの列を持つ基本的な表を作成してみましょう。
クエリ:
CREATE TABLE COURSE ( Course_ID Int, Course_Name Varchar(10) )
前提条件: テーブルを作成するデータベースを選択してください。
ステップ1) 「実行」をクリックしてクエリを実行します。クエリを実行する前は、以下に示すようにテーブルは存在しません。
クエリを実行した後、「更新」ボタンをクリックしてください。すると、以下に示すように、新しいテーブル「Course」が作成されます。
ステップ2) データを挿入してください。以下のスクリーンショットは、行を受け入れる準備ができた、新しく作成されたコーステーブルを示しています。
現時点では、テーブルは存在しているだけで、データはまだ入っていません。
Transact-SQLには、テーブルにデータを挿入するためのINSERT文が用意されています。この文を使用すると、テーブルに1行または複数行を挿入できます。
構文:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (expression_1, expression_2, ... ), (expression_1, expression_2, ... ), ...;
上記の構文は、VALUESキーワードを使用してテーブルにデータを挿入する場合のコマンドの基本形式を示しています。
INSERTコマンドを使って4行を挿入してみましょう。
Insert into COURSE values (1,'SQL'); Insert into COURSE values (2,'Python'); Insert into COURSE values (3,'SQL'); Insert into COURSE values (4,'C');
以下のスクリーンショットは、4行の挿入が成功したことを示しています。
ステップ3) データを表示するには、SELECT ステートメントを使用します。SQL Server でデータを表示するには、次の構文を使用します。
SELECT expression FROM tableName [WHERE condition];
クエリの例:
SELECT * FROM COURSE;
テーブルが作成され、現在 4 つのレコードが格納されています。どの列にも重複する値を持つレコードを作成できることに注意してください。 制約.
T-SQL: 既存のテーブルを使用して新しいテーブルを作成する
上記で作成した COURSE テーブルと同様のテーブルをもう 1 つ作成したいが、Course_ID 列ではなく Course_Name 列だけが必要だとします。
構文:
SELECT (Column 1, …) INTO <New Table name> FROM <Old Table name>;
クエリの例:
SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;
ステップ1) 「実行」をクリックしてクエリを実行します。以下に示すように、古いテーブルからコピーされた1つの列と4つのレコードを持つ、COURSE_NAMESという名前の新しいテーブルが作成されます。
クエリの例:
SELECT * FROM COURSE_NAMES;
以下に、新しいCOURSE_NAMESテーブルに含まれる4つのCourse_Nameレコードを示します。
テーブルデザイナーの使用
また、テーブルを作成することもできます。 SQL Server Management Studio テーブルデザイナーを使用したIDE。
ステップ1) 下の図に示すように、テーブルを右クリックして「新規作成」>「テーブル」を選択します。
ステップ2) 列名と データ型、そして各列でNULL値を許可するかどうかを選択します。
ステップ3) Ctrl+Sキーを押してテーブルを保存し、名前を「Course_Title」と入力してください。
「更新」をクリックすると、以下に示すように、「Course_Title」という名前と「Course_Name」という列が1つ含まれた新しいテーブルが表示されます。
SQL Server でのテーブルの変更
SQL Serverでテーブルを変更するには、2つの方法があります。
- T-SQL: 新しい列を追加してテーブルを変更します。
- テーブルデザイナーを使用しています。
T-SQL: 列を挿入してテーブルを変更する
以下は、SQLにおけるALTERコマンドの構文です。
構文:
Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;
クエリ:
ALTER TABLE dbo.Course_Title ADD Course_Duration VARCHAR(20);
ステップ1) 「実行」をクリックしてクエリを実行します。すると、以下に示すように、Course_Title テーブル内に Course_Duration という名前の新しい列が作成されます。
テーブルデザイナーの使用
テーブルデザイナーを使用すれば、UIからテーブルを変更することもできます。
ステップ1) 既存のテーブルを右クリックして、[デザイン]を選択します(下図参照)。
ステップ2) 列名を「Course_Start_Date」として追加し、データ型を選択してください。
ステップ3) Ctrl+Sキーを押して、新しく追加した列を保存します。以下に示すように、Course_TitleテーブルにCourse_Start_Dateという名前の新しい列が作成されます。
SQL Server でテーブルを削除する
テーブルは不要になった時点で削除します。
SQL Serverでテーブルを削除するには、2つの方法があります。
- SQL Server Management Studioを使用します。
- T-SQL: DROP TABLE を使用してテーブルを削除します。
SQL Server ManagementStudioの使用
ステップ1) 既存のテーブルを右クリックして「削除」を選択し、以下の図のように「Course_Title」という名前のテーブルを選択します。
ステップ2) 「オブジェクトの削除」ウィンドウで、「OK」をクリックします。
以下に示すように、Course_Title テーブルはテーブルリストから削除されました。
T-SQL: テーブルを削除する
以下は、テーブルを削除するための構文です。
構文:
DROP TABLE <tableName>;
パラメータ tableName は、削除するテーブルの名前です。
クエリ:
DROP TABLE COURSE_NAMES;
ステップ1) 「実行」をクリックしてクエリを実行します。以下に示すように、COURSE_NAMES テーブルがテーブルリストから削除されます。
あるいは、ソースコードには、テーブル構造はそのまま残しつつ行(データ)のみを削除することを目的とした DELETE TABLE コマンドが示されており、これによりテーブルを後で再利用することが可能になります。
構文:
DELETE TABLE <Table name>;
注意: 標準のT-SQLでは、行は次のように削除されます。 DELETE FROM <table>、そしてテーブルはすぐに空になる TRUNCATE TABLE <table>; 上記のように、DROP TABLE コマンドでテーブル全体が削除されます。
興味深い事実!
- XMLや画像などの大きなファイルは、VARBINARY(MAX)、VARCHAR(MAX)、XML型などのラージオブジェクトデータ型を使用して列に格納できます(SQL Serverは Oracle- スタイルの BLOB および CLOB 名)。
- DELETE は行のみを削除し、トランザクション内ではロールバックできますが、DROP はテーブル構造全体を削除します。SQL Server では、明示的なトランザクション内で実行された場合、DROP もロールバックできます。










![オブジェクトエクスプローラーでテーブルを右クリックし、[新規作成]、[テーブル]の順に選択します。](https://www.guru99.com/images/1/030819_0814_SQLServerTa10.png)













