SQL view(視圖)數據庫
視圖是可視化的表。函數
在 SQL 中,視圖是基於 SQL 語句的結果集的可視化的表。spa
視圖包含行和列,就像一個真實的表。設計
視圖中的字段就是來自一個或多個數據庫中的真實的表中的字段。orm
能夠向視圖添加 SQL 函數、WHERE 以及 JOIN 語句,也能夠提交數據,就像這些來自於某個單一的表。get
數據庫的設計和結構不會受到視圖中的函數、where 或 join 語句的影響。產品
SQL create view 語句it
create view view_name ASio
SELECT column_name(s)table
FROM table_name
WHERE condition
視圖老是顯示最近的數據。每當用戶查詢視圖時,數據庫引擎經過使用 SQL 語句來重建數據。
SQL CREATE VIEW 實例
create view [Current Product List] AS
select ProductID,ProductName
from Products
where Discontinued=No
查詢上面這個視圖:
select * FROM [Current Product List]
Northwind 樣本數據庫的另外一個視圖會選取 Products 表中全部單位價格高於平均單位價格的產品:
create view [Products Above Average Price] AS
select ProductName,UnitPrice
FROM Products
where UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
實例2
create view [Category Sales For 1997] AS
select distinct CategoryName,Sum(ProductSales) AS CategorySales
from [Product Sales for 1997]
group by CategoryName
向查詢添加條件.僅僅查看 "Beverages" 類的所有銷量:
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'
SQL 更新視圖
SQL create or replace view Syntax
create or replace view view_name AS
select column_name(s)
from table_name
where condition
向 "Current Product List" 視圖添加 "Category" 列。
create view [Current Product List] AS
select ProductID,ProductName,Category
from Products
where Discontinued=No
SQL 撤銷視圖
DROP VIEW 命令來刪除視圖。
SQL drop view Syntax
drop view view_name
SQL Date 函數
內建日期處理函數
MySQL Date 函數
函數 | 描述 |
now() | 返回當前的日期和時間 |
curdate() | 返回當前日期 |
curtime() | 返回當前時間 |
date() | 提取日期或日期/時間表達式的日期部分 |
extract() | 返回日期/時間按的單獨部分 |
date_add() | 給日期添加指定的時間間隔 |
date_sub() | 從日期減去指定的時間間隔 |
datediff() | 返回兩個日期之間的天數 |
date_format() | 用不一樣的格式顯示日期/時間 |
函數 | 描述 |
getdate() | 返回當前日期和時間 |
datepart() | 返回日期/時間的單獨部分 |
dateadd() | 在日期中添加或減去指定的時間間隔 |
datediff() | 返回兩個日期之間的時間 |
convert() | 用不一樣的格式顯示日期/時間 |
SQL Date 數據類型
MySQL 使用下列數據類型在數據庫中存儲日期或日期/時間值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
YEAR - 格式 YYYY 或 YY
SQL Server 使用下列數據類型在數據庫中存儲日期或日期/時間值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: 惟一的數字
SQL 日期處理
不涉及時間部分,能夠輕鬆地比較兩個日期!
OrderId ProductName OrderDate
1 computer 2008-12-26
2 printer 2008-12-26
3 electrograph 2008-11-12
4 telephone 2008-10-19
從上表中選取 OrderDate 爲 "2008-12-26" 的記錄。
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
OrderId ProductName OrderDate
1 computer 2008-12-26 16:23:55
2 printer 2008-12-26 10:45:26
3 electrograph 2008-11-12 14:12:08
4 telephone 2008-10-19 12:56:10
若是咱們使用上面的 SELECT 語句:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
得不到結果。這是因爲該查詢不含有時間部分的日期。
提示:若是您但願使查詢簡單且更易維護,那麼請不要在日期中使用時間部分!