由于最近使用到SQL Server 2012,于是把SQL Server 知识重新梳理一遍。
本篇文章只要讲解SQL Server 高级用法之CREATE INDEX, IDENTITY以及Date 函数。
CREATE INDEX
CREATE INDEX 语句用语表中的创建索引。
开发者可以在表中穿件索引,可以更加高速有效的查询数据。需要注意的是用户是无法看到的,并且更新有一个索引的表的时间要比正常更新时间要久,因为表索引也是需要更新的。
语法:
CREATE INDEX index_name
ON table_name (column_name)
用法:
我们现在有一张表:
我们可以在name这一列创建索引叫NameIndex,可以使用下面的语句:
CREATE INDEX NameIndex ON Student (name)
我们还可以按照name列的升序和降序来进行根据name的排名。
CREATE INDEX NameIndex ON Student (name DESC)
IDENTITY (自增长)
每次插入新纪录的时候,标记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函数:
例如我们想查询Student表中,在1991年4月13日出生的同学,那么我们可以使用下面SQL语句:
SELECT * FROM Student WHERE birth='1991-04-13'
如果表中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 参数可以是下列的值。单独返回时间相关的部分。
DATEADD(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
DATEDIFF(datepart,startdate,enddate)
函数返回两个日期之间的时间。startdate 和 enddate 参数是合法的日期表达式。datepart 参数可以是上图所述的值。
CONVERT()
用不同的格式显示日期/时间。
以上为本片文章内容。如有错误,请在评论区指出。