SQL Server 2012 高級用法(五)

由於最近使用到SQL Server 2012,於是把SQL Server 知識重新梳理一遍。

本篇文章只要講解SQL Server 高級用法之CREATE INDEX, IDENTITY以及Date 函數。

CREATE INDEX

CREATE INDEX 語句用語表中的創建索引。

開發者可以在表中穿件索引,可以更加高速有效的查詢數據。需要注意的是用戶是無法看到的,並且更新有一個索引的表的時間要比正常更新時間要久,因為表索引也是需要更新的。

語法:

<code>CREATE INDEX index_name
ON table_name (column_name)/<code>

用法:

我們現在有一張表:


SQL Server 2012 高級用法(五)

原始表-Student

我們可以在name這一列創建索引叫NameIndex,可以使用下面的語句:

CREATE INDEX NameIndex ON Student (name)

我們還可以按照name列的升序和降序來進行根據name的排名。

CREATE INDEX NameIndex ON Student (name DESC)

IDENTITY (自增長)

每次插入新紀錄的時候,標記IDENTITY列的字段會自動增加。


SQL Server 2012 高級用法(五)

創建Student表-IDENTITY

例如Student表創建的時候,id行使用了IDENTITY 關鍵字。默認的,IDENTITY是從1開始每次遞增1,如果想要從900開始每次遞增1可以使用IDENTITY(900,1) 表示該列從900開始每次遞增1。

Date 函數

在我們處理日期和時間的時候,最難處理的就是時間和日期的插入。有的值設計日期,有點列設計時間有些都包括這就讓Date函數發揮了重要作用。

SQL Server 使用下列數據類型在數據庫中存儲日期或日期/時間值:

  • DATE - 格式 YYYY-MM-DD
  • DATETIME - 格式: YYYY-MM-DD HH:MM:SS
  • SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式: 唯一的數字

一下表格羅列出SQL SERVER中重要的date函數:


SQL Server 2012 高級用法(五)

SQL SERVER DATE 函數

例如我們想查詢Student表中,在1991年4月13日出生的同學,那麼我們可以使用下面SQL語句:

SELECT * FROM Student WHERE birth='1991-04-13'


SQL Server 2012 高級用法(五)

如果表中birth精確到了時分秒,1991-04-13 12:15:55 類似這樣的數據,那麼我們使用

SELECT * FROM Student WHERE birth='1991-04-13' 將查詢不到結果,因為birth是帶有時間的。在SQL SERVER中日期和時間是區分的。所以要想簡單方便查詢維護,儘量避免在日期裡使用時間。

GETDATE() :常用配合DEFAULT 在表中列中記錄數據插入的時間;

DATEPART(datepart,date):date 參數是合法的日期表達式。datepart 參數可以是下列的值。單獨返回時間相關的部分。


SQL Server 2012 高級用法(五)


DATEADD(datepart,number,date)

date 參數是合法的日期表達式。number 是您希望添加的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。

DATEDIFF(datepart,startdate,enddate)

函數返回兩個日期之間的時間。startdate 和 enddate 參數是合法的日期表達式。datepart 參數可以是上圖所述的值。

CONVERT()

用不同的格式顯示日期/時間。


以上為本片文章內容。如有錯誤,請在評論區指出。


分享到:


相關文章: