MySQL中的NULL表示一个特殊的值,它不是一个字符串,也不是一个数字,而是一个特殊的值,用来表示某些数据项不存在或者未知。在MySQL中,NULL值可以用来表示未知或者不存在的值。
MySQL中的NULL值可以用来表示未知或者不存在的值。它可以用来代替其他数据项,例如当你想要获取一个表中所有记录时,你可以使用NULL作为过滤条件。这样就可以获得所有记录,而不必去考虑其它过滤条件。
MySQL中的NULL也可以用于创建新表时初始化列的默认值。例如:如果你想要创建一张新表并将其中所有列都初始化为NULL,你可以使用如下语法:
CREATE TABLE table_name (column_name datatype DEFAULT NULL);
此外,MySQL中的NULL也可以用于UPDATE语句中。例如:如果你想要将一张表中所有记录都修改为NULL,你可以使用如下语法:
UPDATE table_name SET column_name = NULL;
为了处理这种情况,MySQL提供了三大运算符:
关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
在MySQL中,NULL值与任何其它值的比较(即使是NULL)永远返回false,即 NULL = NULL 返回false 。
MySQL中处理NULL使用IS NULL和IS NOT NULL运算符。
以下实例中假设数据库 W3CSCHOOL 中的表 tcount_tbl 含有两列 _author 和 _count, _count 中设置插入NULL值。
尝试以下实例:
root@host# mysql -u root -p password; Enter password:******* mysql> use W3CSCHOOL; Database changed mysql> create table tcount_tbl -> ( -> _author varchar(40) NOT NULL, -> _count INT -> ); Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO tcount_tbl -> (_author, _count) values ("mahran", 20); mysql> INSERT INTO tcount_tbl -> (_author, _count) values ("mahnaz", NULL); mysql> INSERT INTO tcount_tbl -> (_author, _count) values ("Jen", NULL); mysql> INSERT INTO tcount_tbl -> (_author, _count) values ("Gill", 20); mysql> SELECT * from tcount_tbl; +-----------------+----------------+ | _author | _count | +-----------------+----------------+ | mahran | 20 | | mahnaz | NULL | | Jen | NULL | | Gill | 20 | +-----------------+----------------+ 4 rows in set (0.00 sec) mysql>
以下实例中你可以看到 = 和 != 运算符是不起作用的:
mysql> SELECT * FROM tcount_tbl WHERE _count = NULL; Empty set (0.00 sec) mysql> SELECT * FROM tcount_tbl WHERE _count != NULL; Empty set (0.01 sec)
查找数据表中 _count 列是否为 NULL,必须使用IS NULL和IS NOT NULL,如下实例:
mysql> SELECT * FROM tcount_tbl -> WHERE _count IS NULL; +-----------------+----------------+ | _author | _count | +-----------------+----------------+ | mahnaz | NULL | | Jen | NULL | +-----------------+----------------+ 2 rows in set (0.00 sec) mysql> SELECT * from tcount_tbl -> WHERE _count IS NOT NULL; +-----------------+----------------+ | _author | _count | +-----------------+----------------+ | mahran | 20 | | Gill | 20 | +-----------------+----------------+ 2 rows in set (0.00 sec)
PHP脚本中你可以在 if...else 语句来处理变量是否为空,并生成相应的条件语句。
以下实例中PHP设置了$_count变量,然后使用该变量与数据表中的 _count 字段进行比较:
关于其中php的语法可以见于https://www..cn/php
isset() https://www..cn/php/php-isset.html
<?php
$dbhost = "localhost:3036";
$dbuser = "root";
$dbpass = "rootpassword";
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die("Could not connect: " . mysql_error());
}
if( isset($_count ))
{
$sql = "SELECT _author, _count
FROM tcount_tbl
WHERE _count = $_count";
}
else
{
$sql = "SELECT _author, _count
FROM tcount_tbl
WHERE _count IS $_count";
}
mysql_select_db("W3CSCHOOL");
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die("Could not get data: " . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "Author:{$row["_author"]} <br> ".
"Count: {$row["_count"]} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfullyn";
mysql_close($conn);
?>
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。fetchone():该方法获取下一个查询结果集...
使用MySQL二进制方式连接您可以使用MySQL二进制方式进入到MySQL命令提示符下来连接MySQL数据库。实例以下是从命令行中连接MySQL...
在windows系统中,mysql修改密码的方法还是比较多的。本文就为大家介绍四种MySQL修改root密码的方法。方法一:用SET PASSWORD命...
如果数据库连接存在我们可以使用execute()方法来为数据库创建表,如下所示创建表EMPLOYEE:#!/usr/bin/python# -*- coding: UTF-...
在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配。 MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 RE...
MySQL Date 函数定义和用法 DATE_ADD() 函数向日期添加指定的时间间隔。 语法DATE_ADD(date,INTERVAL expr type) date 参数是合...