2025-11-20 06:47:59
INT类型在SQL Server里是4位有符号整数,能存-到之间的数。IN语句就像问"这些值里有没有对的",比如查"1,3,5"里有没有2,没就返回假,有就返回真。
为啥INT是4位呢?因为SQL Server的文档写明INT占4个字节,每个字节8位,总共32位。这32位里最左边1位是符号位,剩下31位存数值。比如最大值的二进制是0111 1111,正好31个1。当存-时,符号位变1,数值位全0,这时候刚好塞满4字节。IN语句的原理是逐个比对查询值,比如查"10"在[5,15]里,先看5是不是10,不是再查15是不是,没找到就返回假。数据库里每个IN子句最多能查16777215个值,超过就会报错。比如写IN(1,2,3,4...)到16777216个值,就会提示"IN列表值超过最大限制"。这种设计平衡了存储效率和查询速度,虽然查太多值会慢,但日常够用。
本题链接: