(1)Having一般使用在Group by聚合函数下,如:
SELECT id ,COUNT(DISTINCT superior) number,targer FROM commission GROUP BY superior HAVING targer=#{targer}
(2)通配符的使用:
形式:‘%admin%’ 数据库的索引会失效查询变慢 ,
‘qf_admin%’ 数据库的索引不会失效。
(3)时间上的间隔判断:
使用“ <= , >=” 的形式,不使用between...and... 如:
(4)连接join
等值连接(inner-join)
左连接(left-join)(当使用主键表关联外键表的时候,我们往往得到单条数据,因为主键唯一性的关系,若想得到主键表的所有数据包括关联的,则此时可以使用左联接)
右连接(right-join) 如:
SELECT t.EMPLOYEE,t.USERID,t.FULLNAME,t1.ADDRESS FROM uum_userinfo tLEFT JOINuser_address t1 ON t.USERID = t1.userid;
结果如下:
以左边表格数据为准(左边表格的数据全部显示,若没有则显示为空,多出则不显示)。
SELECT t.EMPLOYEE,t.USERID,t.FULLNAME,t1.address FROM uum_userinfo tRIGHT JOINuser_address t1ON t.USERID = t1.userid;
结果如下:
以右边表格数据为准(右边表格的数据全部显示,多出则不显示,若没有则显示为空)。
(5)UCASE 转换成大写,LCASE转换成小写。
(6)Union 与Union All
SELECT t.USERID,t.ADDRESS FROMuum_userinfo t UNION SELECT t1.address,t1.id FROM user_address t1;
注:此处仅是将两个表查询出的结果简单拼接在一起,select查询必须具有相同的列数(否则将报错,如上sql中的两个select均只有两列)。
Union All 与Union相似,只是对两个表查询出的结果全部显示,而Union会去除重复的数据(保证重复的数据只显示一条)。