SQL Server 中的 VARCHAR(n) 列允许多少个字符? VARCHAR 变量在磁盘中占用多少空间?
在任何编程面试中,SQL 的常见问题之一是 SQL 中的 VARCHAR
和 CHAR
数据类型有什么区别? 特别是当我们的项目使用 Microsoft SQL Server 时。 你可能已经见过几次,但鉴于它的流行,现在人们以不同的方式问这个问题,例如 他们会问你一列 VARCHAR(2)
数据类型需要多少空间? 它可以容纳多少个字符? 你如何最小化空间? 使用 CHAR
变量而不是 VARCHAR(2)
更好吗?为什么? 这些是一些非常有趣的问题,比经典的 SQL 问题更有意义,例如 char 与 varchar 数据类型问题之间的区别 。
首先,在较早的问题中,它将测试考生的实践知识而不是理论知识。 其次,它有很多有用的后续问题来进一步检查候选人对 SQL 和数据库基础知识的理解深度。 让我们尝试在本文中回答这些问题。
SQL Server 中的 VARCHAR(n) 列占用多少空间?
关于此主题的第一个问题是 varchar(2)
或 varchar(3)
列或变量在 Microsoft SQL Server 中将占用多少空间? 在回答这个问题之前,你应该弄清楚面试官在这里所说的空间是什么意思,他指的是空间还是用来在磁盘中以字节为单位存储这些值的内存。
如果是,那么你可以说它不是常数,它取决于你存储的值。 如果没有存储任何内容,即空字符串,则至少需要 2 个字节来存储 varchar(2) 值,如果在其上存储 2 个字符,则最多需要 2+2 = 4 个字节。
例如,如果有一个名为“Enabled VARCHAR(1) ”的列并存储“Y”或“N”等值,那么它将在磁盘中占用 3 个字节,一个用于数据,两个用于元数据。
VARCHAR(n) 列或变量中可以存储多少个字符?
与 VARCHAR
变量和列相关的第二个重要问题是关于它们可以存储多少个字符以及如果存储更多字符会发生什么情况?
有时,还会询问 VARCHAR(2)
列的限制或容量是多少? 你可以在那里存储多少个字符?
答案很简单,但对许多程序员来说却很棘手。 在 VARCHAR(2)
变量或列中,我们可以存储最多两个字符的字符串,例如 空字符串、一个字符串或两个字符的字符串都可以放在那里。
很多程序员因为 VARCHAR
就在这一点上搞糊涂了,他们认为因为是 varchar
,所以可以存储任意多的字符,但事实并非如此。 变量部分来自将值存储到磁盘中所需的实际内存,例如 存储更少的字符需要更少的内存,存储更多的字符需要更多的内存。
你应该在这里使用 CHAR 数据类型吗?
建议对小数据使用 CHAR
或固定长度数据类型,因为 VARCHAR
需要增加开销。 由于 CHAR
不需要 VARCHAR
存储元数据所需的额外 2 个字节,因此最好使用 CHAR(2)
而不是 VARCHAR(2)
,因为如果存储两个字符,CHAR(2)
将占用 2 个字节,但 VARCHAR(2)
将 占用四个字节。
选择正确的数据类型所节省的少量费用对于具有数百万条记录的大型表来说意义重大。
相关文章
在 Pandas 中执行 SQL 查询
发布时间:2024/04/24 浏览次数:1195 分类:Python
-
本教程演示了在 Python 中对 Pandas DataFrame 执行 SQL 查询。
如何在 MySQL 中声明和使用变量
发布时间:2024/03/26 浏览次数:115 分类:MySQL
-
当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。
在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞
发布时间:2024/03/26 浏览次数:82 分类:MySQL
-
你将了解阻止主机的原因。此外,通过使用 phpMyAdmin 和命令提示符刷新主机缓存来解除阻塞的不同方法和效果。