sql >> データベース >  >> RDS >> Database

SQL ALTER TABLE

    構造化照会言語で、既存の表に列を追加する場合は、表を変更するか、表から列を削除します。これらの操作はすべて、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; 


    1. SQLServer用のIntelOptaneStorageの使用

    2. SQLServerのダーティリードの問題を理解する

    3. SQLServerのビュー

    4. PostgreSQLの根性:「resjunk」とは何ですか?