CREATE INDEX 语句:
CREATE INDEX index_name
ON table_name (column_name)
在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据
CREATE UNIQUE INDEX 语句:
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
唯一的索引意味着两个行不能拥有相同的索引值
示例:
CREATE INDEX PersonIndex
ON Person (LastName DESC)
CREATE INDEX PersonIndex
ON Person (LastName, FirstName)
DROP 语句:
DROP INDEX table_name.index_name
DROP TABLE 表名称
(表的结构、属性以及索引也会被删除)
DROP DATABASE 数据库名称
TRUNCATE TABLE 语句:
TRUNCATE TABLE 表名称
仅仅删除表格中的数据
ALTER TABLE 语句:
添加列:
ALTER TABLE table_name
ADD column_name datatype
删除列:
ALTER TABLE table_name
DROP COLUMN column_name
修改列:
ALTER TABLE table_name
ALTER COLUMN column_name datatype
AUTO INCREMENT 字段:
CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
默认地,IDENTITY 的开始值是 1,每条新记录递增 1。
要规定 "P_Id" 列以 20 起始且递增 10,请把 identity 改为 IDENTITY(20,10)
CREAT VIEW 语句:
视图是基于 SQL 语句的结果集的可视化的表,视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
更新视图:
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
撤销视图:
DROP VIEW view_name
对于视图的插入、修改、删除等的操作其实对于原始数据表的操作
视图的作用:
1、视图隐藏了底层的表结构,简化了数据访问操作,客户端不再需要知道底层表的结构及其之 间的关系。
2、视图提供了一个统一访问数据的接口。(即可以允许用户通过视图访问数据的安全机制,而不授予用户直接访问底层表的权限)
3、从而加强了安全性,使用户只能看到视图所显示的数据。
4、视图还可以被嵌套,一个视图中可以嵌套另一个视图。
DATA 函数:
函数 |
描述 |
返回当前日期和时间 |
|
返回日期/时间的单独部分 |
|
在日期中添加或减去指定的时间间隔 |
|
返回两个日期之间的时间 |
|
用不同的格式显示日期/时间 |
SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:
- DATE - 格式 YYYY-MM-DD
- DATETIME - 格式: YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - 格式: 唯一的数字
datepart |
缩写 |
年 |
yy, yyyy |
季度 |
qq, q |
月 |
mm, m |
年中的日 |
dy, y |
日 |
dd, d |
周 |
wk, ww |
星期 |
dw, w |
小时 |
hh |
分钟 |
mi, n |
秒 |
ss, s |
毫秒 |
ms |
微妙 |
mcs |
纳秒 |
ns |
DATEPART() 函数:
DATEPART(datepart,date)
示例:
SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay
FROM Orders
WHERE OrderId=1
DATEADD() 函数:
DATEADD(datepart,number,date)
示例:
SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate
FROM Orders
DATADIFF() 函数:
DATEDIFF(datepart,startdate,enddate)
示例:
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate
CONVERT() 函数:
CONVERT(data_type(length),data_to_be_converted,style)
示例:
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
Style ID |
Style 格式 |
100 或者 0 |
mon dd yyyy hh:miAM (或者 PM) |
101 |
mm/dd/yy |
102 |
yy.mm.dd |
103 |
dd/mm/yy |
104 |
dd.mm.yy |
105 |
dd-mm-yy |
106 |
dd mon yy |
107 |
Mon dd, yy |
108 |
hh:mm:ss |
109 或者 9 |
mon dd yyyy hh:mi:ss:mmmAM(或者 PM) |
110 |
mm-dd-yy |
111 |
yy/mm/dd |
112 |
yymmdd |
113 或者 13 |
dd mon yyyy hh:mm:ss:mmm(24h) |
114 |
hh:mi:ss:mmm(24h) |
120 或者 20 |
yyyy-mm-dd hh:mi:ss(24h) |
121 或者 21 |
yyyy-mm-dd hh:mi:ss.mmm(24h) |
126 |
yyyy-mm-ddThh:mm:ss.mmm(没有空格) |
130 |
dd mon yyyy hh:mi:ss:mmmAM |
131 |
dd/mm/yy hh:mi:ss:mmmAM |
NULL 值:
NULL 用作未知的或不适用的值的占位符
无法比较 NULL 和 0
使用 IS NULL 和 IS NOT NULL 操作符
ISNULL函数:
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products