zoukankan      html  css  js  c++  java
  • SQL的更新和删除

      1、SQL更新数据

    • 关键字:UPDATE
    • 方式:有两种方式进行更新
      • 更新表中指定的行
      • 更新表中所有的行
    • 示例:
    UPDATE table_name
    SET some_column = 'some_value',other_column = 'other_value'
    WHERE unique_column = 'unique_value'

      上述示例示更新指定行,若想更新所有的行,那么去掉WHERE子句即可。为了数据的安全性,最好是添加WHERE子句。

    -- UPDATE与SELECT结合使用
    UPDATE table_name
    SET (column1, column2, column3) = (SELECT col1, col2 FROM other_table_name
    WHERE some_col = 'some_value')
    WHERE some_column = 'other_value';
    
    
    -- UPDATE与FROM结合使用(要看DBMS是否支持)
    UPDATE table_name AS t1
    SET col1 = t2.column1, col2 = t2.column2
    FROM other_table_name AS t2
    WHERE t1.some_col = t2.some_col;
    
    
    -- UPDATE与JOIN结合使用
    UPDATE t1 INNER JOIN t2 ON t1.col1 = t2.col1
    SET t1.some_col = 'some_col_value',
          t2.other_col = 'other_col_value'
    WHERE t1.condition_col = 'condition_value';
    
    
    UPDATE t1 LEFT JOIN t2 ON t1.col1 = t2.col1
    SET t1.some_col = 'some_col_value',
          t2.other_col = 'other_col_value'
    WHERE t1.condition_col = 'condition_value';

      2、SQL删除数据

    • 关键字:DELETE FROM,某些SQL实现中,可以省略FROM关键字,不过建议还是提供FROM关键字
    • 方式:有两种删除方式
      • 删除指定的行
      • 删除所有的行
    • 示例:
    DELETE FROM table_name
    WHERE some_col = 'some_value';

      DELETE语句不需要指出列名或者通配符,若没有指定WHERE关键字,那么是删除所有的行。其实,若想删除表中所有行,不要使用DELETE,可以使用TRUNCATE TABLE语句,它完成相同的工作,并且速度要快,因为它不记录数据的变动。

      3、SQL更新和删除操作原则

    • 除非更新或者删除所有行,否则的话必须使用WHERE子句。
    • 保证每个表都有主键。
    • 在更新或者删除之前,最好是先SELECT检索指定的数据,保证WHERE子句过滤的数据正确。
    • 使用强制实施引用完整性的数据库,以防误删与其他表相关联的数据。
    • DMBS应该约束防止不带WHERE子句的更新或删除操作。
  • 相关阅读:
    昨天又学到了dp
    LeetCode面试题17.13
    leetcode971
    今天又一题,单调队列leetcode862
    今天学到了一招,LeetCode863
    今天一道简单题,数组排序LeetCode973
    es面试题
    es的常用配置
    es基础一张图
    JMeter中引入外部的JAR包给bean shell 使用
  • 原文地址:https://www.cnblogs.com/bien94/p/12885342.html
Copyright © 2011-2022 走看看