SQL刷题总结
知识点
牛客SQL练习题如下:
1.所有的统计函数都会忽略空值(null)。
正确答案DF.
A,B,C,E返回sum(score)除以行数;D,F返回sum(score)除以score不为null的行数。
NOT NULL表示该列必须有值,DEFAULT NULL表示该列默认为NULL。
2.sql 语句中 delete truncate drop
1、处理效率:drop>trustcate>delete
2、drop删除整个表;trustcate删除全部记录,但不删除表(truncate将直接删除原来的表, 并重新创建一个表);delete删除部分行或所有行。
3、delete不影响所用extent,高水线保持原位置不动;trustcate会将高水线复位。
高水位的概念,通俗的讲就是将存储空间想象成水库,插入数据水位线就会上升,但是删除操作并不会造成最高水位线下降。
3.联接
A错误在于多个返回查询值不能用=,要用in
4.where在分组前过滤,having在分组后过滤,两者之间不冲突。
5.数据库中字符串的索引 开始于1
datediff函数
理解datediff(dd,RDDATE,getdate())==0含义,即返回以日为单位(dd),和当前日期(getdate)相差为0日的RDDATE。
这里用这个函数的意义在于,RDDATE包括日期和时间,这里因为有时间,和getdate不能直接比较,所以用datediff转换为范围。