最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

SQL语法从基础开始(提高篇)五 data nulls isnull() 用法

来源:动视网 责编:小OO 时间:2025-10-03 20:08:13
文档

SQL语法从基础开始(提高篇)五 data nulls isnull() 用法

SQLDate函数\nSQL日期当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。MySQLDate函数下面的表格列出了MySQL中最重要的内建日期函数:函数NOW()CURDATE()CURTIME()DATE()EXTRACT()DATE_ADD()DATE_SUB()DATEDIFF()DATE_F
推荐度:
导读SQLDate函数\nSQL日期当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。MySQLDate函数下面的表格列出了MySQL中最重要的内建日期函数:函数NOW()CURDATE()CURTIME()DATE()EXTRACT()DATE_ADD()DATE_SUB()DATEDIFF()DATE_F
SQL Date 函数\nSQL 日期 当我们处理日期时, 最难的任务恐怕是确保所插入的日期的格式, 与数据库中日期列的格式 相匹配。 只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点 复杂了。 在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。 MySQL Date 函数 下面的表格列出了 MySQL 中最重要的内建日期函数: 函数 NOW() CURDATE() CURTIME() DATE() EXTRACT() DATE_ADD() DATE_SUB() DATEDIFF() DATE_FORMAT() 描述 返回当前的日期和时间 返回当前的日期 返回当前的时间 提取日期或日期/时间表达式的日期部分 返回日期/时间按的单独部分 给日期添加指定的时间间隔 从日期减去指定的时间间隔 返回两个日期之间的天数 用不同的格式显示日期/时间\n\nSQL Server Date 函数 下面的表格列出了 SQL Server 中最重要的内建日期函数: 函数 GETDATE() DATEPART() DATEADD() DATEDIFF() CONVERT() 描述 返回当前日期和时间 返回日期/时间的单独部分 在日期中添加或减去指定的时间间隔 返回两个日期之间的时间 用不同的格式显示日期/时间\n\n\r\n

SQL Date 数据类型 MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:\n   \n\nDATE - 格式 YYYY-MM-DD DATETIME - 格式: YYYY-MM-DD HH:MM:SS TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS YEAR - 格式 YYYY 或 YY\n\nSQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:\n   \n\nDATE - 格式 YYYY-MM-DD DATETIME - 格式: YYYY-MM-DD HH:MM:SS SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS\n\nTIMESTAMP - 格式: 唯一的数字 SQL 日期处理 如果不涉及时间部分,那么我们可以轻松地比较两个日期! 假设我们有下面这个 "Orders" 表: OrderId 1 2 3 4 ProductName computer printer electrograph telephone OrderDate 2008-12-26 2008-12-26 2008-11-12 2008-10-19\n\n现在,我们希望从上表中选取 OrderDate 为 "2008-12-26" 的记录。 我们使用如下 SELECT 语句: SELECT * FROM Orders WHERE OrderDate='2008-12-26'\n\n结果集: OrderId 1 3 ProductName computer electrograph OrderDate 2008-12-26 2008-12-26\n\n现在假设 "Orders" 类似这样(请注意 "OrderDate" 列中的时间部分) : OrderId ProductName OrderDate\n\n\r\n

1\n\ncomputer\n\n2008-12-26 16:23:55 2008-12-26 10:45:26 2008-11-12 14:12:08 2008-10-19 12:56:10\n\n2\n\nprinter\n\n3\n\nelectrograph\n\n4\n\ntelephone\n\n如果我们使用上面的 SELECT 语句: SELECT * FROM Orders WHERE OrderDate='2008-12-26'\n\n那么我们得不到结果。这是由于该查询不含有时间部分的日期。 提示:如果您希望使查询简单且更易维护,那么请不要在日期中使用时间部分!\n\nSQL NULL 值\n\n\r\n

NULL 值是遗漏的未知数据。 默认地,表的列可以存放 NULL 值。 本章讲解 IS NULL 和 IS NOT NULL 操作符。 SQL NULL 值 如果表中的某个列是可选的, 那么我们可以在不向该列添加值的情况下插入新纪录或更新已 有的记录。这意味着该字段将以 NULL 值保存。 NULL 值的处理方式与其他值不同。 NULL 用作未知的或不适用的值的占位符。 注释:无法比较 NULL 和 0;它们是不等价的。 SQL 的 NULL 值处理 请看下面的 "Persons" 表: Id 1 2 3 LastName Adams Bush Carter FirstName John George Thomas Fifth Avenue Address City London New York Beijing\n\n假如 "Persons" 表中的 "Address" 列是可选的。这意味着如果在 "Address" 列插入一 条不带值的记录,"Address" 列会使用 NULL 值保存。 那么我们如何测试 NULL 值呢? 无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。 我们必须使用 IS NULL 和 IS NOT NULL 操作符。 SQL IS NULL 我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢? 我们必须使用 IS NULL 操作符: SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL\n\n\r\n

结果集: LastName Adams Carter FirstName John Thomas Address\n\n提示:请始终使用 IS NULL 来查找 NULL 值。 SQL IS NOT NULL 我们如何选取在 "Address" 列中不带有 NULL 值的记录呢? 我们必须使用 IS NOT NULL 操作符: SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL\n\n结果集: LastName Bush FirstName George Address Fifth Avenue\n\n在下一节中,我们了解 ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数。\n\nSQL NULL 函数\n\n\r\n

SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id 1 2 3 ProductName computer printer telephone UnitPrice 699 365 280 UnitsInStock 25 36 159 57 UnitsOnOrder 15\n\n假如 "UnitsOnOrder" 是可选的,而且可以包含 NULL 值。 我们使用如下 SELECT 语句: SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Products\n\n在上面的例子中,如果有 "UnitsOnOrder" 值是 NULL,那么结果是 NULL。 微软的 ISNULL() 函数用于规定如何处理 NULL 值。 NVL(), IFNULL() 和 COALESCE() 函数也可以达到相同的结果。 在这里,我们希望 NULL 值为 0。 下面,如果 "UnitsOnOrder" 是 NULL,则不利于计算,因此如果值是 NULL 则 ISNULL() 返回 0。 SQL Server / MS Access SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0)) FROM Products\n\nOracle Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:\n\n\r\n

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0)) FROM Products\n\nMySQL MySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有 点不同。 在 MySQL 中,我们可以使用 IFNULL() 函数,就像这样: SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0)) FROM Products\n\n或者我们可以使用 COALESCE() 函数,就像这样: SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0)) FROM Products\n\n\r\n

文档

SQL语法从基础开始(提高篇)五 data nulls isnull() 用法

SQLDate函数\nSQL日期当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。MySQLDate函数下面的表格列出了MySQL中最重要的内建日期函数:函数NOW()CURDATE()CURTIME()DATE()EXTRACT()DATE_ADD()DATE_SUB()DATEDIFF()DATE_F
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top