• MySQL插入,更新,删除数据


    插入

    单行插入

      1.insert into 表名 values(col1_value,col2_value,...);

    •   每个列必须提供一个值,如果没有值,要提供NULL值
    •   每个列必须与它在表中定义的次序相同

      2.insert into 表名(col1,col2...) values(col1_value,col2_value...);

    •   values必须与指定的列名次序匹配,不一定按照列在表中的实际出现的次序,即使表结构改变也能正常的工作

    注意

      如果表的定义允许,在插入时可以省略某些列,表的定义应该如下

    1. 该列允许为NULL值
    2. 在表定义时给出默认值,如果插入时不给出值,则使用默认值

    多行插入

      insert into 表名(col1,col2...) values(col1_value1,col2_value1...),values(col1_value2,col2_value2...)values(col1_value3,col2_value3...);

    插入检索出的数据

      insert into 表名1(col1,col2...) select col1,col2... from 表名2

    •   这条语句插入多少行依赖于表名1中有多少行,如果表名1为空,则没有数据插入,此操作为合法操作
    •   它不关心select返回的列名,使用的是列的位置,select中的第一列用于填充表中的第一列等
    •   select可以使用where过滤数据

    拓展

      由于数据库是被客户访问,对处理什么请求及什么次序处理是MySQL任务,insert很耗时并且可能降低select语句的性能

      insert low_priority into 可以降低insert优先级也使用update和delete

    更新

      更新的是列,由三部分组成

    1. 要更新的表
    2. 列名和他们的值
    3. 确定要更新的过滤条件
    update 表名
        -> set 列名=要更新的值
        -> where 过滤条件;

    注意

    1. 一定要使用where!!!where!!!where!!!
    2. 可以在update中使用子查询,能够使select语句检索出的数据更新列数据
    3. 如果使用update更新多行,在更新时出现一个或多个错误,则整个update操作被取消,恢复到被更新的原来的值,若使用update ignore 表,可以继续更新
    4. 保证每个表都有主键,像where字句那样使用它
    5. 使用where之前,先使用select进行测试,保证过滤出正确的记录

     删除

      删除的是整行

    delete from 表名
        -> where 过滤条件;

      要删除全部的行用

    truncate table 表名;

      此操作是将原来的表删除并创建一个新表,并不是逐行删除数据

    注意

    1. 一定要使用where!!!where!!!where!!!
    2. delete删除的是表中的行或所有的行,不删除表本身
    3. 保证每个表都有主键,像where字句那样使用它
    4. 使用where之前,先使用select进行测试,保证过滤出正确的记录
    5. 删除列用update
    6. 强制实施引用完整性的数据库,这样mysql不允许删除具有与其他表相关联的数据的行
  • 相关阅读:
    如何提高程序员自身价值
    程序员,你伤不起
    Android数据传输
    ecshop商城禁止修改管理员邮箱
    智能手机的安全隐患
    商城前后台限制ip地址访问
    商城用户评论优化
    职业洗手法
    Exp10 经典漏洞的逆向分析 20155113徐步桥
    Exp9 Web安全 20155113徐步桥
  • 原文地址:https://www.cnblogs.com/tianzeng/p/10341640.html
Copyright © 2020-2023  润新知