MySQL中的一些常用函数和误区(练习时遇到)

一、IFNULL函数

语法:

IFNULL(expression_1,expression_2);

如果expression_1不为NULL,则IFNULL函数返回expression_1; 否则返回expression_2的结果。

适用场景:

编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 。【LeetCode--数据库--176】

二、LIMIT子句

LIMIT nums OFFSET start  /  LIMIT start,nums        检索记录范围为[start,start+nums)

LIMIT nums                                                             检索记录范围为[0,0+nums)    //行0~行nums-1

在MySQL中,limit和offset字段后面只接受非负整数(意味着负数、小数都不行)或者单一变量(意味着不能用表达式)。虽然MySQL允许使用0作为LIMIT和OFFSET参数,但在某些其他数据库管理系统中,0可能被视为无效的参数值。因此,在使用其他数据库时,请务必查看其文档以确定正确的语法和选项。

三、rank要加单引号

查询结果中的列名有rank的,要加单引号。

例:

select a.Score as Score,
(select count(distinct b.Score) from Scores b where b.Score >= a.Score) as 'rank'
from Scores a
order by a.Score DESC;

原因: 找不到明确的资料,知道的同学我们在评论区交流!

四、空值检查

在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。它与字段包含0、空字符串或仅仅包含空格不同。判断某一行的某一列是否为空值时,判断用IS

例:要求返回没有价格(空prod_price)的所有产品

SELECT prod_name FROM products WHERE prod_price IS NULL;

五、每张表都必须要有主键吗?

主键不是非要不可!

要不要主键主要看业务方面需求

1.是否满足业务要求

2.数据查询效率(主键可以提高查询效率,当然合理的索引替代也可以)

3.看表的功能,如果是用来存储大量数据,并需要经常查询这个表的,建立主键可以加快查询效率从而降低服务器的负担,如无此需求,则不需要,建立反而会占用服务器的资源

4.对多张表没有关联操作的话,不设置也没有什么影响

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值