zoukankan      html  css  js  c++  java
  • 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不允许删除具有与其他表相关联的数据的行
  • 相关阅读:
    NOIP赛前集训备忘录(含每日总结)(日更?。。。)
    饮一碗鸡汤,换我前进的力量(持续更新......)
    各种用来学习的东西总结
    [FJOI2007]轮状病毒 题解(dp(找规律)+高精度)
    洛谷P1823 [COI2007] Patrik 音乐会的等待(单调栈+二分查找)
    [CQOI2012]模拟工厂 题解(搜索+贪心)
    [CQOI2014]数三角形 题解(组合数学+容斥)
    洛谷P2507 [SCOI2008]配对 题解(dp+贪心)
    洛谷P1484 种树&洛谷P3620 [APIO/CTSC 2007]数据备份 题解(堆+贪心)
    洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)
  • 原文地址:https://www.cnblogs.com/tianzeng/p/10341640.html
Copyright © 2011-2022 走看看