SQL
1.distinct关键字和order by同时使用时要注意
在sql中当order by和distinct同时使用时,如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。例如:
select distinct id from table_name order by number desc;
运行时往往会报错。因为在order by中出现的number没有在select distinct中出现,所以正确的写法应该是
select distinct id ,number from table_name order by number desc;
2.group by和order by同时使用时要注意order by的列,必须是出现在group by子句里的列
3.使用group by时要注意
保证查询列表中的列出现在group by的列中,聚合函数中的列不用保证出现在group by的列中。
4.如果查询一个数值类型的字段,当它为null时,想把它返回的结果设置为0,该怎么写?
mysql数据库使用ifnull(var1 , var2)函数
比如:
select
ifnull(quantity , 0) quantity
from a;
这样遇到quantity为null的记录,就会把quantity设置为0了
但是当这一行整条记录都为null的时候,ifnull函数就不起作用了,这种情况一般会发生在多表查询时
5.同一个select中,可以用别名实现两个数值类型的相邻列(不是相邻列也可以)的加减吗?
不能,所有查询列的结果是同时出来的,一个列的别名不会被别的列识别。
6.用逗号连接多个表查询,对应的是哪种join?
对应的是inner join 也可以简写为join。
7.为什么在mysql中使用full join查询和inner join查询返回的结果相同?
mysql不支持full join
8.如何用sql查询一条数据在表里是否存在?
select 1 from student where name = "fc" limit 1;