SQL学习笔记

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;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容