MySql教程

mysql从入门到精通笔记-第八章 数据表的增删改操作

本文主要是介绍mysql从入门到精通笔记-第八章 数据表的增删改操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • 8.1 插入数据表数据
    • 8.1.1 INSERT ...VALUES ...
    • 8.1.2 INSERT ... SET ...
    • 8.1.3 INSERT ... SELECT ...
  • 8.2 修改数据表数据
  • 8.3 删除数据表数据
    • 8.3.1 DELETE语句
    • 8.3.2 TRUNCATE TABLE(删除所有的行,慎用)

8.1 插入数据表数据

一共有3中插入的语句的语法格式

8.1.1 INSERT ...VALUES ...

语法格式

INSERT [LOW_PRIORITY|DELAYED|HIGH PRIORITY] [IGNORE]
[INTO] 数据表名 [(字段名,...)]
VALUES(v1,v2,v3),(a1,a2,a3),(b1,b2,b3),...
[ON DUPLICATE KEY UPDATE 字段名=表达式,...]
  • 必须关键字
    INSERT 数据表名称 VALUES (v1,v2,v3),(v4,v5,v6)

  • 可选关键字
    LOW_PRIORITY|DELAYED|HIGH PRIORITY ,执行的 SQL操作的优先级,DELAYED会先放到缓冲器,HIGH会高优先级执行
    IGNORE: 执行SQL时,错误当成警告处理
    INTO : 指定被操作的数据表
    VALUES:插入的值,顺序相同,可以使用default值
    [ON DUPLICATE KEY UPDATE 字段名=表达式,...] 如果遇到unique 或者 主键重复,可以使用UPDATE后的语句。
    img

  • 当遇到自增序列的时候,可以INSERT值为0或者NULL,数据库系统会自动处理。

  • 同样,也可以只插入部分字段的数据
    img

  • 插入多行数据
    插入多行数据,就是在values后面传入多行数据即可;

8.1.2 INSERT ... SET ...

INSERT INTO testdb_05.staff_002 SET user_name='jaxm',user_age=22,user_position='DBA',user_profile ='DBA ENG';

img

8.1.3 INSERT ... SELECT ...

一个数据表中查询的数据,插入到另外一个数据库表,要求字段数和字段类型都要相匹配。

8.2 修改数据表数据

UPDATE [LOW_PRIORITY][IGNORE] 数据表名
    SET 字段一=值
    [WHERE 条件表达式]
    [ORDER BY...]
    [LIMIT 行数]
  • LOW_PRIORITY 没有别的用户读取数据为止,部分存储引擎可用。
  • 注意:WHERE指定行数很有必要,不然会更改所有的行的数据
    img

8.3 删除数据表数据

8.3.1 DELETE语句

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM 数据表名 
[WHERE 条件表达式] 
[ORDER BY] 
[LIMIT 行]

字段解释:

  • LOW PRIORITY : 延迟DELETE操作,直到没有别的用户再从表中读取数据位置,仅仅适用表级锁的存储引擎(IyISAM,MEMORY和MERGE)
  • QUICK : 用于加速部分表的删除动作
  • IGNORE : 使用 DELETE 语句如果出现错误,整个DELETE语句都会被取消,错误发生前所有的行都会被还原到之前的值,从而保证可靠性。如果想要遇到错误还继续进行DELETE操作,可以使用该字段。
  • ORDER BY : 指定被删除的次序
  • LIMIT : 限定被删除的行数
    img

8.3.2 TRUNCATE TABLE(删除所有的行,慎用)

需要从表中删除所有的行,可以使用TRANCATE TABLE来进行操作,TRUNCATE TABLE后,数据被删除并且无法恢复,使用的时候要特别谨慎。
img

DELETE 和 TRUNCATE的区别:

  • 使用TRUNCATE TABLE ,表中AUTO_INCREMENT计数器会被重置为该列的初始值;
  • 参与了所以和视图的表,不能使用TRUNCATE TABLE ,需要使用DELETE
  • DELETE 删除没一行,都会有再事务日志中存在一行记录,TRANCATE TABLE只再事务日志中记录页的释放。
这篇关于mysql从入门到精通笔记-第八章 数据表的增删改操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!