一、插入数据
插入数据的方式:插入完整的记录、插入记录的一部分、插入多条记录、插入另一个查询记录
1、为表的所有字段插入记录
Insert int table_name(column list) values (value_lists);
1)指定所有字段名:列名顺序可以不是表所定义的顺序,及插入数据时不需要按照表的定义顺序插入数据,只要保证值的顺序与列字段的顺序相同就可以了。
2)完全不指定字段名:每一个插入的字段值必须与表中字段所定义的顺序一样。
方法一中更加具有灵活性,不根据表的变化而变化。
2、为表指定的字段插入数据
Insert into table_name(部分字段)values(value值);——要保证每个插入值的类型和对应列的数据类型匹配,如果类型不同则插入失败。
3、同时插入多条记录
Insert into table_name(column_list)
Values(value_lists),(value_lists2),(value_lists3),……(value_listsn);
同时插入行记录效率比多个插入单行记录效率要高。
4、将查询结果插入到表中
Insert into table_name (column_list)
Select (column_lists) from table_name2 where (condition);
二、更新数据
更新数据的基本语法结构:
Update table_name
Set column_name1=value1,column_name2=value2,……column_namen=valuen
Where (condition);
保证update以where子句结束,通过where子句指定被更新的记录所需要满足的条件,若忽略where子句条件,MySQL将更新表中的所有行。
三、删除数据
Delete from table_name [where <condition>];
如果想删除表中的所有记录可以使用trauncate table table_name语句,trauncate将直接删除原来的表并重建一个新表,所以速度比delete快。
解惑:
1、插入记录可以不指定字段名称吗?——不管使用哪一种insert语法,必须给出values的正确数目,也就是说不提供字段名,则必须与表的定义顺序插入记录,否则会产生错误消息;如果在insert操作中省略些字段,省略的字段必须定义为允许空或者有默认值。
2、更新或者删除表时必须指定where子句吗?——一般情况下update/delete用where子句来指定条件,除非你想更新所有的行则省略where子句。