澳门新蒲京娱乐


开放防火墙端口命令,使用firewall管理防火墙澳门新蒲京娱乐:

iOS数据存储之SQL语句的基本使用,day_02mysql表的约束设计【澳门新蒲京娱乐】

Mysql中NULL使用方法与注意事项【澳门新蒲京娱乐】,关键字在值为null的应用举例

转自:http://www.maomao365.com/?p=6873

在mysql中null包罗了not null与if
null或等等,下边小编来给大家介绍在mysql中null的注意事项与应用办法,希望对我们能抱有帮忙。

摘要:
下文通过案例分析in 关键字在值为null的行使举例,
分析出not in关键字在null值发生的不行音信
如下所示:

SELECT NULL =0, NULL =12345, NULL <>12345, NULL +12345, NULL ||
‘abc’, NULL = NULL , NULL <> NULL , NULL AND TRUE , NULL AND FALSE
, NULL OR FALSE , NULL OR TRUE , NOT (NULL);

CREATE TABLE testA(keyId INT)
CREATE TABLE testB(keyId INT)
GO
INSERT INTO testA(keyId) VALUES (1)
INSERT INTO testA(keyId) VALUES (2)
INSERT INTO testA(keyId) VALUES (3)
GO
INSERT INTO testB(keyId) VALUES (1)
INSERT INTO testB(keyId) VALUES (2)
INSERT INTO testB(keyId) VALUES (4)
INSERT INTO testB(keyId) VALUES (NULL)
GO
 SELECT * FROM testA WHERE keyId IN (SELECT keyId FROM testB)
-----输出------
/*
keyId
1
2
*/
 SELECT * FROM testA WHERE keyId not IN (SELECT keyId FROM testB)
------无输出记录-----
/*
keyId
*/
INSERT INTO testA VALUES (NULL) ---在testA表中插入空值
SELECT * FROM testA WHERE EXISTS(
    SELECT null  FROM testB WHERE testA.keyId=testB.keyId    
)
----输出----
/*
keyId
1
2
*/
SELECT * FROM testA WHERE not  EXISTS(
    SELECT null  FROM testB WHERE testA.keyId=testB.keyId    
)
/*
keyId
3
NULL
*/
SELECT * FROM testA WHERE testA.keyId NOT in (
    SELECT testB.keyId FROM testB WHERE testB.keyId IS NOT NULL    
)

drop table testA
drop table testB

若果那是一道面试题,预计不了解有个别许程序员甚至是DBA会牺牲……

 

毋庸置疑的答案是怎么?(为了强化印象,建议复制SQL到mysql里去实践,看一下)

透过以上测试,大家得以看来not in
查询关键字假诺子表中留存空值,则无法查询出其余记录,会招致很是产生,

需选拔not
exists获取相应的空值消息

下边跟大家解析一下缘故:

澳门新蒲京娱乐 1

那么在使用中哪些防止NULL带来的有些烦劳呢?

•把NULL当成二个异样值,不等于空、0、FALSE,使用IS NULL/IS NOT
NULL去检查实验
•证明NOT NULL列,给于暗许值

Null时要留心两大陷阱

骗局一:空值不必然为空

  空值是一个比较独特的字段。在MySQL数据库中,在分裂的动静下,空值往往意味着差别的意思。那是MySQL数据库的壹种个性。如在平日的字段中(字符型的数据),空值正是意味着空值。可是固然将三个空值的数量插入到TimesTamp类型的字段中,空值就不肯定为空。此时为出现什么境况吗(如下图)?

澳门新蒲京娱乐 2

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图