MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
SQL Server - テーブルの作成のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
SQL Server - テーブルの作成
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <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> <br> ==== 自動インクリメントの設定 ==== 自動インクリメントは、整数か浮動小数点のデータ型のカラムのみ設定できる。<br> また、主キーまたはユニークキーのカラムのみ指定できる。<br> <br> <u>※注意</u><br> <u>自動インクリメントと主キーは、テーブルの1つのカラムにのみ指定できる。</u><br> <u>一般的には、自動インクリメントと主キーを併用して、連番を付ける。</u><br> <br> 自動インクリメントを設定するには、以下のように記述する。<br> <syntaxhighlight lang="sql"> CREATE TABLE <テーブル名> ( -- ...略 <カラム名> <データ型> AUTO_INCREMENT -- ...略 ); </syntaxhighlight> <br> 以下の例では、T_Sampleテーブルを作成して、idカラムに自動インクリメントを設定している。<br> <syntaxhighlight lang="sql"> CREATE TABLE T_Sample ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(10), PRIMARY KEY (id) ); -- または create table T_Sample ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(10) NOT NULL ); </syntaxhighlight> <br> 次に、レコードを1つ追加する。<br> <syntaxhighlight lang="sql"> INSERT INTO T_Sample (name) VALUE ('山田太郎'); </syntaxhighlight> <br> <code>SELECT</code>文でテーブルを確認すると、カラムidに値を指定しなくても自動で"1"が追加される。<br> +----+--------------------+ | id | name | +----+--------------------+ | 1 | 山田太郎 | +----+--------------------+ <br> ==== 自動インクリメントの初期値を設定する ===== 自動インクリメントは、基本的に"1"から連番が付けられる。<br> しかし、1以外の値から連番を付けたい場合もある。<br> <br> その時、自動インクリメントの値を指定するには、以下のように記述する。<br> <syntaxhighlight lang="sql"> CREATE TABLE <テーブル名> ( <カラム名> <データ型> PRIMARY KEY AUTO_INCREMENT ) AUTO_INCREMENT = <値>; <br> ==== 自動インクリメントの値を変更する ==== 自動インクリメントの値を変更するには、以下のように記述する。<br> <syntaxhighlight lang="sql"> ALTER TABLE <テーブル名> AUTO_INCREMENT = <値>; </syntaxhighlight> <br> 以下の例では、テーブルT_Sampleのカラムidの自動インクリメントの初期値を50に変更している。<br> <syntaxhighlight lang="sql"> ALTER TABLE T_Sample AUTO_INCREMENT = 50; </syntaxhighlight> <br> SELECT文でレコードを確認すると、以下のように表示される。<br> +----+--------------------+ | id | name | +----+--------------------+ | 1 | 山田太郎 | | 50 | 鈴木一郎 | +----+--------------------+ <br> ==== 自動インクリメントのカラムを変更する ==== 例えば、任意のカラムに自動インクリメントを設定している時、別カラムに自動インクリメントを再設定したい場合がある。<br> この時、自動インクリメントを行うカラムを変更する手順を、以下に記載する。<br> <br> まず、以下のようなテーブルを作成する。<br> <syntaxhighlight lang="sql"> CREATE TABLE T_Sample ( id INT NOT NULL AUTO_INCREMENT, new_id INT NOT NULL, name VARCHAR(10) NOT NULL, PRIMARY KEY (id) ); </syntaxhighlight> <br> 次に、<code>CHANGE</code>コマンドまたは<code>MODIFY COLUMN</code>を使用して、カラムidの自動インクリメントおよび主キーを解除する。<br> <syntaxhighlight lang="sql"> -- 自動インクリメントの解除 ALTER TABLE T_Sample CHANGE id id INT NOT NULL; -- 主キーの解除 ALTER TABLE T_Sample DROP PRIMARY KEY; </syntaxhighlight> <br> 最後に、カラムnew_idに主キーおよび自動インクリメントを設定する。<br> <syntaxhighlight lang="sql"> -- 主キーの登録 ALTER TABLE T_Sample ADD PRIMARY KEY (new_id); -- 自動インクリメントの登録 ALTER TABLE T_Sample CHANGE new_id new_id INT AUTO_INCREMENT; -- または ALTER TABLE T_Sample MODIFY COLUMN new_id INT AUTO_INCREMENT NOT NULL; </syntaxhighlight> <br> テーブルのカラムを確認すると、以下のように表示される。<br> <syntaxhighlight lang="sql"> SHOW COLUMNS FROM T_Sample; </syntaxhighlight> <br> +--------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+----------------+ | id | int | NO | | NULL | | | new_id | int | NO | PRI | NULL | auto_increment | | name | varchar(10) | NO | | NULL | | +--------+-------------+------+-----+---------+----------------+ <br> ==== 自動インクリメントを追加する ==== 自動インクリメントを新規登録する場合、上記の変更と同様、主キーと自動インクリメントを登録する。<br> <syntaxhighlight lang="sql"> -- 主キーの登録 ALTER TABLE <テーブル名> ADD PRIMARY KEY (<カラム名>); -- 自動インクリメントの登録 ALTER TABLE <テーブル名> CHANGE <カラム名> <カラム名> <データ型> AUTO_INCREMENT; -- または ALTER TABLE <テーブル名> MODIFY COLUMN <カラム名> <データ型> AUTO_INCREMENT NOT NULL; </syntaxhighlight> <br> ==== 自動インクリメントを削除する ==== 自動インクリメントを削除する場合、上記の変更方法と同様、主キーと自動インクリメントを解除する。<br> <syntaxhighlight lang="sql"> -- 自動インクリメントの解除 ALTER TABLE <テーブル名> CHANGE <カラム名> <カラム名> <データ型> NOT NULL; -- または ALTER TABLE <テーブル名> MODIFY COLUMN <カラム名> <データ型> NOT NULL; -- 主キーの解除 ALTER TABLE <テーブル名> DROP PRIMARY KEY; </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:SQL_Server]]
SQL Server - テーブルの作成
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse