一、MYSQL什么时候返回空,什么时候返回NULL
在 MySQL 中,空值(Empty Value)和 NULL 值(Null Value)是两个不同的概念。空值是表示某个字段没有被赋值的情况,可以理解为“无值”,它是字符串、数字或日期/时间类型的一种特殊取值。例如,如果您在一个字符串类型的字段中插入空字符串或使用空值函数,则该字段将被视为“无值”,而不是NULL值。而 NULL 值则表示某个字段的值未知或不存在,可以理解为“缺失值”。例如,在向表中插入一条记录时,如果某个字段没有提供数据,则该字段将被视为 NULL 值。简而言之,当你在查询 MySQL 数据库时,如果某个字段包含空值,则该字段的内容将显示为空字符串(即返回空)。而如果该字段包含 NULL 值,则该字段的内容将显示为 NULL 值。
二、MySQL概述
1、什么是MySQL
关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。常见关系型数据库有Oracle,SQLServer,DB2,Mysql等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。
许多网站、应用程序和商业产品都使用MySQL 作为主要的关系数据存储。MySQL 有 20 多年的社区开发和支持历史,是一种安全可靠、稳定的基于 SQL 的数据库管理系统。MySQL 数据库适用于任务关键型应用程序、动态网站以及用于软件、硬件和设备的嵌入式数据库等用途 。
MySQL Server 的名列前茅版由瑞典公司 MySQL AB 在 1995 年发布,该公司的创始人为 David Axmark、Allan Larsson 和 Michael Widenius。MySQL 的名字源自 Widenius 的女儿 My。MySQL 项目采用 GNU 通用公共许可 (GPL)在 2000 年作为开源发布。到 2001 年,MySQL 有超过 200 万次的有效安装;到 2004 年,该软件每天的下载超过 3 万次。MySQL 于 2008 年被 Sun Microsystems 以10亿美元收购。当 Oracle 于 2009 年收购 Sun Microsystems 时,它也获得了 MySQL 的所有权。如今,MySQL 是使用较广泛的开源关系数据库系统。
2、选择MySQL的五大理由
每个数据库管理系统都有其忠实的粉丝社区,但是MySQL无疑是名列前茅。MySQL确实为用户提供了客观优势。
简单明了:MySQL属于用户友好型。SQL及其语句的基本知识将允许与MySQL Server进行高效交互。您可以查询和更新数据以及管理数据库。开源的:根据GPL(GNU公共许可证),MySQL是免费使用和修改的。该许可证确定免费用户的权利。商业许可证也可用–它允许在商业应用程序中使用MySQL软件,并且您不受GPL法规的约束。可扩展且快速:MySQL体系结构允许该系统支持较早大的应用程序。它提供适当的速度,并具有非常低的内存泄漏问题。而且,它可以管理表中几乎任何数量的数据(50+百万行)。初始文件大小限制为4 GB,但可以增加到最大8TB数据。兼容多个平台 :MySQL Server与Microsoft Windows,Apple Macintosh OS X,Ubuntu和多个Unix选项兼容,例如AIX,BSDI,FreeBSD,HP-UX,OpenBSD,Net BSD,SGI Iris和Sun Solaris。高度安全:世界各地的专家都将MySQL视为最安全,最可靠的DBMS。其数据安全性选项可确保对任何入侵者进行适当的数据保护。3、MySQL最显着的功能
MySQL非常知名和有用的功能包括以下几点:
客户端/服务器架构:客户端/服务器系统涉及主数据库MySQL Server和多个客户端–应用程序。MySQL Server创建数据库并定义每个表的关系。客端与服务器通信,以使用特定的SQL语句请求和处理数据。这些任务可能包括查询数据,添加和保存更改等。服务器应用程序在客户端提供请求的信息。服务器和客户端可以都在同一台计算机或不同的计算机上:在后一种情况下,它们通过网络(本地或Internet)进行通信。客户端/服务器体系结构对于所有大型数据库系统都是典型的。ODBC支持:借助ODBC接口Connector / ODBC,您可以使用Delphi,Visual Basic和Windows下运行的其他标准语言之类的编程语言来寻址MySQL。SQL查询和命令:为了有效地使用MySQL关系数据库,可以使用视图,触发器和存储过程。所有这些项目都是主要的SQL元素,有助于显着管理大型数据库。从5.0版开始,MySQL就一直支持这些元素。复写:可以将MySQL数据库的内容复制到其他计算机上。这样,您可以保护数据免受系统故障的影响–可以在需要时用其副本替换数据库。此外,此选项还可以提高数据库查询速度。事务:事务代表将多个操作作为一个块执行。一个关键功能是要么在事务中正确执行所有操作,要么不能执行任何操作。因此,事务使程序员可以中断/撤销已执行的命令-这只是一个例子。通常,此功能可简化所有过程。MySQL也支持事务,尽管不支持MyISAM表格式。但是,您可以在MySQL中应用其他格式并确保此有用的功能。外键约束:在MySQL数据库中,InnoDB表完全支持外键约束。您可以确保表中的所有交叉引用都是有效和准确的。数据字典:MySQL包含无数的对象和有关这些对象的大量信息。这就是为什么它引入了专用数据字典来存储有关那些MySQL数据库对象的所有信息的原因。与以前的基于文件的元数据存储相比,它是一种崩溃安全,集中式且更优化的格式。此外,访问和工作也更加方便。4、应用环境
与其他的大型数据库例如 Oracle、DB2、SQL Server等相比,MySQL [1] 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。
Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
延伸阅读1:字段为NULL时使用的运算符
当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。为了处理这种情况,MySQL提供了三大运算符:
IS NULL: 当列的值是 NULL,此运算符返回 true。IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。<=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。