一、使用通配符技巧
1、不要过度使用通配符,如果其他操作符能达到相同的目的,应该使用其他其他操作符。
2、在确实需要使用通配符时,除非绝对必要,否则不要把他们用在搜索模式的开始处,把通配符置于搜索模式的开始处,搜索起来最慢。
3、注意通配符的位置。如果放错位置,可能不会返回想要的数据
二、使用in的一些优点
1、语法清楚且更直观
2、计算的次序更容易管理(因为使用的操作符更少)
3、in操作符一般比or操作符执行要快
4、in可以包含其他select语句,能够动态的建立where子句
三、group by的一些注意
1、group by子句可以包含任意数目的列。这使得能对分组嵌套,为数据分组提供更细致的控制。
2、如果在group by子句中嵌套了分组,数据将在最后规定的分组上进行汇总。换句话说,在建立分组时,指定的所有列都一起计算(所以不能从个别的列取回数据)。
3、group by 子句中列出的每个列都必须是检索列或者有效表达式(但是不能是聚集函数)。如果在select这种使用表达式,则必须在group by子句中指定相同的表达式。不能使用别名。
4、除聚集计算语句外,select语句中的每个列都必须在group by子句中给出。
5、如果分组中由NULL值,则NULL将作为一个分组返回。如果列中有多个NULL值,它们将分为一组。
6、group by子句必须出现在where子句之后,order by子句之前。
四、联结表时where子句的重要性
where子句作为过滤条件,它只包含那些给定条件(这里指联结条件)的行。如果没有where子句,第一个表中的每一行将与第二个表中每一行配对,而不管它们逻辑上是否可以在一起。(也就是笛卡尔积)
五、union的规则
1、union必须由两条或两条以上的select语句组成,语句之间用关键字union分隔(因此要是4条select语句,将使用3 个union关键字)。
2、union中的每个查询必须包含相同的列,表达式或聚集函数(不过各个列不需要以相同的次数列出)
3、列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型(例如,不同的数值类型或不同的日期类型)。
3、union从查询结果集中自动去除了重复的行(如果需要匹配所有行则使用union all)