Maison  >  Article  >  base de données  >  Comment supprimer les données de la base de données MySQL

Comment supprimer les données de la base de données MySQL

WBOY
WBOYavant
2023-05-28 23:06:502605parcourir

    Instruction DELETE

    L'instruction DELETE est utilisée pour supprimer des enregistrements. La syntaxe est la suivante : (similaire à la syntaxe "UPDATE")

    DELETE [IGNORE] FROM 表名
    WHERE 条件1, 条件2, .....
    ORDER BY ......
    LIMIT ......;
    
    -- 使用 IGNORE 关键字时,当存在外键约束组织我们删除记录,那么则会忽略删除该条数据
    -- 使用 WHERE 子句删除条件范围内的记录;如果不使用 WHERE 子句,则是删除全表范围
    -- 使用 ORDER BY 关键字,将被删除的记录进行排序以后,产出符合条件的一些数据
    -- 使用 LIMIT 关键字依然是分页的意思,

    Ordre d'exécution de l'instruction "DELETE":FROM ---> WHERE ---> ORDER BY ---> LIMIT ---> DELETE

    Pratique de l'instruction DELETE ①

    Supprimez 10 enregistrements d'employés ayant plus de 20 ans de service dans le département (c'est relativement simple, ne concerne qu'un seul tableau)

    DELETE FROM  t_emp 	
    WHERE deptno = 10 
    AND DATEDIFF(NOW(), hiredate)/365 >= 20;

    Comment supprimer les données de la base de données MySQL

    DELETE pratique de déclaration ②

    Supprimez les enregistrements des 20 employés avec le salaire le plus élevé dans le département (en plus de filtrer à l'aide de la clause WHERE En plus des 20 salariés du département, il faut également trier par ordre décroissant selon le salaire et supprimer l'enregistrement le plus élevé)

    DELETE FROM  t_emp 	
    WHERE deptno = 20 
    ORDER BY sal+IFNULL(comm,0) DESC
    LIMIT 1;

    Comment supprimer les données de la base de données MySQL

    La syntaxe du " L'instruction "DELETE" est encore très simple. Commençons après avoir les bases de l'instruction "UPDATE". C'est plus facile à comprendre en regardant l'instruction "DELETE", car ces clauses ne sont pas très différentes.

    Jointure de table (jointure interne) de l'instruction DELETE

    Étant donné que l'efficacité de la sous-requête corrélée est très faible, nous pouvons utiliser la jointure de table pour améliorer l'efficacité de la suppression de l'instruction DELETE.

    La syntaxe de jointure interne de l'instruction SQL "DELETE" est la suivante :

    DELETE 表1, ...... FROM 表1 JOIN 表2 ON 条件
    WHERE 条件1, 条件2, ......
    ORDER BY ......
    LIMIT ......
    
    -- 需要注意的是,这里的 "WHERE"、"ORDER BY"、"LIMIT" 子句都是可选条件

    Exercice de connexion à une table pour l'instruction DELETE ①

    Supprimer le service VENTES et tous les enregistrements des employés de ce service

    Analyse : Supprimer les enregistrements du deux tables

    Analyse : utilisez une instruction DELETE supprime deux enregistrements de table. Vous pouvez utiliser la connexion de table (reportez-vous à la syntaxe ci-dessus).

    Analyse : les enregistrements des employés appartenant au service VENTES sont inconnus. filtrez d'abord les dossiers des employés du département VENTES

    DELETE e, d
    FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno
    WHERE d.dname="SALES";

    Comment supprimer les données de la base de données MySQL

    Comment supprimer les données de la base de données MySQL

    Comment supprimer les données de la base de données MySQL

    Exercice de connexion aux tables pour la déclaration DELETE ②

    Supprimez chaque enregistrement d'employé qui est inférieur au salaire de base moyen du département

    Analyse. : utilisez toujours la connexion par table, car vous devez d'abord interroger le département pour le regroupement, interroger le numéro de département et le salaire de base moyen.

    Analyse : utilisez l'ensemble de résultats interrogés comme tableau pour vous connecter à la "table des employés". La condition de connexion est le "numéro de service" de l'employé. Une autre condition est que le salaire mensuel de l'employé doit être inférieur au salaire de base moyen de l'employé. département

    DELETE e
    FROM t_emp e JOIN (SELECT deptno, AVG(sal) AS avg FROM t_emp GROUP BY deptno) t
    ON e.deptno=t.deptno 
    AND e.sal < t.avg;

    Comment supprimer les données de la base de données MySQL

    Exercice de connexion de table pour l'instruction DELETE ③

    Supprimez les enregistrements d'employé de l'employé "KING" et de ses subordonnés, utilisez la connexion de table pour implémenter

    Analyse : utilisez la clause "WHERE" pour trouver les employés dont le "nom" " est l'enregistrement "KING"

    Analyse : Connectez l'enregistrement d'employé trouvé de "KING" au "numéro d'employé" dont le champ "mgr" de la table des employés est "KING"

    DELETE e
    FROM t_emp e JOIN (SELECT empno FROM t_emp WHERE ename="KING") t
    ON e.mgr=t.empno OR e.empno=t.empno;

    Comment supprimer les données de la base de données MySQL

    DELETE connexion à la table de déclaration (externe connexion)

    La jointure de table de l'instruction "DELETE" peut être soit une jointure interne, soit une jointure externe.

    La syntaxe de jointure externe de l'instruction SQL "DELETE" est la suivante :

    DELETE 表1, ...... FROM 表1 [LEFT | RIGHT] JOIN 表2 ON 条件
    WHERE 条件1, 条件2, ......
    ORDER BY ......
    LIMIT ......
    
    -- 需要注意的是,这里的 "WHERE"、"ORDER BY"、"LIMIT" 子句都是可选条件
    -- 除了 在连接表 的时候选择 "LEFT JOIN" 与 "RIGHT JOIN" 的区别之外,其他的与内连接的语法一样

    Pratique de jointure externe de l'instruction DELETE

    Supprimer les employés du département "VENTES", ainsi que les employés sans département.

    Analyse : utilisez la "jointure externe gauche" pour vous connecter à la table des départements, car "Zhang San" dans la "table des employés" n'a pas de département, il doit donc être conservé et connecté à la table des départements.

    DELETE e
    FROM t_emp e LEFT JOIN t_dept d ON e.deptno=d.deptno
    WHERE d.dname="SALES" OR e.deptno IS NULL

    Comment supprimer les données de la base de données MySQL

    Comment supprimer les données de la base de données MySQL

    Supprimez rapidement toutes les données de la table

    L'instruction "DELETE" supprime les enregistrements sous le mécanisme de transaction (ce qu'est le "mécanisme de transaction" sera présenté en détail dans un article ultérieur avant la suppression). enregistrements, vous devez d'abord enregistrer les enregistrements supprimés dans le fichier journal, puis supprimer les enregistrements. Lorsque « DELETE » est utilisé pour supprimer de grandes quantités de données, le mécanisme de transaction ralentit la suppression.

    L'instruction "TRUNCATE" supprime les enregistrements en dehors du "mécanisme de transaction", et sa vitesse d'exécution est beaucoup plus rapide que l'instruction "DELETE".

    "TRUNCATE" La syntaxe est la suivante :

    TRUNCATE TABLE 表名;
    
    -- 需要注意的是,"TRUNCATE"  语句一次只能清空一张数据表,不能够一次性的清空多张数据表。
    TRUNCATE TABLE t_emp ;

    Comment supprimer les données de la base de données MySQL

    Section d'instruction de suppression MySQL

    instruction d'alerte Supprimer la clé primaire : modifier le nom de la table supprimer la clé primaire ;# 🎜🎜#Mettre à jour le nom de la table : modifier le nom de la table en renommant le nouveau nom de la table ;
    Statement Function
    drop déclaration Supprimer la base de données et la table
    drop nom de la base de données;
    drop table name;
    delete Statement Supprimer les enregistrements dans la table
    delete de weibo_user Where username="xiaomu";
    Remarque : Si la condition Where n'est pas ajoutée à l'instruction de suppression, les enregistrements dans la table sera supprimée Tous les enregistrements sont supprimés
    update set déclaration Modifier et mettre à jour les instructions, la valeur d'origine sera également écrasée (supprimer ) lors de la mise à jour#🎜🎜 #L'ensemble de mise à jour est utilisé avec où modifier certains enregistrements
    Remarque : s'il n'y a pas de clause Where dans l'instruction d'ensemble de mise à jour pour spécifier les conditions de sa modification, toutes les valeurs de ce champ dans la base de données sera mise à jour#🎜🎜 #
    Supprimer le champ : modifier le nom du champ de suppression du nom de la table

    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!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer