SQL Date(日期) 函数
MySQL Date 函数
下表为 MySQL 中最重要的内建日期函数
图片来自W3CSQL Server Date 函数
下表列出了 SQL Server 中最重要的内建日期函数
图片来自W3CSQL Date 数据类型
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
YEAR - 格式 YYYY 或 YY
SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: 唯一的数字
* smalldatetime 和 datetime 的区别
smalldatetime不能到秒.
不过它占的空间小(4位),datetime(8位);而且两者的时间范围不一样,datetime占8字节,精度3.33毫秒,时间从1753.1.1到9999.12.31,smalldatetime占4字节,精度1分钟,时间从1900.1.1到2079.6.6
SQL 日期处理
图片来自W3C从上表 Orders 中,筛选时间在 2008-12-26的数据
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
提示:如果希望使查询简单且更易维护,那么就不要在日期中使用时间部分
SQL NULL 值
NULL 值是遗漏的未知数据。默认地,表的列可以存放 NULL 值。
如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
* NULL 和 0 的区别
NULL表示指针为空的宏,0是没有任何特殊含义的值。也就是说,理论上来讲NULL可以是任意数值,虽然目前所有编译器都将其设为0。
*空指针值,一般的文档中倾向于用 NULL 表示,而没有直接说成 0。但是我们应该清楚:对于指针类型来说,返回 NULL 和 返回 0 是完全等价的,因为 NULL 和 0 都表示 “null pointer”(空指针)。因此,空指针是什么,就是一个被赋值为0的指针,在没有被具体初始化之前,其值为0。
SQL IS NULL
eg.在下表中,列出"Address" 列中带有 NULL 值的记录
图片来自W3CSELECT Lastname,Firtsname,Address FROM Persons
WHERE Address IS NULL
SQL IS NOT NULL
列出"Address" 列中没有 NULL 值的记录
SELECT Lastname,Firtsname,Address FROM Persons
WHERE Address IS NOT NULL
SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
表“Products”,图片来自W3C假如 "UnitsOnOrder" 是可选的,而且可以包含 NULL 值。
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products
注释: 单价 * 乘以 (库存 + 订购量)
在上面的例子中,如果有 "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
Oracle
Oracle 没有 ISNULL() 函数。可以使用 NVL() 函数达到相同的结果
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products
注释:NVL(字段名,'判断字段如果为空的话这里填你想要替换的值')
MySQL
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
或者使用 COALESCE() 函数:
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products
注释:COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。
SQL 数据类型
Microsoft Access 数据类型
图片来自W3CMySQL 数据类型
在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。
图片来自W3C 图片来自W3C 图片来自W3CUTC :协调世界时
SQL Server 数据类型(省略)
图片来自W3CSQL 服务器 - RDBMS
DBMS - 数据库管理系统(Database Management System)。
数据库管理系统是一种可以访问数据库中数据的计算机程序。DBMS 使我们有能力在数据库中提取、修改或者存贮信息。不同的 DBMS 提供不同的函数供查询、提交以及修改数据。
RDBMS - 关系数据库管理系统(Relational Database Management System)
关系数据库管理系统 (RDBMS) 也是一种数据库管理系统,其数据库是根据数据间的关系来组织和访问数据的。20 世纪 70 年代初,IBM 公司发明了 RDBMS。RDBMS 是 SQL 的基础,也是所有现代数据库系统诸如 Oracle、SQL Server、IBM DB2、Sybase、MySQL 以及 Microsoft Access 的基础。
好像很重要的一部分要来啦!١١(❛ᴗ❛)
SQL 函数
内建 SQL 函数的语法:SELECT function(列) FROM 表
在 SQL 中,基本的函数类型和种类有若干种。函数的基本类型是:Aggregate 函数 (合计函数) 和 Scalar 函数(单一函数)
合计函数(Aggregate functions)
Aggregate 函数的操作面向一系列的值,并返回一个单一的值。
注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使用 GROUP BY 语句
图片来自W3C 图片来自W3CScalar 函数
Scalar 函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。
图片来自W3C
网友评论