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