Sql 如何存储一个布尔值,该值不带引号地接受yes或no?
对于我的赋值,我需要帮助存储一个布尔值,该值可以包含yes或no。列名是必需的,我收到的列属性是布尔值(1/0或T/F),默认值:NULL 我在下面列出了要使用的样本数据。是/否必须以某种方式不带引号地存储。多谢各位Sql 如何存储一个布尔值,该值不带引号地接受yes或no?,sql,database,Sql,Database,对于我的赋值,我需要帮助存储一个布尔值,该值可以包含yes或no。列名是必需的,我收到的列属性是布尔值(1/0或T/F),默认值:NULL 我在下面列出了要使用的样本数据。是/否必须以某种方式不带引号地存储。多谢各位 INSERT INTO CIS_Courses VALUES ("CIS 105", "Computer Applications and Information Technology", null, Yes); 布尔数据类型在sql server中不可用 您可以使用位数据类型来
INSERT INTO CIS_Courses
VALUES ("CIS 105", "Computer Applications and Information Technology", null, Yes);
布尔数据类型在sql server中不可用 您可以使用位数据类型来表示布尔数据。 位字段的值为1,0或null 它还使用字符串“true”和“false”代替1或0,如下所示-
declare @a bit = 'false'
print @a --output 0
declare @b bit = 'true'
print @b -- output 1
我总是使用tinyint(1)作为布尔类型值。您的表列如下所示:
ColumnName tinyint(1) not null default 0
因此,当您不插入值时,它将自动为0,或者您可以插入0或1
我希望这将对您有所帮助您使用的是MySQL还是SQL Server?请不要标记所有RDBMS。我已经删除了RDBMS标签。编辑要用您正在使用的特定RDBMS标记的问题。我猜是MySQL。(基于那些双引号字符串文字…)我不明白这个问题<代码>是为否值。字符串
'Yes'
将为。但是,如果您的DBMS支持布尔列,您宁愿使用它并存储true
或false
。例如,在CIS_课程(课程编号、标题、开始日期、确认)中插入值(“CIS 105”、“计算机应用和信息技术”,空,真)旁注:您不应该对字符串文本使用双引号。字符串文字的分隔符是单引号。根据SQL标准,双引号用于名称(表名、列名等)。您指的是哪个DBMS?您的DBMS不支持布尔数据类型吗?或者有什么东西反对使用它吗?tinyint
是通用的,不是所有SQL服务器都支持布尔数据类型。嗯,tinyint不是通用的,但是是的,很多都支持它,其他的也支持一些数字数据类型。因此,您的论点是,WHERE NOT available
或甚至HAVING each(available)
将只在支持布尔数据类型(以及此类函数)的特定DBMS中运行,而WHERE available=0
或HAVING MIN(available)=1将在所有DBMS中运行?那么您正在努力使数据库尽可能可移植?这是一个很合理的理由。我想这件事会解决的,是的。因为它没有声明他使用的是哪种类型的数据库。