📢 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> | ||