mysql从入门到精通笔记-第八章 数据表的增删改操作
作者:互联网
目录
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后的语句。
-
当遇到自增序列的时候,可以INSERT值为0或者NULL,数据库系统会自动处理。
-
同样,也可以只插入部分字段的数据
-
插入多行数据
插入多行数据,就是在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';
8.1.3 INSERT ... SELECT ...
一个数据表中查询的数据,插入到另外一个数据库表,要求字段数和字段类型都要相匹配。
8.2 修改数据表数据
UPDATE [LOW_PRIORITY][IGNORE] 数据表名
SET 字段一=值
[WHERE 条件表达式]
[ORDER BY...]
[LIMIT 行数]
- LOW_PRIORITY 没有别的用户读取数据为止,部分存储引擎可用。
- 注意:WHERE指定行数很有必要,不然会更改所有的行的数据
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 : 限定被删除的行数
8.3.2 TRUNCATE TABLE(删除所有的行,慎用)
需要从表中删除所有的行,可以使用TRANCATE TABLE来进行操作,TRUNCATE TABLE
后,数据被删除并且无法恢复,使用的时候要特别谨慎。
DELETE 和 TRUNCATE的区别:
- 使用TRUNCATE TABLE ,表中AUTO_INCREMENT计数器会被重置为该列的初始值;
- 参与了所以和视图的表,不能使用TRUNCATE TABLE ,需要使用DELETE
- DELETE 删除没一行,都会有再事务日志中存在一行记录,TRANCATE TABLE只再事务日志中记录页的释放。
标签:8.1,INSERT,...,PRIORITY,数据表,mysql,增删,DELETE 来源: https://www.cnblogs.com/spring2022/p/16373948.html