1 一些概念

1.1 null与not null

null 和 not null是mysql的字段属性,或称为数据类型的属性,不属于任何类型。null值也不等同于空值,空值是不占用存储空间的,null占用存储空间,如对myisam表占用1bit额外存储空间。

1.2 is null与 is not null

is null和 is not null是mysql的运算符。查询某字段为空时用is null,而不能使用"=null",因为mysql中的null不等于任何其他值,也不等于另外一个null,优化器会把"=null"的查询过滤掉而不返回任何数据;查询某字段为非空时使用is not null。

1.3 ifnull():语法如下:

IFNULL(expr1,expr2)

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。

2 创建测试表及数据

2.1 创建测试表

[sql]  view plain

copy

CREATETABLEPLAYERS

(PLAYERNO       INTEGERNOTNULL,

NAMECHAR(15)NOTNULL,

INITIALS       CHAR(3)NOTNULL,

BIRTH_DATE     DATE,

SEX            CHAR(1)NOTNULL,

JOINED         SMALLINTNOTNULL,

STREET         VARCHAR(30)NOTNULL,

HOUSENO        CHAR(4)              ,

POSTCODE       CHAR(6)              ,

TOWN           VARCHAR(30)NOTNULL,

PHONENO        CHAR(13)             ,

LEAGUENO       CHAR(4)              ,

PRIMARYKEY(PLAYERNO));

2.2 插入测试数据

[sql]  view plain

copy

INSERTINTOPLAYERSVALUES(2,'Everett','R','1948-09-01','M', 1975,'Stoney Road','43','3575NH','Stratford','070-237893','2411');

INSERTINTOPLAYERSVALUES(6,'Parmenter','R','1964-06-25','M', 1977,'Haseltine Lane','80','1234KK','Stratford','070-476537','8467');

INSERTINTOPLAYERSVALUES(7,'Wise','GWS','1963-05-11','M', 1981,'Edgecombe Way','39','9758VB','Stratford','070-347689',NULL);

INSERTINTOPLAYERSVALUES(8,'Newcastle','B','1962-07-08','F', 1980,'Station Road','4','6584WO','Inglewood','070-458458','2983');

INSERTINTOPLAYERSVALUES(27,'Collins','DD','1964-12-28','F', 1983,'Long Drive','804','8457DK','Eltham','079-234857','2513');

INSERTINTOPLAYERSVALUES(28,'Collins','C','1963-06-22','F', 1983,'Old Main Road','10','1294QK','Midhurst','010-659599',NULL);

INSERTINTOPLAYERSVALUES(39,'Bishop','D','1956-10-29','M', 1980,'Eaton Square','78','9629CD','Stratford','070-393435',NULL);

INSERTINTOPLAYERSVALUES(44,'Baker','E','1963-01-09','M', 1980,'Lewis Street','23','4444LJ','Inglewood','070-368753','1124');

INSERTINTOPLAYERSVALUES(57,'Brown','M','1971-08-17','M', 1985,'Edgecombe Way','16','4377CB','Stratford','070-473458','6409');

INSERTINTOPLAYERSVALUES(83,'Hope','PK','1956-11-11','M', 1982,'Magdalene Road','16A','1812UP','Stratford','070-353548','1608');

INSERTINTOPLAYERSVALUES(95,'Miller','P','1963-05-14','M', 1972,'High Street','33A','5746OP','Douglas','070-867564',NULL);

INSERTINTOPLAYERSVALUES(100,'Parmenter','P','1963-02-28','M', 1979,'Haseltine Lane','80','6494SG','Stratford','070-494593','6524');

INSERTINTOPLAYERSVALUES(104,'Moorman','D','1970-05-10','F', 1984,'Stout Street','65','9437AO','Eltham','079-987571','7060');

INSERTINTOPLAYERSVALUES(112,'Bailey','IP','1963-10-01','F', 1984,'Vixen Road','8','6392LK','Plymouth','010-548745','1319');

3 实例分析

3.1 实例1

获取拥有一个联盟会员号码的每个球员的号码和联盟会员的号码。

[sql]  view plain

copy

selectplayerno, leagueno

fromplayers

whereleaguenoisnotnull;

注意:is null不能用=号代替。

3.2 实例2

如果要获得非联盟成员的所有球员的信息,只需将is not null改为is null 即可

[sql]  view plain

copy

selectplayerno, leagueno

fromplayers

whereleaguenoisnull;

3.3 实例3 isfull()函数1

[sql]  view plain

copy

mysql>SELECTIFNULL(1,'test');

+------------------+

| IFNULL(1,'test') |

+------------------+

| 1                |

+------------------+

由于 expr1 是 1,不为 NULL,所以函数返回1.

[sql]  view plain

copy

mysql>SELECTIFNULL(1/0,'test');

+--------------------+

| IFNULL(1/0,'test') |

+--------------------+

| test               |

+--------------------+

由于 expr1 是NULL,所以函数返回test.

4 一些注意事项

4.1 排序时MySQL将null作为最小值处理。

4.2 not null字段不能插入null,但可以插入空值。

mysql数字型不为空语句,mysql查询语句select-(null,not null,is null和is not null)相关推荐

  1. hive的条件查询语句_[一起学Hive]之九-Hive的查询语句SELECT

    关键字:Hive SELECT.ORDER BY.SORT BY.DISTRIBUTE BY.CLUSTER BY.Hive子查询.Hive虚拟列 八.Hive的查询语句SELECT 在所有的数据库系 ...

  2. 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集

    如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括: 如 ...

  3. mysql数字型检索比字符型检索快_mysql温故知新

    如何进行SQL优化? 答: (1)选择正确的存储引擎 以 MySQL为例,包括有两个存储引擎 MyISAM 和 InnoDB,每个引擎都有利有弊. MyISAM 适合于一些需要大量查询的应用,但其对于 ...

  4. MySQL数据库——查询语句SELECT的学习总结,2W字超详细总结,值得收藏

    文章目录 一.基本的SELECT语句 1.SQL分类 2.SQL的语言规范 2.1.基本规则(必须遵守) 2.2.SQL大小写规范(建议遵守) 2.3.注释 2.4.数据导入指令 3.基本的SELEC ...

  5. mysql四个对勾_Mysql like查询语句中,结果包含反斜杠 \ 字符的,需要替换成四个反斜杠 \\\\...

    如题,当SQL语句中使用Like查询,且期望匹配的结果中含有"\"的,应当把"\"替换为"\\\\". 比如数据库中text字段有以下三行: ...

  6. mysql linux selected_MySQL的查询语句--SELECT

    本来想总结高可用集群的另外几个实验呢,回头看看别人总结的内容,好精细,而且扩展了好多内容,惭愧的不行,还是先跳过了,呵呵~~~ 介绍了简单的数据库操作等,接下来从细节入手,来介绍mysql的查询语句: ...

  7. infomixdb mysql_不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

    在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn fro ...

  8. MySQL优化索引及优化汉字模糊查询语句

    转 http://blog.csdn.net/firstboy0513/article/details/6912632 利用MySQL这种关系型数据库来做索引,的确有些勉强了,也只能看情况来说了,有些 ...

  9. 菜鸟的MySQL学习之旅(二)—查询语句

    MySQL 基础 (一)- 查询语句 1. SQL是什么?MySQL是什么? 2. 导入示例数据库 3. 查询语句 3.1. SELECT语句简介 3.2. SELECT语句的语法 3.3. 实例 4 ...

最新文章

  1. 第十五周项目一-程序填空(范型程序设计)
  2. 动态路由和动态路由中的RIP协议
  3. char添加一个字符_给你五十行代码把图片变成字符画!程序:太多了,一半都用不完...
  4. vue配置git的子模块
  5. ROS 学习笔记(一):工作空间+功能包创建
  6. 【报告分享】新零售专题报告:从直播电商的春秋战国,看mcn的进阶之道.pdf
  7. nyoj-488 素数环 +nyoj -32 组合数 (搜索)
  8. BST树、B树、B+树、B*树
  9. Crossing Road Simulation
  10. 怎么让拿到的字符串类型的值去掉双引号显示_python入门系列:Python数据类型
  11. python可以下载百度文库_不用下载券也能下载百度文库资料,Python帮你轻松搞定...
  12. java ocr文字识别_java文字识别技术
  13. Openbravo安装与部署
  14. 【使用python和flask建个人博客】给card增加了编辑内容的功能,并且增加了一个已开始清单的选项
  15. 全国计算机等级考试ms office,全国计算机等级考试一级ms office
  16. 卷积神经网络训练中的迭代次数 轮数 bathsize的解释
  17. 搜狗拼音带来的俩个烦人的弹窗解决方法
  18. 软件工程实践 项目开始准备
  19. 调用百度地图api实现地图查询功能
  20. 年会抽奖源码html js,js年会抽奖程序

热门文章

  1. 深入字节版atop: 线上系统的性能监控实践
  2. Codeup墓地-1985
  3. NVIDIA GeForce Experience登录不了解决方法[ 氵]
  4. js输出100以内的质数_JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例...
  5. C++ algorithm advance函数
  6. 【数学1】基础数学问题 - 题单 - 洛谷
  7. 前端移动端web开发(一)
  8. python中的sep参数_Python sep参数使用方法详解
  9. JVM学习笔记之StringTable
  10. ROS小白成长记之---工作空间移植问题