MySQL 学习<七> 插入、更新与删除数据

插入数据

语法:INSERT INTO table_name (column_list)  VALUES  (value_list);
下面为方便演示,已经创建好一个person表,表的具体描述如下如所示:

MySQL 学习<七> 插入、更新与删除数据

插入一条数据:
MySQL 学习<七> 插入、更新与删除数据

同理,为表的特定字段插入数据:
MySQL 学习<七> 插入、更新与删除数据

同时插入多条数据,语法:
INSERT INTO table_name (column_list) 
VALUES  (value_list1),(value_list2),...,(value_listn);
MySQL 学习<七> 插入、更新与删除数据

如果不指定插入列表,AUTO_INCREMENT属性为自动插入唯一自增编号:
MySQL 学习<七> 插入、更新与删除数据

MySQL 学习<七> 插入、更新与删除数据

将查询结果插入到目标表中;语法:
INSERT INTO table_name1 (column_list1) 
SELECT (column_list2)  FROM  table_name2 WHERE (condition);
下面同样创建一个person_old表以方便演示。

person_old表中的数据如下:
MySQL 学习<七> 插入、更新与删除数据

将查询结果插入到person表中:
MySQL 学习<七> 插入、更新与删除数据

再次查看执行结果:
MySQL 学习<七> 插入、更新与删除数据

更新数据

数据表中有数据后,实际运用中不可避免地会对其有更新操作,下面会对其进行相应演示。
更新基本语法:
UPDATE table_name 
SET  column_name1 = value1,column_name2 = value2,...,column_namen = valuen
WHERE  (condition);

示例,将id为11的数据,age字段更改为15,name字段更改为mc:
MySQL 学习<七> 插入、更新与删除数据


删除数据

基本语法:DELETE  FROM  table_name  [WHERE <condition>];
如果没有WHERE 限定条件,将会删除表中所有数据记录。
示例:
MySQL 学习<七> 插入、更新与删除数据

这里,在补充几点:
1.DELETE * FROM table_name;将删除表中所有数据;
2.除此TRUNCATE TABLE table_name;也能达到同样的效果,但是TRUNCATE语句时直接删除原来的整个表,并重新建立一个结构一样的表,因此速度快于DELETE;
3.DROP TABLE table_name;语句是直接删除整个表;
4.速度上来看,DROP > TRUNCATE > DELETE。
建议:
1.使用上,想删除部分数据行用 delete,注意带上where子句. 回滚段要足够大。
2.想删除表,当然用 drop。
3.想保留表而将所有数据删除,如果和事务无关,用truncate即可。如果和事务有关,或者想触发trigger,还是用delete。
4.如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。