SQL⾯试题两题where和having的区别,主键和唯⼀索引键值
的区别
where和having的区别
Where 是⼀个约束声明,使⽤Where约束来⾃的数据,Where是在结果返回之前起作⽤的,Where中不能使⽤聚合函数。
Having是⼀个过滤声明,是在查询返回结果集以后对查询结果进⾏的过滤操作,在Having中可以使⽤聚合函数。
在查询过程中聚合语句(sum,min,max,avg,count)要⽐having⼦句优先执⾏。⽽where⼦句在查询过程中执⾏优先级⾼于聚合语句。
⼤致解释如下,sql语句的执⾏过程是:from-->where-->group by -->having --> select--- >order by;
聚合函数是针对结果集进⾏的,但是where条件并不是在查询出结果集之后运⾏,所以主函数放在where语句中,会出现错误,
sql查询面试题及答案⽽having不⼀样,having是针对结果集做筛选的,所以我门⼀般吧组函数放在having中,⽤having来代替where,having⼀般跟在group by后
主键和唯⼀索引的区别
⼆、区别
主键是⼀种约束,⽬的是对这个表的某⼀列进⾏限制;
唯⼀索引是⼀种索引,索引是数据库表的⼀个冗余结构,⽬的是为了更好的查询;
主键列不允许为空值,⽽唯⼀性索引列允许空值;
⼀个表最多只能⼀个主键,但是可以包含多个唯⼀索引;
1、⼀个表中可以有多个唯⼀索引,但是只能有⼀个主键。
2、主键⼀定是唯⼀性索引,唯⼀性索引并不⼀定就是主键
主键不允许为空,唯⼀键允许为空,空值不受唯⼀约束,也就是说可以有多个空值。
注:可以多列组合成⼀个唯⼀索引或者⼀个主键,即组合索引或组合主键
SQL排序问题
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论