ホームページ > データベース > mysql チュートリアル > mysqlステートメントを削除する

mysqlステートメントを削除する

PHPz
リリース: 2023-05-11 22:07:38
オリジナル
1269 人が閲覧しました

MySQL では、delete ステートメントはデータベースからレコードを削除するために使用されるコマンドです。これは、データベース内の不要なレコードをクリーンアップして、データをより効果的に管理するのに役立ちます。 MySQL の削除ステートメントは非常に柔軟で、さまざまな構文とオプションを使用してさまざまな削除操作を実行できます。この記事では、これらのオプションと、削除ステートメントの正しい使用方法について詳しく説明します。

基本構文

MySQL の削除ステートメントの基本構文は次のとおりです:

DELETE FROM table_name WHERE condition;
ログイン後にコピー

その中に:

  • table_name データを削除するテーブル名を指定します。
  • condition は、削除するレコードを指定するために使用されるオプションのパラメーターです。このパラメータを省略すると、テーブル内のすべてのレコードが削除されます。

例:

次のデータを含む「students」という名前のテーブルがあるとします:

##1アリス20 女性2ボブ22男性3シンディ18女性4デビッド21男性
id 名前年齢性別
このテーブル内の 20 歳未満の学生レコードをすべて削除するには、次のコマンドを使用できます:

DELETE FROM students WHERE age < 20;
ログイン後にコピー

削除操作を実行すると、テーブルの内容は次のようになります:

#id##1アリス20女性2ボブ22男性4デビッド21男性TRUNCATE ステートメントを使用して、テーブル内のすべてのデータをすばやく削除します
nameage性別
場合によっては、テーブル内のデータの一部だけを削除するのではなく、すべてのデータをすばやく消去します。この目的のために、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-012020-01-022020-01-032020-01-042020-01-05 「注文」テーブルで金額が最も高い 3 つの注文を削除するには、次のコマンドを使用できます。コマンド:
DELETE FROM orders ORDER BY amount DESC LIMIT 3;
ログイン後にコピー
実行後のテーブルは次のようになります:
アリス1002
ボブ200 3
シンディ150 4
デビッド3005
Elizabeth250

idorder_date##12020-01-01アリス10032020-01-03シンディ150MySQL では、リレーショナル データベース間の接続を確立するために外部キーがよく使用されます。外部キーを使用すると、テーブル間の接続を確立することで、テーブル間の結合クエリと削除を実装できます。 1 つのテーブル内の特定のレコードを削除し、それに関連付けられている他のテーブル内の関連レコードも削除する必要がある場合は、CASCADE オプションを使用できます。
customer 金額
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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート