- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对数据库设计还比较陌生,我正在用 SQLite 制作一个表。我以为我被教导最好使用 NULL 代替空字符串,所以这就是我一直在做的事情。我正在使用以下行构建地址表:
CREATE TABLE addresses (
addressID INTEGER PRIMARY KEY,
officeName TEXT,
address TEXT NOT NULL CHECK(address<>''),
UNIQUE (officeName, address)
INSERT OR IGNORE INTO addresses (officeName,address) VALUES (?,?)
最佳答案
NULL
和空字符串在语义上是不同的,就像 NULL
和 0
在语义上是不同的。NULL
意思是“没有值(value)”。在你的情况下,那将是“没有地址”。
空字符串是零长度的字符串字符串值。在您的情况下,这将是一个空字符串的地址。
是否使用NULL
或者空字符串取决于情况的语义,就像决定是否使用 NULL
或 0
.
但是,NULL
s 在比较时有点乱,IN
, 索引, DISTINCT
, 和 GROUP BY
. Everyone seems to do things a little differently (仅供引用,此链接不涵盖 SQL Server,它以另一种方式执行此操作),因此不幸的是,通常会做出妥协以适应特定的所需行为,具体取决于 DBMS。
在您的情况下,如果您想使用您感兴趣的 SQLite 功能,则必须使用空字符串。
SQLite was originally coded in such a way that [NULLs are never distinct]. But the experiments run on other SQL engines showed that none of them worked this way. So SQLite was modified to work the same as Oracle, PostgreSQL, and DB2. This involved making NULLs indistinct for the purposes of the SELECT DISTINCT statement and for the UNION operator in a SELECT. NULLs are still distinct in a UNIQUE column. This seems somewhat arbitrary, but the desire to be compatible with other engines outweighed that objection.
INSERT OR IGNORE
是 SQLite 独有的;因为您不会询问其他 DBMS 是否使用该语句。
关于sql - 检查唯一性时我应该使用空字符串而不是 NULL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20028209/
我正在尝试用 Java 构建一个字符串,该字符串的长度最多为 3,最少为 1。 我正在根据整数数组的内容构建字符串,如果数组的内容为 -1,我想在字符串中输出一个空字符。否则字符串将包含整数的字符版本
我有一个类,其中有一个方法可以在字符串中包含 NUL 字符的情况下终止程序。具体表达是这样的: stringVar.indexOf('\u0000') < 0 这个字符串是通过 Scanner 从用户
我有一个 wchar_t 数组。我需要在数组中的特定位置添加一个 unicode 空字符。 wchar_t var1[100]; var1[79] = '\u0000'; 我尝试了上面的方法,但出现以
好吧,这听起来可能是重复的,但我已经尝试了所有可能性,例如 str.strip()、str.rstrip()、str.splitline (),还 if-else 检查像: if str is not
System.out.println("-----------------------------------------------------------"); System.out.pr
我有一个奇怪的问题。我从公司内部的许多不同应用程序接收数据,并将这些数据显示在网站上。根据发送数据的系统,数据本身可能在字符串中包含一些奇怪的字符。我的问题是我有一个用户可以搜索以允许其中包含此数据的
我遇到了 aSSL ,这似乎有几年历史了,想知道是否有人有其他“安全”AJAX 连接代码示例?显然,这不如使用 SSL 证书安全,但使用 null character SSL在那里进行攻击(最近针对
我有一个类似于以下内容的 pyspark 数据框: df = sql_context.createDataFrame([ Row(a=3, b=[4,5,6],c=[10,11,12], d='b
我有以下要执行的查询: MyModel.objects.annotate(current_name=Coalesce('nickname', 'name')).order_by('current_na
每当 rails 变量等于 nil(或者实际上每当我使用 rails 代码(参见第 3 个代码示例))时,我的 html 中就会得到一串空字符。 new.html.haml %h1.editable.
我是一名优秀的程序员,十分优秀!