首页 > 数据库 >无涯教程-MySQL - NULL 语句

无涯教程-MySQL - NULL 语句

时间:2023-11-27 13:31:57浏览次数:36  
标签:count tcount MySQL 无涯 tbl mysql NULL tutorial

前面已经介绍了如何利用SQL的 SELECT 命令配合 WHERE 子句来获取 MySQL 表中的数据,但假如尝试给出一个条件,将字段或列值与 NULL 比对,则会出现异常。

为了处理这种情况,MySQL提供了三个运算符-

  • IS NULL           - 如果列值为NULL,则此运算符返回true。

  • IS NOT NULL - 如果列值不为NULL,则此运算符返回true。

  • <=>                   - 该运算符比较值(与=运算符不同),即使对于两个NULL值也是如此。

命令行NULL值

假设Learnfk数据库中有一个名为 tcount_tbl 的表,它包含两列,即 tutorial_author 和 tutorial_count ,其中NULL tutorial_count表示值未知。

root@host# mysql -u root -p password;
Enter password:*******

mysql> use Learnfk;
Database changed

mysql> create table tcount_tbl
   -> (
   -> tutorial_author varchar(40) NOT NULL,
   -> tutorial_count  INT
   -> );
Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO tcount_tbl
   -> (tutorial_author, tutorial_count) values ('mahran', 20);

mysql> INSERT INTO tcount_tbl
   -> (tutorial_author, tutorial_count) values ('mahnaz', NULL);

mysql> INSERT INTO tcount_tbl
   -> (tutorial_author, tutorial_count) values ('Jen', NULL);

mysql> INSERT INTO tcount_tbl
   -> (tutorial_author, tutorial_count) values ('Gill', 20);

mysql> SELECT * from tcount_tbl;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
|     mahran      |       20       |
|     mahnaz      |      NULL      |
|      Jen        |      NULL      |
|     Gill        |       20       |
+-----------------+----------------+
4 rows in set (0.00 sec)

mysql>

您可以看到=和!= 不适用于NULL值,如下所示-

mysql> SELECT * FROM tcount_tbl WHERE tutorial_count = NULL;
Empty set (0.00 sec)

mysql> SELECT * FROM tcount_tbl WHERE tutorial_count != NULL;
Empty set (0.01 sec)

要查找tutorial_count列为NULL或不为NULL的记录,应按以下程序所示编写查询。

mysql> SELECT * FROM tcount_tbl 
   -> WHERE tutorial_count IS NULL;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
|     mahnaz      |      NULL      |
|      Jen        |      NULL      |
+-----------------+----------------+
2 rows in set (0.00 sec)
mysql> SELECT * from tcount_tbl 
   -> WHERE tutorial_count IS NOT NULL;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
|     mahran      |       20       |
|     Gill        |       20       |
+-----------------+----------------+
2 rows in set (0.00 sec)

参考链接

https://www.learnfk.com/mysql/mysql-null-values.html

标签:count,tcount,MySQL,无涯,tbl,mysql,NULL,tutorial
From: https://blog.51cto.com/u_14033984/8584043

相关文章

  • 超详细的Mysql锁 实战分析,你想知道的都在这里~
    1.mysql回表查询在这里提起主要是用于说明mysql数据和索引的结构,有助于理解后续加锁过程中的一些问题。mysql索引结构和表数据结构是相互独立的,根据索引查询,只能找到索引列和主键聚簇索引。如果select语句中不包含索引列,mysql会根据主键聚簇索引二次回表查询所需要的数据,查询出......
  • PostgreSQL数据库开启 a=null等价于a is null 功能
    前言PostgreSQL官方文档:http://www.postgres.cn/docs/11/functions-comparison.html今天在预览PostgreSQL文档的时候看到了这个功能,平时写SQL都是ais[not]null来进行判断的,第一次见到可以这样,觉得挺新奇的就先记录下。ps:存在即合理。GOtransform_null_equals(boolean)是P......
  • 3、python脚本连接本地mysql数据库读取表数据
    #coding:utf-8frompymysqlimportconnectdata_list=[]#将数据存入数据库conn=connect(host="10.36.128.83",port=20002,database="sthjj_sthj",user="lw_lwc",password=&qu......
  • Mysql Varchar(n) 占用字符、字节数浅析
    一、概述varchar(n)括号中的n代表最大可容纳的字符的个数,注意,并不是代表字节的个数一个中文和一个英文都是一个字符,只不过mysql的编码格式不同时,一个英文和一个中文所占用的存储字节数不同,一个英文字符占用的字节数是1,中文字符和英文字符不同,以下是常用的编码格式......
  • proxyHost should not be null when a proxy is specified
    进入设置界面,找到本地gradle进入目录,打开gradle.properties文件把框里的注释掉,回到软件重新编译,解决!......
  • 线上业务系统的迁移思路【MySQL】
    概论在日常开发场景中,迁移数据库是非常常见的。但是线上业务系统进行迁移,并不是见一个简单的问题,必须考虑到迁移过程中线上系统的可用性、性能等。本文针对MySQL对迁移策略进行讨论。实现方法思路一:binlogMySQL的binlog日志是一种二进制格式的日志,binlog记录所有的DDL和DML语......
  • 无涯教程-MySQL - 安装设置
    MySQL的所有下载均位于MySQL下载中,选择MySQLCommunityServer的版本号,以及将在其上运行的平台。Linux安装建议在Linux系统上安装MySQL的方法是通过RPM。 现在,您将需要遵循以下步骤,继续进行安装-[root@host]#rpm-iMySQL-x.x.xx.i386.rpm您可以在/usr/bin和/usr/sbin......
  • mysql 第一个查询结果中排除掉第二个查询结果
    selecte.ENAME,d.LOCfromempe,deptdwheree.DEPTNO=d.DEPTNOand(d.LOC='DALLAS'ord.LOC='CHICAGO');第一个语句搜索结果有SMITHALLEN等很多ENAME|LOC|------+-------+SMITH|DALLAS|ALLEN|CHICAGO|WARD|CHICAGO|JONES|DALLAS|MARTIN|CHI......
  • 无涯教程-Linux - 重定向
    在本章中,我们将详细讨论ShellI/O重定向。大多数Unix系统命令从您的终端获取输入,并将输出发送回您的终端输出。输出重定向符号>file命令将输出输出到指定的file中,如检查以下who命令,该命令将输出重定向用户文件中。$who>users请注意,终端上没有输出。这是因为输出已从......
  • 无涯教程-Linux - 引用机制
    在本章中,我们将详细讨论Shell引用机制。我们将从讨论元字符开始。元字符UnixShell提供了各种元字符,这些元字符在任何Shell脚本中使用时都有特殊的含义,并且除非引号引起,否则会导致终止。如,?匹配单个字符,而在目录中列出文件,而*匹配多个字符。这是大多数Shell特殊字符(也称为......