16.7 高手私房菜
技巧1:插入记录时可以不指定字段名称吗?
不管使用哪种INSERT语法,都必须给出VALUES的正确数目。如果提供字段名,则不必给每个字段提供一个值;如果不提供字段名,则必须为每个字段提供一个值,否则将产生一条错误消息。如果要在INSERT操作中省略某些字段,这些字段需要满足一定条件:该列定义为允许空值;或者表定义时给出默认值,如果不给出值,将使用默认值。
技巧2:更新或者删除表时必须指定WHERE子句吗?
在前面章节中可以看到,所有的UPDATE和DELETE语句全都在WHERE子句指定了条件。如果省略WHERE子句,则UPDATE或DELETE将被应用到表中所有的行。因此,除非确实打算更新或者删除所有记录,否则绝对要注意使用不带WHERE子句的UPDATE或DELETE语句。建议在对表进行更新和删除操作之前,使用SELECT语句确认需要删除的记录,以免造成无法挽回的结果。
技巧3:什么时候使用引号?
在查询的时候,会看到在WHERE子句中使用条件,有的值加上了单引号,而有的值未加。单引号用来限定字符串,如果将值与字符串类型列进行比较,则需要限定引号,用来与数值进行比较的值不需要用引号。
技巧4:为什么使用通配符格式正确,却没有查找出符合条件的记录?
MySQL中存储字符串数据时,可能会不小心把两端带有空格的字符串保存到记录中,而在查看表中记录时,MySQL不能明确地显示空格,数据库操作者不能直观地确定字符串两端是否有空格,例如,使用LIKE '%e'匹配以字母e结尾的水果的名称,如果字母e后面多了一个空格。则LIKE语句不能将该记录查找出来。解决的方法是使用TRIM函数,将字符串两端的空格删除之后再进行匹配。