MySQL では、delete ステートメントはデータベースからレコードを削除するために使用されるコマンドです。これは、データベース内の不要なレコードをクリーンアップして、データをより効果的に管理するのに役立ちます。 MySQL の削除ステートメントは非常に柔軟で、さまざまな構文とオプションを使用してさまざまな削除操作を実行できます。この記事では、これらのオプションと、削除ステートメントの正しい使用方法について詳しく説明します。
基本構文
MySQL の削除ステートメントの基本構文は次のとおりです:
DELETE FROM table_name WHERE condition;
ログイン後にコピー
その中に:
table_name
データを削除するテーブル名を指定します。 condition
は、削除するレコードを指定するために使用されるオプションのパラメーターです。このパラメータを省略すると、テーブル内のすべてのレコードが削除されます。
例:
次のデータを含む「students」という名前のテーブルがあるとします:
id | 名前 | 年齢 | 性別 |
---|
##1 | アリス | 20 | 女性 |
2 | ボブ | 22 | 男性 |
3 | シンディ | 18 | 女性 |
4 | デビッド | 21 | 男性 |
このテーブル内の 20 歳未満の学生レコードをすべて削除するには、次のコマンドを使用できます:
DELETE FROM students WHERE age < 20;
ログイン後にコピー
削除操作を実行すると、テーブルの内容は次のようになります:
#idname | age | 性別 | |
##1アリス | 20 | 女性 | | 2
ボブ | 22 | 男性 | | 4
デビッド | 21 | 男性 | |
TRUNCATE ステートメントを使用して、テーブル内のすべてのデータをすばやく削除します
場合によっては、テーブル内のデータの一部だけを削除するのではなく、すべてのデータをすばやく消去します。この目的のために、MySQL は 1 回の操作でテーブル内のすべてのデータを完全に削除できる TRUNCATE と呼ばれるステートメントを提供します。 TRUNCATE は、ログを記録せずにテーブル内のデータを直接削除するため、ロールバックの必要がなく、DELETE ステートメントよりも高速です。
TRUNCATE ステートメントの構文は次のとおりです。
TRUNCATE table_name;
ログイン後にコピー
例:
前述の「students」テーブル内のすべてのデータをすばやくクリアするには、次のコマンドを使用できます。次のコマンド:
TRUNCATE students;
ログイン後にコピー
実行後、テーブルにはデータが含まれなくなります。
LIMIT ステートメントを使用して削除する行数を制御する
データを削除するとき、テーブル内のすべての行ではなく、特定の数の行のみを削除したい場合があります。このとき、LIMIT文を使用して削除する行数を指定できます。 LIMIT ステートメントは SELECT ステートメントに似ており、DELETE ステートメントに追加して、削除される行の数を制御できます。
LIMIT ステートメントの構文は次のとおりです。
DELETE FROM table_name WHERE condition LIMIT number;
ログイン後にコピー
その中には、
table_name
と - condition
があります。以前紹介したものと同じです。
number 削除する行数を指定します。
例:
次のデータを含む「orders」というテーブルがあるとします:
id 注文日 | お客様 | 金額 | |
##12020-01-01アリス | 100 | | 2 |
2020-01-02ボブ | 200 | | 3 |
2020-01-03シンディ | 150 | | 4 |
2020-01-04デビッド | 300 | | 5 |
2020-01-05 Elizabeth | 250 | | | 「注文」テーブルで金額が最も高い 3 つの注文を削除するには、次のコマンドを使用できます。コマンド:
DELETE FROM orders ORDER BY amount DESC LIMIT 3;
ログイン後にコピー
実行後のテーブルは次のようになります:
id
order_datecustomer | 金額 | | | ##1
2020-01-01アリス | 100 | | 3 | 2020-01-03
シンディ | 150 | | CASCADE オプションを使用してサブテーブル レコードを削除します。 |
MySQL では、リレーショナル データベース間の接続を確立するために外部キーがよく使用されます。外部キーを使用すると、テーブル間の接続を確立することで、テーブル間の結合クエリと削除を実装できます。 1 つのテーブル内の特定のレコードを削除し、それに関連付けられている他のテーブル内の関連レコードも削除する必要がある場合は、CASCADE オプションを使用できます。
CASCADE オプションは、MySQL で一般的に使用されるカスケード削除操作です。指定されたテーブル内のレコードに関連する他のテーブルが自動的に検索され、これらのテーブル内のすべての関連レコードが削除されます。 CASCADE オプションは、削除操作の実行時に実行するアクションを指定するために、外部キーと組み合わせてのみ使用できます。
次のテーブル構造の場合:
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
amount DECIMAL(10, 2),
FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE
);
ログイン後にコピー
「customers」テーブルの ID 3 のレコードと、関連する「orders」テーブルのすべてのレコードを削除するには、次のコマンドを使用できます。 :
DELETE FROM customers WHERE id = 3;
ログイン後にコピー
削除操作により、ID 3 の顧客レコードが削除され、関連するすべての注文レコードが自動的に削除されます。
概要
前述したように、MySQL の delete ステートメントを使用してデータベース内のレコードを簡単に削除できます。削除ステートメントの基本構文には、DELETE、TRUNCATE、および LIMIT ステートメントが含まれます。これらのオプションを柔軟に使用することで、データ操作を迅速かつ安全に処理できます。注: 削除ステートメントを使用する場合は、重要なデータを誤って削除したり失ったりしないように、条件とオプションを注意深く確認してください。
以上がmysqlステートメントを削除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。