WHERE子句:WHERE子句主要的作用就是过滤和筛选使用,可以增加多个过滤条件,但是必须使用AND链接。有一个需要注意的地方:当WHERE子句后面有多个过滤条件时,既有AND和OR的情况下,SQL优先处理AND字符,这一点需要注意,例:
SELECT * FROM products WHERE products.prod_name='辉腾3' OR products.prod_name='辉腾5' AND products.prod_price>4000000
上面那句SQL可以理解成查询的是产品名称为'辉腾5'并且(AND)产品价格大于400W或者产品名称为'辉腾3'的产品,即:
SELECT * FROM products WHERE products.prod_name='辉腾3' OR (products.prod_name='辉腾5' AND products.prod_price>4000000)
因此需要注意可能查询的结果和预期的结果不同,上面代码的正确的写法是,因为我要查询的数据是产品名称是辉腾3或者辉腾5并且价格大于400W的:
SELECT * FROM products WHERE (products.prod_name='辉腾3' OR products.prod_name='辉腾5') AND products.prod_price>4000000
IN操作符:IN操作符某些情况下与OR的作用相同,但是使用IN更加的方便,易懂,并且效率更高;同时IN操作符可以包含其他SELECT子句,动态的建立WHERE子句
拼接字符串:mysql使用CONCAT拼接字符串,例:SELECT CONCAT( products.prod_name,"+", products.prod_desc) AS test FROM products
CONTAT平时由于并不常用,很难想起来,但是该字符串在我们需要一些列拼接出来结果时,非常有效,比自己在服务端处理更加的方便。
SQL中的聚集函数:5种,分别是AVG(),COUNT(),MAX(),MIN(),SUM()
AVG()函数是用来计算某一列的数值的平均值,是会忽略列值为null的行;
COUNT:使用COUNT(*)不会忽略null值,但是使用COUNT(cloum)是会忽略null值
MAX()和MIN()都会忽略null值;
以上五种聚合函数均可使用DISTINCT关键字去重复,如:SELECT COUNT(DISTINCT products.prod_name) FROM products
一个SQL中同样可以使用多个聚合函数