1.DISTINCT可以应用于所有的列吗?
在查询结果中,如果需要对列进行降序排列,可以使用DESC,这个关键字只能对其前面的列进行降序排列。例如,要对多列都进行降序排列,必须要在每一列的列名后面加DESC关键字。而DISTINCT不同,DISTINCT不能部分使用。换句话说,DISTINCT关键字应用于所有列而不仅是它后面的第一个指定列。例如,查询3个字段s_id、f_name、f_price,如果不同记录的这3个字段的组合值都不同,那么所有记录都会被查询出来。
2.ORDER BY可以和LIMIT混合使用吗?
在使用ORDER BY子句时,应保证其位于FROM子句之后,如果使用LIMIT,则必须位于ORDER BY之后,如果子句顺序不正确,MySQL将产生错误消息。
3.什么时候使用引号?
在查询的时候,会看到在WHERE子句中使用条件,有的值加上了单引号,而有的值未加。单引号用来限定字符串,如果将值与字符串类型列进行比较,则需要限定引号;而用来与数值进行比较则不需要用引号。
4.在WHERE子句中必须使用圆括号吗?
任何时候使用具有AND和OR操作符的WHERE子句都应该使用圆括号明确操作顺序。如果条件较多,即使能确定计算次序,默认的计算次序也可能会使SQL语句不易理解,因此使用括号明确操作符的次序是一个好的习惯。
5:为什么使用通配符格式正确,却没有查找出符合条件的记录?
在MySQL中存储字符串数据时,可能会不小心把两端带有空格的字符串保存到记录中,而在查看表中记录时,MySQL不能明确地显示空格,数据库操作者不能直观地确定字符串两端是否有空格。例如,使用LIKE’%e’匹配以字母e结尾的水果的名称,如果字母e后面多了一个空格,则LIKE语句不能将该记录查找出来。解决的方法是使用TRIM函数,将字符串两端的空格删除之后再进行匹配。