Mysql-alter-command
MySQL-ALTERコマンド
MySQLの ALTER コマンドは、テーブルの名前やテーブルフィールドを変更する場合、またはテーブルの既存の列を追加または削除する場合に非常に便利です。
列のドロップ、追加、または再配置
上記のMySQLテーブルから既存の列iを削除する場合は、以下に示すように ALTER コマンドとともに DROP 句を使用します-
列がテーブルに残っている場合、 DROP 句は機能しません。
列を追加するには、ADDを使用して列定義を指定します。 次のステートメントは、 i 列をtestalter_tblに復元します-
このステートメントを発行すると、testalterには、最初にテーブルを作成したときと同じ2つの列が含まれますが、同じ構造にはなりません。 これは、デフォルトでテーブルの最後に追加される新しい列があるためです。 したがって、 i は元々mytblの最初の列でしたが、現在は最後の列です。
テーブル内の特定の位置に列が必要であることを示すには、FIRSTを使用して最初の列にするか、 AFTER col_name を使用して、新しい列をcol_nameの後に配置することを示します。
次の ALTER TABLE ステートメントを試し、各ステートメントの後に SHOW COLUMNS を使用して、それぞれの効果を確認します-
FIRSTおよびAFTER指定子は、ADD句でのみ機能します。 つまり、テーブル内の既存の列の位置を変更する場合は、最初に DROP してから、新しい位置に ADD する必要があります。
列定義または名前の変更(変更)
列の定義を変更するには、ALTERコマンドとともに MODIFY または CHANGE 句を使用します。
たとえば、列 c をCHAR(1)からCHAR(10)に変更するには、次のコマンドを使用できます-
次の例を試してください-
CHANGEを使用して、 J を BIGINT から INT に変換し、列名を変更しない場合、ステートメントは以下のようになります-
- NULLおよびデフォルト値の属性に対するALTER TABLEの効果*-列を変更または変更するとき、列にNULL値を含めることができるかどうか、およびそのデフォルト値を指定することもできます。 実際、これを行わないと、MySQLはこれらの属性の値を自動的に割り当てます。
次のコードブロックの例は、 NOT NULL 列の値がデフォルトで100になっています。
上記のコマンドを使用しない場合、MySQLはすべての列のNULL値を埋めます。
列のデフォルト値の変更(変更)
次の例を試してください。
テーブルタイプの変更(変更)
ALTERコマンドとともに TYPE 句を使用すると、テーブルタイプを使用できます。 次の例を試して、 testalter_tbl を MYISAM テーブルタイプに変更してください。
テーブルの現在のタイプを調べるには、 SHOW TABLE STATUS ステートメントを使用します。
テーブルの名前変更(変更)
テーブルの名前を変更するには、 ALTER TABLE ステートメントの RENAME オプションを使用します。
次の例を試して、 testalter_tbl の名前を alter_tbl に変更してください。
ALTERコマンドを使用して、MySQLファイルでINDEXコマンドを作成およびドロップできます。 このコマンドについては、次の章で詳しく説明します。