您的位置:首页 > 数据库 > MySQL

mysql 学习笔记-插入、更新、删除

2016-01-25 21:55 459 查看

依赖次序,安不安全,不能应付改变

INSERT INTO table_name VALUES(val_1,val_2,......);


安全,更繁琐的方法,这样即使表的结构改变这条语句任然可以继续工作,同时还可以忽略不用处理的列

被省略的列必须是 列定义允许为null或者表定义中给出默认值

INSERT INTO table_name(col_1,col_2,......)
VALUES(val_1,val_2,......);


/*

insert 操作可能比较耗时,特别是在很多索引需要更新的时候,而且它可能降低等待处理的

select 语句的性能。提高整体性能的方案如下:

*/

INSERT LOW_PRIORITY
INTO table_name(col_1,col_2,......)
VALUES(val_1,val_2,......);


一次插入多行,比分散的多条 insert 快

INSERT INTO table_name(col_1,col_2,col_3,....)
VALUES(val_1,val_2,val_3,.....),
(val_1,val_2,val_3,.....),
(val_1,val_2,val_3,.....),
(val_1,val_2,val_3,.....);


插入查询得到的数据 insert select 语句的用法

INSERT INTO db_alishop.`copy_user`
(user_name,user_birth)
SELECT reg_email,user_birth
FROM db_alishop.`user`;


更新和删除数据

小心不要省略where过滤条件,这样会导致更新所有的行对应的列

UPDATE table_name
SET col_name = val_1
WHERE ...;


更新多列

UPDATE table_name
SET col_1 = val_1,
col_2 = val_2
WHERE ...;


在 update 语句中使用 select 子查询检索出来的数据更新列数据。

ignore 关键字,默认发生更新作用在多个行,如果有一个或多个失败,

整个 update 语句产生的改变会被撤销,使用 ignore 可以忽略错误,

 保留其他成功的更新。

UPDATE IGNORE table_name
SET col_name = val_1
WHERE ...;


用 update 删除某列的值,允许为 null 的情况下

UPDATE table_name
SET col_name = NULL
WHERE ...;


注意:如果不使用 where 过滤,默认删除所有的行,删除表的所有内容,而不删除表本身

DELETE FROM table_name
WHERE ...;


如果仅仅想删除表中的所有记录,不要使用 delete 用 truncate table

语句效率更好,先删除原表,然后创建一个新表,而不是逐行删除

TRUNCATE copy_user;


更新和删除的指导原则

使用强制实施引用完整性的数据库

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: