MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL DROP TABLEはテーブルを完全に削除しますか、それとも構造だけを削除しますか?


DROP TABLEはテーブルを完全に削除し、すべてのデータも削除します。すべてのデータを完全に削除し、テーブル構造が必要な場合は、TRUNCATETABLEコマンドを使用できます。 TRUNCATEコマンドはテーブルを再作成します。

まず、DROPTABLEを確認しましょう。そのために、最初にテーブルを作成します-

mysql> create table DemoTable
   (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(20)
   );
Query OK, 0 rows affected (0.20 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(Name) values('Larry');
Query OK, 1 row affected (0.07 sec)

mysql> insert into DemoTable(Name) values('Chris');
Query OK, 1 row affected (0.05 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+----+-------+
| Id | Name  |
+----+-------+
| 1  | Larry |
| 2  | Chris |
+----+-------+
2 rows in set (0.00 sec)

ここで、DROPTABLEコマンドを使用します。 DROP TABLEコマンドを実行すると、データが削除され、テーブル構造がなくなります。

mysql> DROP TABLE DemoTable;
Query OK, 0 rows affected (0.18 sec)

データを表示しようとすると、次のエラーが発生します-

mysql> select *from DemoTable;
ERROR 1146 (42S02): Table 'hb_student_tracker.DemoTable' doesn't exist

テーブル構造すら取得できません-

mysql> desc DemoTable;
ERROR 1146 (42S02): Table 'hb_student_tracker.DemoTable' doesn't exist

TRUNCATEコマンドを実装しましょう。

mysql> create table DemoTable
   (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(20)
   );
Query OK, 0 rows affected (0.63 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(FirstName) values('Chris');
Query OK, 1 row affected (0.08 sec)

mysql> insert into DemoTable(FirstName) values('Robert');
Query OK, 1 row affected (0.07 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | Robert    |
+----+-----------+
2 rows in set (0.00 sec)

ここで、TRUNCATEコマンドを実装します。 TRUNCATEコマンドを実行すると、データがテーブルから削除され、テーブル構造が再作成されます。

mysql> TRUNCATE TABLE DemoTable;
Query OK, 0 rows affected (0.06 sec)

これで、テーブルからデータを取得できなくなりますが、テーブル構造は表示されます-

mysql> select *from DemoTable;
Empty set (0.00 sec)

以下は、テーブル構造を取得するためのクエリです-

mysql> desc DemoTable;

これにより、次の出力が生成されます-

+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| Id        | int(11)     | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(20) | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

  1. MySQLを使用してテーブルの値を再シャッフルします

    テーブル内の値を再シャッフルするには、MySQL RAND()を使用します。 まずテーブルを作成しましょう- mysql> create table DemoTable792 ( Name varchar(100), Subject varchar(100) ); Query OK, 0 rows affected (0.66 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable792 values('Chris','MySQL'); Query OK,

  2. MySQLテーブルからインデックスを削除します

    MySQLテーブルからインデックスを削除するための構文は、次のとおりです- alter table yourTableName drop index `yourIndexName`; まずテーブルを作成しましょう- Mysql> create table DemoTable1469    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(40),    ->