構造化照会言語で、既存の表に列を追加する場合は、表を変更するか、表から列を削除します。これらの操作はすべて、ALTERTABLEステートメントを使用している間のみ許可されます。 ALTER TABLEステートメントを使用すると、ユーザーはSQL内の既存のテーブルにSQL制約を追加または削除することもできます。
ALTER TABLEステートメントを使用すると、ユーザーは既存のテーブルの名前を変更することもできます。
SQLのALTERTABLEADDCOLUMNステートメント
これは、既存のテーブルに列を追加する必要がある場合に使用されます。このような状況では、新しいテーブルを作成する代わりに、ADDキーワードを使用して既存のテーブルに列を追加できます。
SQLでのALTERTABLEADDCOLUMNステートメントの構文
ALTER TABLE Table_Name ADD Column_Name Data_Type;
上記の構文は、既存のテーブルに列を追加するために使用され、ユーザーがテーブルに1つのフィールドのみを追加できるようにします。
既存のテーブルに複数の列を追加するには、次の構文を使用します。
ALTER TABLE Table_Name ADD (Column_Name1 Data_Type, Column_Name2 Data_Type);
例を使用して、SQLのALTER TABELADDCOLUMNを理解しましょう。
SQLでのALTERTABLEADDCOLUMNの例
複数のSQLの例を取り上げました。これは、ALTER TABLEADDCOLUMNステートメントを使用して既存のテーブルに単一の列と複数の列を追加することを理解するのに役立ちます。
与えられたレコードと一緒に次の表を検討してください。
表1:Mobile_Plan:
Package_Id | Data_Id | Talktime_Id |
1 | 2 | 1 |
2 | 3 | 2 |
3 | 1 | 3 |
表2:Data_Plan:
Data_Id | Data_Limit | Data_Price |
1 | 2 | 30 |
2 | 5 | 70 |
3 | 4 | 55 |
表3:Talktime_Plan:
Talktime_Id | Talktime _Limit | 通話時間_価格 |
1 | 100 | 150 |
2 | 70 | 105 |
3 | 60 | 90 |
表4:顧客(空のテーブル)
例1:Data_Planテーブルに新しい列Extra_Data_Priceを追加するクエリを記述します。
ALTER TABLE Data_Plan ADD Extra_Data_Price int;
上記のクエリでALTERTABLEADDステートメントを使用して、Data_Planテーブルに新しいExtra_Data_Price列を追加しました。既存のテーブルに1つの列を追加しました。
ここで、DESCキーワードとテーブル名を使用して、Extra_Data_Price列がData_Planテーブルに正常に追加されたかどうかをクロスチェックします。
DESC Data_Plan;
フィールド | タイプ | ヌル | キー | デフォルト | 追加 |
Data_Id | int(11) | いいえ | PRI | NULL | |
Data_Limit | int(11) | はい | NULL | ||
Data_Price | int(11) | はい | NULL | ||
Extra_Data_Price | Int(11) | はい |
例2: クエリを記述して、Customerテーブルに複数の列CustomerId、Customer_Name、およびPhone_Numberを追加します。このテーブルは空で、列はありません。
ALTER TABLE Customer ADD (CustomerId int, Customer_Name varchar(20), Phone_Number varchar(10));
上記のクエリでALTERTABLEADDステートメントを使用して、Customerテーブルに複数の新しい列CustomerId、Customer_Name、およびPhone_Numberを追加しました。既存のテーブルに複数の列を追加しました。
ここで、DESCキーワードとテーブル名を使用して、CustomerId、Customer_Name、およびPhone_Number列がCustomerテーブルに正常に追加されたかどうかをクロスチェックします。
DESC Customer;
フィールド | タイプ | ヌル | キー | デフォルト | 追加 |
CustomerId | int(11) | はい | NULL | ||
Customer_Name | varchar(20) | はい | NULL | ||
Phone_Number | varchar(10) | はい | NULL |
主キー、外部キーなどの制約を既存のテーブルに追加するとします。既存のテーブルに主キー制約と外部キー制約を追加する例を取り上げます。 ALTERTABLEADDステートメントを使用してこれらの制約を追加することもできます。
例3: Customerテーブルの列名CustomerIdに主キー制約を追加するクエリを記述します。
ALTER TABLE Customer ADD Primary Key(CustomerId);
上記のクエリでは、ALTER TABLE ADDステートメントを使用して、CustomerTableの列名CustomerIdに主キー制約を追加しました。プライマリキーキーワードとALTERTABLEADDステートメントを使用して、CustomerIdに制約を追加しました。
ここで、DESCキーワードとテーブル名を使用して、CustomerテーブルでCustomerId列キーがPRIに変更されているかどうかをクロスチェックします。
DESC Customer;
フィールド | タイプ | ヌル | キー | デフォルト | 追加 |
CustomerId | int(11) | はい | PRI | NULL | |
Customer_Name | varchar(20) | はい | NULL | ||
Phone_Number | varchar(10) | はい | NULL |
例4: Customerテーブルの列名Package_Idに外部キー制約を追加するクエリを記述します。
ALTER TABLE Customer ADD (Package_Id int, FOREIGN KEY(Package_Id) references Mobile_Plan(Package_ID));
上記のクエリでは、最初にCustomerテーブルにPackage_Id列を追加し、次に、ALTERTABLEADDステートメントを使用して同じクエリの同じ列Package_Idで外部キーを使用しました。
ここで、DESCキーワードとテーブル名を使用して、Package_Id列がCustomerテーブルに追加されたかどうかをクロスチェックし、キーをMULに変更します。
DESC Customer;
フィールド | タイプ | ヌル | キー | デフォルト | 追加 |
CustomerId | int(11) | はい | PRI | NULL | |
Customer_Name | varchar(20) | はい | NULL | ||
Phone_Number | varchar(10) | はい | NULL | ||
Package_Id | Int(11) | はい | MUL | NULL |
SQLのALTERTABLEMODIFYCOLUMNステートメント
データ型のように列名または定義を更新するとします。その場合、ALTER TABLE MODIFYステートメントを使用して、既存のテーブルの列データ型を更新します。ステートメントのTable_Nameの直後にMODIFYキーワードを使用します。
SQLでのALTERTABLEMODIFYCOLUMNステートメントの構文
ALTER TABLE Table_Name MODIFY Column_Name Data_Type;
上記の構文は、既存のテーブルの列を変更するために使用され、ユーザーは1つのフィールドのみを変更できます。
既存のテーブルの複数の列を変更するには-以下の構文を使用します:
ALTER TABLE Table_Name MODIFY (Column_Name1 Data_Type, Column_Name2 Data_Type);
例を使用して、SQLのALTERTABELMODIFYを理解しましょう。
SQLのALTERTABLEMODIFY列の例
ALTER TABLEMODIFYステートメントを使用して既存のテーブルの単一の列と複数の列を変更することを理解するのに役立つ複数のSQLの例を取り上げました。
与えられたレコードと一緒に次の表を検討してください。
表1:Mobile_Plan:
Package_Id | Data_Id | Talktime_Id |
1 | 2 | 1 |
2 | 3 | 2 |
3 | 1 | 3 |
表2:Data_Plan:
Data_Id | Data_Limit | Data_Price |
1 | 2 | 30 |
2 | 5 | 70 |
3 | 4 | 55 |
表3:Talktime_Plan:
Talktime_Id | Talktime _Limit | 通話時間_価格 |
1 | 100 | 150 |
2 | 70 | 105 |
3 | 60 | 90 |
表4:顧客
CustomerId | Customer_Name | Phone_Number | Package_Id |
101 | Bhavesh | 9846522021 | 1 |
102 | マヘシュ | 7798598272 | 3 |
103 | アニタ | 7865222021 | 1 |
例1: 顧客テーブルの顧客名列のサイズを更新するクエリを記述します。
ALTER TABLE Customer MODIFY Customer_Name varchar(30);
上記のクエリでは、列のCustomer_Nameのサイズを20から30に変更しました。テーブル名の直後にMODIFYキーワードを指定したALTER TABLEステートメントを使用して、列を変更しました。
ここで、DESCキーワードとテーブル名を使用して、Customer_Name列のデータ型がCustomerテーブルで変更されているかどうかをクロスチェックします。
DESC Customer;
フィールド | タイプ | ヌル | キー | デフォルト | 追加 |
CustomerId | int(11) | はい | PRI | NULL | |
Customer_Name | varchar(30) | はい | NULL | ||
Phone_Number | varchar(10) | はい | NULL | ||
Package_Id | Int(11) | はい | MUL | NULL |
例2: Talktime_Planテーブルの列Talktime_LimitおよびTalktime_Priceのデータ型を更新するクエリを記述します。
ALTER TABLE Talktime_Plan MODIFY (Talktime_Limit varchar(2), Talktime_Price varchar(2));
上記のクエリで、列Talktime_LimitおよびTalktime_Priceデータ型をintからvarcharに変更しました。列を変更するために、テーブル名の直後にMODIFYキーワードを指定したALTERTABLEステートメントを使用しました。
ここで、DESCキーワードとテーブル名を使用して、Talktime_Planテーブルの列Talktime_LimitおよびTalktime_Priceデータ型が変更されているかどうかをクロスチェックします。
DESC Talktime_Plan;
フィールド | タイプ | ヌル | キー | デフォルト | 追加 |
TalkTime_Id | int(11) | はい | PRI | NULL | |
TalkTime_Limit | varchar(2) | はい | NULL | ||
TalkTime_Price | varchar(2) | はい | NULL |
SQLのALTERTABLEDROPCOLUMNステートメント
これは、既存のテーブルから列を削除するときに使用されます。このような状況では、データベースからテーブル全体を削除するのではなく、DROPキーワードを使用して列を削除できます。
SQLでのALTERTABLEDROPCOLUMNステートメントの構文
ALTER TABLE Table_Name DROP Column_Name;
例を使用して、SQLのALTERTABELDROPを理解しましょう。
SQLのALTERTABLEDROP列の例
ALTERTABLEDROPステートメントを使用して既存のテーブルの単一列と複数列を変更することを理解するのに役立つSQLの例を取り上げました。
与えられたレコードと一緒に次の表を検討してください。
表1:Mobile_Plan:
Package_Id | Data_Id | Talktime_Id |
1 | 2 | 1 |
2 | 3 | 2 |
3 | 1 | 3 |
表2:Data_Plan:
Data_Id | Data_Limit | Data_Price |
1 | 2 | 30 |
2 | 5 | 70 |
3 | 4 | 55 |
表3:Talktime_Plan:
Talktime_Id | Talktime _Limit | 通話時間_価格 |
1 | 100 | 150 |
2 | 70 | 105 |
3 | 60 | 90 |
表4:顧客
CustomerId | Customer_Name | Phone_Number | Package_Id |
101 | Bhavesh | 9846522021 | 1 |
102 | マヘシュ | 7798598272 | 3 |
103 | アニタ | 7865222021 | 1 |
例1:CustomerテーブルからPackage_Idを削除するクエリを記述します。
ALTER TABLE Customer DROP COLUMN Package_Id;
上記のクエリで、Customerテーブルから列名Package_Idを削除しました。 ALTER TABLE DROPステートメントを使用して、テーブルから列を削除しました。
ここで、CustomerテーブルのPackage_Id列が正常に削除されたかどうかをcross_checkします。
SELECT * FROM CUSTOMER;
CustomerId | Customer_Name | Phone_Number |
101 | Bhavesh | 9846522021 |
102 | マヘシュ | 7798598272 |
103 | アニタ | 7865222021 |
SQLのALTERTABLERENAMEステートメント
列またはテーブルの名前を変更したい場合は、RENAMEキーワードを使用して、既存のテーブルのフィールドまたはテーブルの名前を変更します。
SQLでのALTERTABLERENAMEステートメントの構文
ALTER TABLE Table_Name RENAME Column_Name;
例を使用して、SQLのALTERTABELRENAMEを理解しましょう。
SQLのALTERTABLERENAME列の例
ALTER TABLERENAMEステートメントを使用して既存のテーブルの単一列と複数列を変更することを理解するのに役立つSQLの例を取り上げました。
与えられたレコードと一緒に次の表を検討してください。
CustomerId | Customer_Name | Phone_Number |
101 | Bhavesh | 9846522021 |
102 | マヘシュ | 7798598272 |
103 | アニタ | 7865222021 |
例1:Customerテーブルの名前を変更するクエリを記述します。
ALTER TABLE Customer RENAME TO CUST;
上記のクエリでは、Customerテーブルのテーブル名をCustテーブルに変更しました。 ALTERTABLERENAMEステートメントを使用してテーブル名の名前を変更しました。
テーブルの名前が正常に変更されたかどうかをクロスチェックします。
SHOW TABLES;
例1:列CustomerIdの名前をCustテーブルのcidに変更するクエリを記述します。
ALTER TABLE Cust RENAME COLUMN CustomerId cid int not null;
上記のクエリでは、列名CustomerIdをCidに変更しました。 ALTERTABLERENAMEステートメントを使用してテーブル名の名前を変更しました。
テーブルの名前が正常に変更されたかどうかをクロスチェックします。
SELECT * FROM CUST;