📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == <br><br> == 自動インクリメント == 自動インクリメントとは、指定したカラムにデータが追加される時、データベース…」
 
1行目: 1行目:
== 概要 ==
== 概要 ==


<br><br>
== カラムの追加・削除 ==
既存のテーブルの定義(テーブルの構造)を変更するには、<code>ALTER TABLE</code>文を使用する。<br>
<br>
<code>ALTER TABLE</code>文を使用すれば、テーブル名やカラム名の変更および定義を変更することができる。<br>
<br>
以下のようなマスタテーブルを定義および作成する。<br>
<syntaxhighlight lang="sql">
CREATE TABLE T_Sample
(
    id INT NOT NULL PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    password VARCHAR(20) NOT NULL,
);
</syntaxhighlight>
<br>
<center>
{| class="wikitable" style="background-color:#fefefe;"
|+ マスタテーブル
|-
! style="background-color:#66CCFF;" | カラム名
! style="background-color:#66CCFF;" | データ型
! style="background-color:#66CCFF;" | 主キー
|-
| id || INT || ○
|-
| name || VARCHAR(50) ||
|-
| password || VARCHAR(50) ||
|}
</center>
<br>
==== カラムの追加 ====
テーブルにカラムを追加する場合、<code>ALTER TABLE <テーブル名> ADD</code>文を使用する。<br>
<code>ALTER TABLE <テーブル名> ADD</code>文では、DBMSによっては、<code>COLUMN</code>の記述を省略することができる。<br>
<br>
<u>※注意</u><br>
<u>SQL Serverでは、<code>COLUMN</code>を記述することができない。</u><br>
<syntaxhighlight lang="sql">
ALTER TABLE <テーブル名> ADD [COLUMN] <追加するカラム名> <追加するカラムのデータ型> <追加するカラムの制約>
-- または
ALTER TABLE <テーブル名> ADD <追加するカラム名> <追加するカラムのデータ型> <追加するカラムの制約>
</syntaxhighlight>
<br>
以下の例では、マスタテーブルにカラムを1つ追加している。<br>
追加するカラム名をtel、データ型はVARCHAR(20)、カラムの制約には値が重複しないようにUNIQUE制約を指定している。<br>
<syntaxhighlight lang="sql">
ALTER TABLE T_Sample ADD [COLUMN] tel VARCHAR(20) UNIQUE
</syntaxhighlight>
<br>
==== カラムの削除 ====
カラムを削除する場合、<code>ALTER TABLE <テーブル名> DROP</code>文を使用する。<br>
<code>ALTER TABLE <テーブル名> DROP</code>文では、DBMSによっては、<code>COLUMN</code>の記述を省略することができる。<br>
<br>
<u>※注意</u><br>
<u>SQL Serverでは、<code>COLUMN</code>を記述することができない。</u><br>
<syntaxhighlight lang="sql">
ALTER TABLE <テーブル名> DROP [COLUMN] <削除するカラム名>
</syntaxhighlight>
<br>
==== カラムの追加の補足 ====
既存のテーブルにおいて、<code>ALTER TABLE</code>文で追加したカラム列は、最も最後になるのが原則である。<br>
DBMSによっては、カラムを追加する時に任意の位置を指定できるものもある。<br>
<br>
カラムを追加する位置を指定する場合は、<code>AFTER</code>キーワードを使用して、追加する位置の前にあるカラムを指定する。<br>
<syntaxhighlight lang="sql">
ALTER TABLE <テーブル名> ADD <追加するカラム名> <データ型> <カラムの制約> AFTER <追加する位置の前にあるカラム列>
</syntaxhighlight>
<br>
例えば、マスタテーブルT_Sampleにカラムtelを追加する時、カラムnameとカラムpasswordの間に追加する場合は、以下のように記述する。<br>
<syntaxhighlight lang="sql">
ALTER TABLE T_Sample ADD tel VARCHAR(20) UNIQUE AFTER name
</syntaxhighlight>
<br><br>
<br><br>