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

SQLでのドロップとトランケート

    この記事では、DropコマンドとTruncateコマンド、およびこれら2つのコマンドの違いについて学習して理解します。

    ドロップコマンドとは何ですか?

    ドロップは、構造化照会言語のデータ定義言語コマンドです。 SQLのDropコマンドは、データベーステーブルからテーブル定義、データベース、インデックス、ビュー、トリガー、およびデータ制約を削除または削除するために使用されます。

    構造化照会言語では、dropコマンドを使用して、リレーショナルデータベース管理システム(RDBMS)から要素を削除します。

    Deleteコマンドは、実行されるとデータをロールバックできますが、Dropコマンドは、実行されるとデータをロールバックできません。ドロップコマンドは、テーブルとその内容を完全に削除するため、テーブルスペースが格納されているメモリを解放するために使用されます。

    ドロップコマンドは、構造化照会言語の切り捨てコマンドと比較して高速です。ただし、dropコマンドの実行タイミングは複雑なため、実行タイミングが遅くなります。

    テーブルから1つ以上の列を削除するには、ALTERTABLEコマンドとともにdropコマンドを使用します。

    データベースを削除するDROPコマンドの構文は次のとおりです。

    DROP DATABASE Database_Name;

    上記の構文では、システムから削除するデータベース名を指定する必要があります。

    注:-ドロップコマンドは、データベースで作成されたテーブル、インデックス、ビュー、トリガーなどのすべてのオブジェクトをデータベースから削除するため、データベースを削除するためにDROPコマンドを使用する前に注意してください。

    テーブルを削除するための構文は次のとおりです。

    DROP TABLE Table_Name;

    上記の構文では、データベースから削除するテーブル名を指定する必要があります。

    1つのステートメントで同じデータベースから複数のテーブルを削除するための構文は次のとおりです。

    DROP TABLE table1, table2, table3;

    上記の構文を使用して、同じデータベースから複数のテーブルを削除できます。

    インデックスを削除するための構文は次のとおりです。

    DROP INDEX Index_Name;

    上記の構文では、インデックスキーワードの直後にインデックス名を指定する必要があります。

    ビューを削除するための構文は次のとおりです。

    DROP VIEW View_Name;

    上記の構文で、Viewキーワードの直後にビュー名を指定する必要があります。

    ALTERTABLEを使用してテーブルから制約を削除するための構文は次のとおりです。

    ALTER TABLE Table_Name DROP CONSTRAINT Constraint_Name;

    SQLでALTERTABLEコマンドを使用すると、テーブルから制約を削除できます。

    DROPコマンドの例:

    DROPコマンドを使用していくつかの例を取り上げます。

    ステップ1: データベースを作成するか、既存のデータベースを使用します。 DROPコマンドには2つのデータベースを使用します。

    ステップ2: 新しいテーブルを作成するか、既存のテーブル、インデックス、ビューを使用します。

    例1: 学校のデータベースからテーブルstudents_informationを削除するクエリを記述します。

    まず、USEキーワードに続いてデータベース名を使用してSchoolデータベースを選択します。

    USE School;

    選択したデータベースからstudents_informationテーブルを削除するdropコマンドを記述します。

    次のレコードを持つStudents_informationテーブルを検討してください。

    Student_Id Student_Name Student_Course Student_Marks
    1 アンジャリ BCOM 85
    2 プラナフ BCA 80
    3 Yogesh B.E 88
    4 ブーシャン MBA 95
    5 プーナム MCOM 97
    6 Bhavesh B.E 90
    7 クシ BSC 94
    8 Piyush BCOM 75
    9 ニキータ BA 88
    10 アイシュワリヤー BSC 70
    DROP TABLE Students_Information;

    上記のクエリから、テーブル内に存在するすべてのレコードを含むStudents_informationテーブルを削除しました。

    クエリが正常に実行されたかどうかをクロスチェックするために、SELECTクエリを実行します。

    SELECT * FROM Students_Information;

    Student_informationテーブルでselectクエリを実行すると、テーブルが存在しませんというメッセージが表示されます。これは、Students_informationテーブルでのDropコマンドクエリが正常に実行されたことを意味します。

    例2: 会社のデータベースからmanager_view1ビューを削除するクエリを記述します。

    次のレコードを持つmanager_view1ビューについて考えてみます。

    MANAGERID MANAGER_NAME MANAGER_DEPARTMENT
    1 Snehdeep Kaur ORACLE
    3 Abhishek Manish JAVA

    選択したデータベースからmanager_view1ビューを削除するdropコマンドを記述します。

    DROP VIEW Manager_view1;

    上記のクエリからmanager_view1ビューを削除し、ビュー内にすべてのレコードが存在します。

    クエリが正常に実行されたかどうかをcross_checkするために、SELECTクエリを実行します。

    SELECT * FROM Manager_view1;

    manager_view1ビューでselectクエリを実行すると、ビューが存在しませんというメッセージが表示されます。これは、manager_view1ビューでのDropコマンドクエリが正常に実行されたことを意味します。

    例3: クリケットデータベースをシステムから削除するクエリを記述します。

    データベースに対してdropコマンドを実行する前に、まずshow databaseコマンドを実行して、dropコマンドの最後に、Cricketデータベースをシステムから正常に削除したことを確認します。

    SHOW DATABASES;
    データベース
    Chk
    会社
    クリケット
    従業員
    Information_schema
    MySQL
    Performance_schema
    Phpmyadmin
    学校
    テスト
    WordPress

    上記は、システムにすでに存在するデータベースです。クリケットデータベースをシステムから削除します。データベースを削除するとは、データベーステーブル、ビュー、インデックス、トリガーなどの内部にあるすべてのオブジェクトを削除することを意味します。

    次に、Cricketデータベースを削除するためのクエリを実行します。

    DROP DATABASE Cricket;

    Cricketデータベースでドロップクエリを実行しました。データベースが正常に削除されたかどうかを確認するために、SHOWDATABASESクエリを実行します。

    SHOW DATABASES;
    データベース
    Chk
    会社
    従業員
    Information_schema
    MySQL
    Performance_schema
    Phpmyadmin
    学校
    テスト
    WordPress

    ご覧のとおり、クリケットデータベースはシステムから正常に削除されています。

    例4: 従業員テーブルから姓の列を削除するクエリを記述します。

    ALTER TABLE employee DROP Last_Name;

    上記のクエリでDROPコマンドとALTERコマンドを使用して、employeeテーブルからLast_Name列を削除しました。

    フィールド タイプ ヌル キー デフォルト 追加
    EMPLOYEEID int(11) いいえ PRI NULL
    FIRST_NAME varchar(20) はい NULL
    給与 int(11) はい NULL
    CITY varchar(20) はい NULL
    部門 varchar(20) はい NULL
    MANAGERID int(11) はい NULL

    上記の出力は、Last_Nameがemployeeテーブルから削除されたことを示しています。

    トランケートコマンドとは何ですか?

    切り捨ては、構造化照会言語のもう1つのデータ定義言語コマンドです。 Truncateコマンドは、テーブルからすべてのレコードを削除するために使用されます。 DROPコマンドと同様ですが、TRUNCATEコマンドにはWHERE句が含まれていません。 Truncateコマンドは、DROPコマンドとDELETEコマンドの両方よりも高速です。 TRUNCATEコマンドを使用した後、DROPコマンドのようにレコードをロールバックすることはできません。

    SQLでのTRUNCATEコマンドの構文:

    TRUNCATE TABLE tablename;

    上記の構文では、データをテーブルから削除するテーブル名を指定する必要があります。

    TRUNCATEコマンドを使用していくつかの例を取り上げます。

    TRUNCATEコマンドの例:

    ステップ1: データベースを作成するか、既存のデータベースを使用します。

    ステップ2: 新しいテーブルを作成するか、既存のテーブルを使用します。

    次のレコードを持つ既存のテーブルについて考えてみます。

    表:従業員:

    EMPLOYEEID FIRST_NAME LAST_NAME 給与 CITY 部門 MANAGERID
    1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
    1002 VAIBHAV シャルマ 60000 NOIDA C# 5
    1003 NIKHIL VANI 50500 ジャイプール FMW 2
    2001 PRACHI シャルマ 55500 チャンディーガル ORACLE 1
    2002 BHAVESH JAIN 65500 PUNE FMW 2
    2003 ルチカ JAIN 50000 ムンバイ C# 5
    3001 PRANOTI SHENDE 55500 PUNE JAVA 3
    3002 ANUJA WANRE 50500 ジャイプール FMW 2
    3003 DEEPAM ジャウハリ 58500 ムンバイ JAVA 3
    4001 RAJESH GOUD 60500 ムンバイ テスト 4
    4002 ASHWINI バガット 54500 NOIDA JAVA 3
    4003 ルチカ AGARWAL 60000 デリー ORACLE 1
    5001 ARCHIT シャルマ 55500 デリー テスト 4

    例: truncateコマンドを使用して、employeeテーブルからすべてのレコードを削除するクエリを記述します。

    TRUNCATE TABLE Employee;

    上記のクエリのすべてのレコードをemployeeテーブルから削除しました。

    従業員テーブルのすべてのレコードが正常に削除されたかどうかをクロスチェックするために、従業員テーブルに対してSELECTクエリを実行します。

    SELECT * FROM Employee;
    EMPLOYEEID FIRST_NAME LAST_NAME 給与 CITY 部門 MANAGERID

    従業員テーブルでselectクエリを実行すると、空のsetメッセージが表示されます。これは、従業員テーブルのtruncateコマンドが正常に実行されたことを意味します。

    以下のポイントは、構造化照会言語でのDropコマンドとTruncateコマンドの違いを示しています。

    DROPコマンド TRUNCATEコマンド
    DROPコマンドは、テーブル構造とテーブルレコードを削除します。 TRUNCATEコマンドは、テーブルからすべてのレコードを削除します。
    DROPコマンドはデータ定義言語コマンドです。 TRUNCATEコマンドはデータ定義言語コマンドでもあります。
    DROPコマンドで、表スペースにメモリーがありません TRUNCATEコマンドは、表スペースをメモリーから解放しません。
    テーブルビューがDROPコマンドに存在しません テーブルビューはTRUNCATEコマンドに存在します
    DROPコマンドでは、削除スペースを使用できません。 TRUNCATEコマンドでは、削除スペースを使用できますが、DELETEステートメントと比較した場合よりも少なくなります。
    DROPコマンドでは、整合性制約がテーブルから自動的に削除されます。 整合性制約はTRUNCATEコマンドのテーブルから削除されません。
    DROPコマンドはレコードをすばやく削除しますが、多くの問題があります。 TRUNCATEコマンドはDROPコマンドよりも高速です。


    1. .NETを使用したOracleへの一括挿入

    2. OracleのROWIDTOCHAR()関数

    3. アクティビティからJavaクラスにデータを渡す方法

    4. PostgreSQLで重複レコードを見つける方法