创建是/否即布尔字段时,从访问数据库或一般转换的最佳实践是什么?
当前回答
Bit将是最简单的,也占用最少的空间。与“Y/N”相比,它不是很啰嗦,但我对它很满意。
其他回答
您可以使用BIT类型,可以有1或0,如果允许使用NULL,也可以使用NULL。
BIT类型转换:
除0到1以外的任何整数值。 除“0”到1之外的任何整型字符串值。 0到0。
然后,可以创建一个BIT类型的表,如下图所示:
CREATE TABLE doctor (
id INT IDENTITY,
name NVARCHAR(50),
on_call BIT, -- Here
PRIMARY KEY(id)
)
GO
然后插入行,如下图所示:
INSERT INTO doctor
VALUES ("John", 1), ("Tom", 0), ("Lisa", "-23"), ("Kai", "0"), ("Bob", NULL)
GO
1> SELECT * FROM doctor
2> GO
id name on_call
-- ---- -------
1 John 1 <- 1
2 Tom 0 <- 0
3 Lisa 1 <- "-23"
4 Kai 0 <- "0"
5 Bob NULL <- NULL
可以使用BIT字段。
要向现有表中添加BIT列,SQL命令如下所示:
添加yes_no BIT
如果你想创建一个新表,你可以这样做:create table table_name (yes_no BIT)。
已经有答案说使用比特。我会补充更多的答案。
您应该使用比特来表示布尔值。
来自MSDN文章的备注。
Bit可以取值为1、0或NULL。 SQL Server数据库引擎优化位列的存储。如果 一个表中有8个或更少的位列,这些列被存储为 1个字节。如果有从9到16位的列,列为 存储为2字节,以此类推。 字符串值TRUE和FALSE可以转换为位值:TRUE 转换为1,FALSE转换为0。 转换为位将任何非零值提升为1。 参考
注意:只有在数据类型为NOT NULL时,才将值保持为1和0是一种良好的实践
作为位有值1,0和NULL。请看真值表。所以要相应地规划价值。允许位数据类型为NULL值可能会增加混淆。
参考
Bit将是最简单的,也占用最少的空间。与“Y/N”相比,它不是很啰嗦,但我对它很满意。
钻头是最合适的选择。另外,我曾经使用int来实现这个目的。true为1,false为0。
推荐文章
- 使用SQL Server Server Management Studio导入/导出数据库
- 如何结合日期从一个字段与时间从另一个字段- MS SQL Server
- 我如何得到“id”后插入到MySQL数据库与Python?
- 在SQL中获取两个值的最小值
- 如何在不知道其名称的情况下删除SQL默认约束?
- 什么是ORM,它是如何工作的,我应该如何使用它?
- 为现有数据库生成ERD
- BASE术语解释
- 在表变量上创建索引
- 如何在SQL Server中删除外键?
- 如何为查询返回的每一行执行存储过程一次?
- 非加密用途的最快哈希?
- 如果没有使用EXISTS引入子查询,则只能在选择列表中指定一个表达式
- SQL Server -事务回滚错误?
- 查询以列出数据库中每个表中的记录数量