当前位置:首页 > sql高级编程3
SQL 更新视图
您可以使用下面的语法来更新视图:
SQL CREATE OR REPLACE VIEW Syntax CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
现在,我们希望向 \视图添加 \列。我们将通过下列 SQL 更新视图: CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName,Category FROM Products
WHERE Discontinued=No
SQL 撤销视图
您可以通过 DROP VIEW 命令来删除视图。 DROP VIEW view_name
6、SQL Date 函数
MySQL Date 函数:下面的表格列出了 MySQL 中最重要的内建日期函数:
函数 描述 NOW()返回当前的日期和时间 CURDATE()返回当前的日期 CURTIME()返回当前的时间 DATE()提取日期或日期/时间表达式的日期部分 EXTRACT()返回日期/时间按的单独部分 DATE_ADD()给日期添加指定的时间间隔 DATE_SUB()从日期减去指定的时间间隔 DATEDIFF()返回两个日期之间的天数 DATE_FORMAT()用不同的格式显示日期/时间
SQL Date 数据类型
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
? ? ? ?
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS YEAR - 格式 YYYY 或 YY
6、SQL NULL 值:NULL 值是遗漏的未知数据。 默认地,表的列可以存放 NULL 值。
SQL NULL 值:
如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。 NULL 值的处理方式与其他值不同。 NULL 用作未知的或不适用的值的占位符。
无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。 我们必须使用 IS NULL 和 IS NOT NULL 操作符。 注释:无法比较 NULL 和 0;它们是不等价的。
SQL IS NULL
我们如何仅仅选取在 \列中带有 NULL 值的记录呢? 我们必须使用 IS NULL 操作符:
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL 结果集:
LastName FirstName Address Adams Carter John Thomas 提示:请始终使用 IS NULL 来查找 NULL 值。
SQL IS NOT NULL
我们如何选取在 \列中不带有 NULL 值的记录呢? 我们必须使用 IS NOT NULL 操作符:
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL 结果集:
LastName FirstName Bush George Address Fifth Avenue SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
请看下面的 \表:
P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder 1 computer 699 25 15 2 3 printer telephone 365 280 36 159 57 假如 \是可选的,而且可以包含 NULL 值。 我们使用如下 SELECT 语句:
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Products
在上面的例子中,如果有 \值是 NULL,那么结果是 NULL。 微软的 ISNULL() 函数用于规定如何处理 NULL 值。
NVL(), IFNULL() 和 COALESCE() 函数也可以达到相同的结果。 在这里,我们希望 NULL 值为 0。
下面,如果 \是 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 MySQL
MySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。 在 MySQL 中,我们可以使用 IFNULL() 函数,就像这样:
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0)) FROM Products
或者我们可以使用 COALESCE() 函数,就像这样:
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0)) FROM Products
共分享92篇相关文档