Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk memadam data pangkalan data MySQL

Bagaimana untuk memadam data pangkalan data MySQL

WBOY
WBOYke hadapan
2023-05-28 23:06:502557semak imbas

    DELETE statement

    DELETE statement digunakan untuk memadam rekod, sintaksnya adalah seperti berikut: (sama dengan sintaks "KEMASKINI")

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

    " PADAM" turutan pelaksanaan penyata: FROM ---> WHERE ---> ORDER BY ---> LIMIT ---> DELETE

    PADAMKAN amalan penyata ①

    Padamkan rekod pekerja yang berkhidmat lebih daripada 20 tahun di 10 jabatan (ini agak mudah dan hanya melibatkan satu jadual)

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

    Bagaimana untuk memadam data pangkalan data MySQL

    PADAM penyata amalan ②

    Padamkan rekod pekerja yang mempunyai gaji tertinggi dalam 20 jabatan (selain menggunakan klausa WHERE untuk tapis pekerja di 20 jabatan, Anda juga perlu menyusun mengikut tertib menurun mengikut gaji dan memadam rekod tertinggi)

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

    Bagaimana untuk memadam data pangkalan data MySQL

    Sintaks pernyataan "DELETE" masih sangat mudah, dengan asas pernyataan "KEMASKINI" Ia akan lebih mudah difahami apabila melihat kenyataan "DELETE" nanti, kerana klausa ini tidak jauh berbeza.

    Caburan jadual (cantuman dalaman) bagi pernyataan DELETE

    Oleh kerana kecekapan subkueri berkorelasi adalah sangat rendah, kami boleh menggunakan cantuman jadual untuk meningkatkan kecekapan pemadaman kenyataan DELETE.

    Sintaks gabungan dalaman bagi pernyataan SQL "DELETE" adalah seperti berikut:

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

    Latihan sambungan jadual bagi pernyataan DELETE ①

    Padamkan jabatan JUALAN dan semua rekod pekerja dalam ini jabatan

    Analisis: Padam rekod daripada dua jadual

    Analisis: Gunakan penyataan DELETE untuk memadam rekod daripada dua jadual Anda boleh menggunakan sambungan jadual (rujuk sintaks di atas)

    Analisis: Kepunyaan Rekod pekerja jabatan JUALAN tidak diketahui Anda perlu menggunakan pertanyaan bersyarat terlebih dahulu untuk menapis rekod pekerja jabatan JUALAN

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

    Bagaimana untuk memadam data pangkalan data MySQL

    <.>Bagaimana untuk memadam data pangkalan data MySQL

    Bagaimana untuk memadam data pangkalan data MySQL

    Latihan sambungan jadual untuk penyata DELETE ②

    Padam setiap rekod pekerja yang lebih rendah daripada purata gaji minimum jabatan

    Analisis: masih menggunakan sambungan jadual, kerana pertama anda perlu menanyakan jabatan untuk kumpulan, pertanyaan nombor Jabatan dan purata gaji asas.

    Analisis: Gunakan set hasil pertanyaan sebagai jadual untuk berhubung dengan "jadual pekerja". Syarat sambungan ialah "nombor jabatan" pekerja Gaji pokok

    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;

    Bagaimana untuk memadam data pangkalan data MySQL

    Latihan menyertai jadual untuk penyata DELETE ③

    Padam rekod pekerja pekerja "KING" dan orang bawahannya, gunakan jadual sertai untuk mencapai

    Analisis: Gunakan klausa "WHERE" untuk mencari rekod pekerja yang "ename"nya ialah "KING"

    Analisis: Bandingkan rekod pekerja "KING" yang ditemui dengan "mgr " medan jadual pekerja sebagai "Nombor pekerja" "KING" boleh disambungkan

    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;

    Bagaimana untuk memadam data pangkalan data MySQL

    PADAM sambungan jadual penyata (sambungan luar)

    " PADAM" sambungan jadual penyata boleh dilakukan Ia adalah sambungan dalam atau sambungan luar.

    Sintaks gabungan luar bagi pernyataan SQL "DELETE" adalah seperti berikut:

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

    Amalan gabungan luar kenyataan DELETE

    Padam pekerja dalam jabatan "JUALAN", serta pekerja tanpa jabatan.

    Analisis: Gunakan "sambungan luar kiri" untuk menyambung dengan jadual jabatan, kerana "Zhang San" dalam "jadual pekerja" tidak mempunyai jabatan, jadi ia harus dikekalkan dan disambungkan dengan jadual jabatan.

    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

    Bagaimana untuk memadam data pangkalan data MySQL

    Bagaimana untuk memadam data pangkalan data MySQL

    Padam semua data dalam jadual dengan cepat

    Pernyataan "DELETE" memadam rekod di bawah mekanisme transaksi ( Apakah "mekanisme urus niaga" akan diperkenalkan secara terperinci dalam artikel seterusnya). Apabila "DELETE" digunakan untuk memadamkan sejumlah besar data, mekanisme transaksi akan menyebabkan pemadaman menjadi lebih perlahan.

    Pernyataan "TRUNCATE" memadamkan rekod di luar "mekanisme urus niaga" dan kelajuan pelaksanaannya jauh lebih cepat daripada pernyataan "DELETE".

    Sintaks "TRUNCATE" adalah seperti berikut:

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

    Bagaimana untuk memadam data pangkalan data MySQL

    bahagian pernyataan padam MySQL

    语句  功能
    drop 语句 删除数据库和表
    drop 数据库名;
    drop 表名;
    delete 语句 删除表中的记录
    delete from weibo_user where username=“xiaomu”;
    注意:delete语句中如果没有加入where条件,将会把表中的所有记录全部删除
    update set 语句 修改和更新语句,更新时也会覆盖(删除)原来的值
    update set与where搭配使用,变更某些记录
    注意::update set语句中如果没有where子句指定其变更的条件,将就会把数据库中这个字段的所有值都更新
    alert 语句 删除字段:alter table 表名 drop 字段名;
    删除主键:alter table 表名 drop primary key ;
    更新表名:alter table 表名 rename to 新表名;

    Atas ialah kandungan terperinci Bagaimana untuk memadam data pangkalan data MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam