目录
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';

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后,数据被删除并且无法恢复,使用的时候要特别谨慎。

DELETE 和 TRUNCATE的区别:
- 使用TRUNCATE TABLE ,表中AUTO_INCREMENT计数器会被重置为该列的初始值;
- 参与了所以和视图的表,不能使用TRUNCATE TABLE ,需要使用DELETE
- DELETE 删除没一行,都会有再事务日志中存在一行记录,TRANCATE TABLE只再事务日志中记录页的释放。
 
                    
                 




 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号