Dans MySQL, l'instruction delete est une commande utilisée pour supprimer des enregistrements de la base de données. Cela peut nous aider à nettoyer les enregistrements inutiles dans la base de données pour gérer les données plus efficacement. L'instruction delete de MySQL est très flexible et peut utiliser une variété de syntaxes et d'options différentes pour effectuer différentes opérations de suppression. Dans cet article, nous examinerons de plus près ces options et comment utiliser correctement les instructions delete.
Syntaxe de base
La syntaxe de base de l'instruction delete de MySQL est la suivante :
DELETE FROM table_name WHERE condition;
Où :
table_name
spécifie le nom de la table pour supprimer les données. table_name
指定要删除数据的表名。condition
是一个可选的参数,用于指定要删除的记录。如果省略此参数,则将删除表中所有记录。示例:
假设我们有一个名为“students”的表,包含如下数据:
id | name | age | gender |
---|---|---|---|
1 | Alice | 20 | Female |
2 | Bob | 22 | Male |
3 | Cindy | 18 | Female |
4 | David | 21 | Male |
要删除这个表中所有年龄小于20岁的学生记录,可以使用以下命令:
DELETE FROM students WHERE age < 20;
执行删除操作后,该表的内容将变为:
id | name | age | gender |
---|---|---|---|
1 | Alice | 20 | Female |
2 | Bob | 22 | Male |
4 | David | 21 | Male |
使用TRUNCATE语句快速删除表中所有数据
在某些情况下,我们可能需要快速清空一个表中的所有数据,而不是仅删除一部分。为此,MySQL提供了一个称为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
condition
est un paramètre facultatif utilisé pour spécifier les enregistrements à supprimer. Si ce paramètre est omis, tous les enregistrements de la table seront supprimés. id | nom | âge | gender |
---|---|---|---|
1 | Alice | 20 | Femme |
2 | Bob | 22 | Homme |
3 | Cindy | 18 | Femme |
4 | David | 21 | Homme |
À supprimez tous les dossiers d'élèves de moins de 20 ans dans ce tableau, vous pouvez utiliser la commande suivante : | Après avoir effectué l'opération de suppression, le contenu du tableau deviendra : |
name
age
1 | Alice | 20 | |
---|---|---|---|
2 | Bob | 22 | Homme |
4 | David | 21 | Homme |
Utilisez l'instruction TRUNCATE pour supprimer rapidement toutes les données d'un tableau Dans certains cas, nous pouvons avoir besoin d'effacer rapidement toutes les données d'un tableau au lieu d'en supprimer seulement une partie. À cette fin, MySQL fournit une instruction appelée TRUNCATE qui peut supprimer complètement toutes les données de la table en une seule opération. TRUNCATE est plus rapide que l'instruction DELETE car elle supprime les données de la table directement sans journalisation et donc sans avoir besoin de restauration. La syntaxe de l'instruction TRUNCATE est la suivante :
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 );
DELETE FROM customers WHERE id = 3;
table_name
et condition
sont les mêmes que ceux introduits précédemment. 🎜🎜number
spécifie le nombre de lignes à supprimer. 🎜🎜🎜Exemple : 🎜🎜Supposons que nous ayons une table appelée "commandes" avec des données comme celle-ci : 🎜🎜🎜🎜🎜id🎜🎜order_date🎜🎜customer🎜🎜amount🎜🎜🎜🎜🎜🎜1 🎜 🎜2020- 01-01 🎜🎜Alice🎜🎜100🎜🎜🎜🎜2🎜🎜2020-01-02🎜🎜Bob🎜🎜200🎜🎜🎜🎜3🎜🎜2020-01-03🎜 🎜C indy🎜🎜150🎜🎜🎜🎜4 🎜🎜2020 -01-04🎜🎜David🎜🎜300🎜🎜🎜🎜5🎜🎜2020-01-05🎜🎜Elizabeth🎜🎜250🎜🎜🎜🎜🎜Les trois commandes avec les montants les plus élevés dans le tableau, Vous peut utiliser la commande suivante : 🎜rrreee🎜Après exécution, le tableau deviendra 🎜🎜🎜🎜🎜id🎜🎜order_date🎜🎜customer🎜🎜amount🎜🎜🎜🎜🎜🎜1🎜🎜2020-01-01 🎜🎜Alice🎜 🎜100🎜🎜🎜🎜3🎜🎜2020-01-03🎜🎜Cindy🎜🎜150🎜🎜🎜🎜🎜Utilisez l'option CASCADE pour supprimer les enregistrements de sous-tables🎜🎜Dans MySQL, les clés étrangères sont souvent utilisées pour établir des connexions entre les bases de données relationnelles. Les clés étrangères nous permettent d'implémenter des requêtes conjointes et des suppressions entre tables en établissant des connexions entre les tables. Si nous souhaitons supprimer certains enregistrements dans une table et devons également supprimer les enregistrements associés dans d'autres tables qui lui sont associées, nous pouvons utiliser l'option CASCADE. 🎜🎜L'option CASCADE est une opération de suppression en cascade couramment utilisée dans MySQL. Il recherche automatiquement d'autres tables liées aux enregistrements dans la table spécifiée et supprime tous les enregistrements associés dans ces tables. L'option CASCADE ne peut être utilisée qu'en combinaison avec des clés étrangères pour spécifier l'action à entreprendre lors de l'exécution d'une opération de suppression. 🎜🎜Pour la structure de table suivante : 🎜rrreee🎜Pour supprimer l'enregistrement d'ID 3 dans la table "clients" et tous les enregistrements de la table "commandes" associée, vous pouvez utiliser la commande suivante : 🎜rrreee🎜L'opération de suppression va supprimez l'enregistrement avec les enregistrements client ID 3 et supprimez automatiquement tous les enregistrements de commande associés. 🎜🎜Résumé🎜🎜Comme mentionné ci-dessus, les enregistrements de la base de données peuvent être facilement supprimés à l'aide de l'instruction delete de MySQL. La syntaxe de base des instructions delete inclut les instructions DELETE, TRUNCATE et LIMIT. En utilisant ces options de manière flexible, les opérations sur les données peuvent être traitées rapidement et en toute sécurité. Remarque : lorsque vous utilisez des instructions de suppression, vérifiez soigneusement les conditions et les options pour éviter de supprimer ou de perdre accidentellement des données importantes. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!