MySQL 学习<七> 插入、更新与删除数据
插入数据
语法:INSERT INTO table_name (column_list) VALUES (value_list);
下面为方便演示,已经创建好一个person表,表的具体描述如下如所示:
插入一条数据:
同理,为表的特定字段插入数据:
同时插入多条数据,语法:
INSERT INTO table_name (column_list)
VALUES (value_list1),(value_list2),...,(value_listn);
如果不指定插入列表,AUTO_INCREMENT属性为自动插入唯一自增编号:
将查询结果插入到目标表中;语法:
INSERT INTO table_name1 (column_list1)
SELECT (column_list2) FROM table_name2 WHERE (condition);
下面同样创建一个person_old表以方便演示。
person_old表中的数据如下:
将查询结果插入到person表中:
再次查看执行结果:
更新数据
数据表中有数据后,实际运用中不可避免地会对其有更新操作,下面会对其进行相应演示。
更新基本语法:
UPDATE table_name
SET column_name1 = value1,column_name2 = value2,...,column_namen = valuen
WHERE (condition);
示例,将id为11的数据,age字段更改为15,name字段更改为mc:
删除数据
基本语法:DELETE FROM table_name [WHERE <condition>];
如果没有WHERE 限定条件,将会删除表中所有数据记录。
示例:
这里,在补充几点:
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,再重新导入/插入数据。
2.想删除表,当然用 drop。
3.想保留表而将所有数据删除,如果和事务无关,用truncate即可。如果和事务有关,或者想触发trigger,还是用delete。
4.如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。