ホームページ  >  記事  >  データベース  >  MySQLデータベースのデータを削除する方法

MySQLデータベースのデータを削除する方法

WBOY
WBOY転載
2023-05-28 23:06:502603ブラウズ

    DELETE ステートメント

    DELETE ステートメントはレコードを削除するために使用され、構文は次のとおりです: (「UPDATE」構文と同様)

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

    " DELETE" ステートメントの実行順序: FROM ---> WHERE ---> ORDER BY ---> LIMIT ---> DELETE

    DELETE ステートメントの練習①

    10 部門の勤続 20 年以上の従業員のレコードを削除します (これは比較的単純で、必要なテーブルは 1 つだけです)

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

    MySQLデータベースのデータを削除する方法

    #DELETE ステートメント演習②

    20 部門の中で最も給与が高い従業員レコードを削除します (WHERE 句を使用して 20 部門の従業員をフィルタリングすることに加えて、給与に応じて降順に並べ替える必要もあります)

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

    MySQLデータベースのデータを削除する方法

    「DELETE」ステートメントの構文はまだ非常に単純ですが、「UPDATE」ステートメントの基礎を理解した後は、より簡単になります。これらの句には大きな違いはないため、「DELETE」ステートメントを見ると理解できます。

    DELETE ステートメントのテーブル結合 (内部結合)

    相関サブクエリの効率は非常に低いため、テーブル結合を使用して DELETE ステートメントの削除効率を向上させることができます。

    SQL ステートメント「DELETE」の内部結合構文は次のとおりです。

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

    DELETE ステートメントのテーブル接続演習①

    この中の営業部門とすべての従業員レコードを削除します。部門

    分析: 2 つのテーブルからレコードを削除

    分析: DELETE ステートメントを使用して 2 つのテーブルからレコードを削除します。テーブル接続を使用できます (上記の構文を参照)

    分析: 所属 営業部門の従業員レコードが不明です。最初に条件付きクエリを使用して、営業部門の従業員レコードをフィルタリングする必要があります

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

    MySQLデータベースのデータを削除する方法

    MySQLデータベースのデータを削除する方法

    MySQLデータベースのデータを削除する方法DELETE ステートメントのテーブル接続演習②

    部門の平均最低給与を下回るすべての従業員レコードを削除します

    分析: まず、グループ化のために部門をクエリし、部門番号と平均基本給をクエリする必要があるため、引き続きテーブル接続を使用します。

    分析: クエリ結果セットをテーブルとして使用し、「従業員テーブル」に接続します。接続条件は従業員の「部門番号」です。もう 1 つの条件は、従業員の月給が平均より低いことです。基本給

    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;

    MySQLデータベースのデータを削除する方法DELETE文のテーブル接続演習③

    従業員「KING」とその部下の従業員レコードを削除し、テーブルを使用します。達成する接続

    分析: 「WHERE」句を使用して、「ename」が「KING」である従業員レコードを検索します。

    分析: 見つかった「KING」の従業員レコードを「mgr」と結合します。社員テーブルの「」フィールドに「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;

    MySQLデータベースのデータを削除する方法DELETE文のテーブル接続(外部接続)

    「DELETE」ステートメントのテーブル接続は、内部接続または外部接続のいずれかになります。

    「DELETE」SQL ステートメントの外部結合構文は次のとおりです。

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

    DELETE ステートメントの外部結合の実践

    「営業」部門の従業員を削除します。部門を持たない従業員も同様です。

    分析: 「従業員テーブル」の「Zhang San」には部門がないため、「左外部結合」を使用して部門テーブルに接続します。そのため、これを保持して部門テーブルに接続する必要があります。

    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

    MySQLデータベースのデータを削除する方法

    MySQLデータベースのデータを削除する方法テーブル内のすべてのデータをすばやく削除します

    「DELETE」ステートメントは、トランザクション メカニズム ( 「トランザクションのメカニズム」については、次の記事で詳しく紹介します) レコードを削除する前に、削除されたレコードをログ ファイルに保存してから、レコードを削除する必要があります。 「DELETE」を使用して大量のデータを削除すると、トランザクション メカニズムにより削除速度が低下します。

    「TRUNCATE」ステートメントは、「トランザクション メカニズム」の外側にあるレコードを削除します。その実行速度は、「DELETE」ステートメントよりもはるかに高速です。

    「TRUNCATE」の構文は次のとおりです:

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

    MySQL ステートメントのセクションの削除

    ##ステートメント 関数drop ステートメント 削除データベースとテーブルステートメントを削除テーブル内のレコードを削除update set ステートメントModify ステートメントと update ステートメントでは、更新時に元の値も上書き (削除) されます。 アラート ステートメントフィールドの削除: テーブル テーブル名を変更し、フィールド名を削除します;
    データベース名を削除;
    テーブル名を削除;
    weibo_user から削除 (ユーザー名) ="xiaomu";
    注: where 条件が delete ステートメントに追加されていない場合、テーブル内のすべてのレコードが削除されます
    Update set は、特定のレコードを変更する場所とともに使用されます。
    注: update set ステートメントに、変更を指定する where 句がない場合は、条件を変更すると、データベース内のこのフィールドのすべての値が更新されます
    主キーの削除: テーブル テーブル名を変更 主キーを削除;
    テーブル名を更新: テーブル テーブル名を変更し、新しいテーブル名に名前を変更;

    以上がMySQLデータベースのデータを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。