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

SQLiteの名前変更列

    概要 :このチュートリアルでは、SQLiteでテーブルの列の名前を変更する方法を段階的に学習します。

    SQLite ALTER TABLERENAMECOLUMNステートメントの概要

    SQLiteは、バージョン3.25.0以降、ALTER TABLEを使用して列の名前を変更するためのサポートを追加しました。 次の構文のステートメント:

    ALTER TABLE table_name
    RENAME COLUMN current_name TO new_name;Code language: SQL (Structured Query Language) (sql)

    この構文では:

    • まず、ALTER TABLEの後にテーブルの名前を指定します キーワード。
    • 次に、RENAME COLUMNの後に名前を変更する列の名前を指定します キーワードとTOの後の新しい名前 キーワード。

    SQLite ALTER TABLERENAMECOLUMNの例

    ALTER TABLE RENAME COLUMNの使用例を見てみましょう。 ステートメント。

    まず、Locationsという新しいテーブルを作成します :

    CREATE TABLE Locations(
    	LocationId INTEGER PRIMARY KEY,
    	Address TEXT NOT NULL,
    	City TEXT NOT NULL,
    	State TEXT NOT NULL,
    	Country TEXT NOT NULL
    );Code language: SQL (Structured Query Language) (sql)

    次に、Locationsに新しい行を挿入します INSERTを使用したテーブル ステートメント:

    INSERT INTO Locations(Address,City,State,Country)
    VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

    3番目に、列の名前をAddressに変更します StreetALTER TABLE RENAME COLUMNを使用する ステートメント:

    ALTER TABLE Locations
    RENAME COLUMN Address TO Street;Code language: SQL (Structured Query Language) (sql)

    第4に、Locationsからデータをクエリします テーブル:

    SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

    出力:

    LocationId  Street                 City        State       Country
    ----------  ---------------------  ----------  ----------  ----------
    1           3960 North 1st Street  San Jose    CA          USACode language: Shell Session (shell)

    最後に、Locationsのスキーマを表示します テーブル:

    .schema LocationsCode language: Shell Session (shell)

    出力:

    CREATE TABLE Locations(
            LocationId INTEGER PRIMARY KEY,
            Street TEXT NOT NULL,
            City TEXT NOT NULL,
            State TEXT NOT NULL,
            Country TEXT NOT NULL
    );Code language: SQL (Structured Query Language) (sql)

    列の名前を変更する古い方法

    SQLiteはALTER TABLE RENAME COLUMNをサポートしていませんでした バージョン3.25.0より前の構文。

    3.25.0より前のバージョンでSQLiteを使用していて、アップグレードできなかった場合は、次の手順に従って列の名前を変更する必要があります。

    • まず、トランザクションを開始します。
    • 次に、名前を変更する列を除いて、元のテーブルと同じ構造の新しいテーブルを作成します。
    • 3番目に、元のテーブルから新しいテーブルにデータをコピーします。
    • 4番目に、元のテーブルを削除します。
    • 5番目に、新しいテーブルの名前を元のテーブルに変更します。
    • 最後に、トランザクションをコミットします。

    列の名前の変更例

    次のステートメントは、Locationsを再作成します テーブル:

    DROP TABLE IF EXISTS Locations;
    CREATE TABLE Locations(
    	LocationId INTEGER PRIMARY KEY,
    	Address TEXT NOT NULL,
    	State TEXT NOT NULL,
    	City TEXT NOT NULL,
    	Country TEXT NOT NULL
    );Code language: SQL (Structured Query Language) (sql)

    そして、このINSERT ステートメントは、Locationsに新しい行を挿入します テーブル:

    INSERT INTO Locations(Address,City,State,Country)
    VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

    列のAddressを変更するとします。 Streetへ 。

    まず、新しいトランザクションを開始します:

    BEGIN TRANSACTION;Code language: SQL (Structured Query Language) (sql)

    次に、LocationsTempという新しいテーブルを作成します Locationsと同じ構造です Addressを除くテーブル 列:

    CREATE TABLE LocationsTemp(
    	LocationId INTEGER PRIMARY KEY,
    	Street TEXT NOT NULL,
    	City TEXT NOT NULL,
    	State TEXT NOT NULL,
    	Country TEXT NOT NULL
    );
    Code language: SQL (Structured Query Language) (sql)

    3番目に、テーブルLocationsからデータをコピーします LocationsTempへ :

    INSERT INTO LocationsTemp(Street,City,State,Country)
    SELECT Address,City,State,Country
    FROM Locations;Code language: SQL (Structured Query Language) (sql)

    第4に、Locationsを削除します テーブル:

    DROP TABLE Locations;Code language: SQL (Structured Query Language) (sql)

    5番目に、テーブルの名前をLocationsTempに変更します。 Locationsへ :

    ALTER TABLE LocationsTemp 
    RENAME TO Locations;Code language: SQL (Structured Query Language) (sql)

    最後に、トランザクションをコミットします:

    COMMIT;Code language: SQL (Structured Query Language) (sql)

    Locationsをクエリする場合 表を見ると、Address列が表示されます。 Streetに名前が変更されました :

    SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

    出力は次のとおりです:

    概要

    • ALTER TABLE RENAME COLUMNを使用します テーブルの列の名前を変更します。
    • SQLite 3.25.0を使用している場合は、SQLite 3.25.0をアップグレードして、新しい構文を使用する必要があります。それ以外の場合は、上記の手順に従って列の名前を変更する必要があります。


    1. T-SQLを使用してSQLServerデータベースのリカバリモデルを変更する方法

    2. SQLServerで日付と時刻をフォーマットする方法

    3. T-SQLを使用して日月と年から日付を作成する

    4. 複数のID値を受け入れるT-SQLストアドプロシージャ