-- yy = Year
-- mm = Month
-- dd = Day
-- hh = Hour
-- mi = Minute
-- weekday = (sunday through Saturday)
-- 取名字
SELECT datename(mm,OrderDateTime) FROM Orders
-- 取相应的部分
SELECT datepart(mm,OrderDateTime) FROM Orders
-- 取差距
SELECT datediff(mm,getdate(),OrderDateTime) FROM Orders
-- 增加
SELECT dateadd(dd,5,OrderDateTime) FROM Orders
-- 字符串
SELECT substring(ProductDescripption, 3, 5) FROM Products
SELECT right(ProductDescripption, 5) FROM Products
SELECT left(ProductDescripption, 5) FROM Products
SELECT lower(ProductDescripption) FROM Products
SELECT upper(ProductDescripption) FROM Products
SELECT reverse(ProductDescripption) FROM Products
-- 模糊查询
SELECT * FROM Customers WHERE FirstName LIKE '%es%'
SELECT * FROM Customers WHERE FirstName IN ('Fred','Chris')
-- 排序
SELECT * FROM Customers ORDER BY LastName ASC
SELECT * FROM Customers ORDER BY LastName DESC
SELECT * FROM Customers ORDER BY LastName, FirstName ASC
-- 分组(SELECT 中没有使用聚合函数的都应在GROUP BY组中)
SELECT CustomerID, SUM(Shipping) FROM Orders
GROUP BY CustomerID
-- 分组条件
SELECT CustomerID, SUM(Shipping) FROM Orders
GROUP BY CustomerID
HAVING COUNT(*) >=3
-- 连接
SELECT Products.ProductID,Products.ProductName, ProductTypes.ProductTypeName
FROM Products INNER JOIN ProductType ON Products.ProductTypeID = ProductType.ProductTypeID
--
SELECT p.ProductID,p.ProductName, pt.ProductTypeName
FROM Products p INNER JOIN ProductType pt ON p.ProductTypeID = pt.ProductTypeID
--
SELECT p.ProductID,p.ProductName, pt.ProductTypeName
FROM Products p INNER JOIN ProductType pt ON p.ProductTypeID = pt.ProductTypeID
INNER JOIN Orders o ON o.ProductID = p.ProductID
WHERE p.ProductPrice > 29.95
ORDER BY p.ProductID
第六章 深入SQL
一、子查询
SELECT * FROM Orders WHERE OrderID IN
(SELECT DISTINCT OrderID FROM OrderItems WHERE ProductID=3)
二、插入
INSERT Customers(FirstName,LastName,Address)
VALUES('Pok','Tabor','1201 Wheatfield Dr')
三、更新
UPDATE Customers SET City='NewYord',PostalCode='75086'
WHERE LastName='Tabor'
四、删除
DELETE Customers WHERE LastName='Tabor'
五、存储过程
CREATE PROCEDURE CustomerInsert
@FirstName varchar(50),
@LastName varchar(50),
@Address varchar(50),
@City varchar(50)
AS
BEGIN
INSERT Customers(FirstName,LastName,Address,City)
VALUES(@FirstName,@LastName,@Address,@City)
END
EXECUTE CustomerInsert('Fox','Talor','1032 dr','New York')
六、VIEW->Template Explorer
七、存储过程和用户自定义函数的区别
1.嵌套
function:无限制
sp:最多32层
2.改数据操作
function:不支持
sp:支持
3.结果返回
function:可以返回标量值,返回表变量(表甚至可以定义名字) 具有不确定性,必须返回
sp:并不一定需要返回,可返回记录集。
户定义函数不能用于执行一组修改全局数据库状态的操作
4.是否可以使用非确定函数
function:不允许在用户定义函数主体中内置非确定函数。
sp:可以使用非确定函数。
5.返回值引用
function:其返回值可以被直接引用
sp:其返回值不能被直接引用
6.调用
function:在其他语句中调用select
sp:EXEC
7.是否可以使用out参数
function:function没有out参数,但是可以有返回值.
sp:可以out参数
第七章 理解安全和网络连接
一、默认情况下,用户是”User Instance”的管理员,用户都与其他用户互不影响。
二、分布式”User Instance”
Windows验证和SQL SERVER混合验证
三、给Login赋予权限,赋予角色,常用角色包括
Sysadmin
Db_owner
Db_datareader
Db_datawriter
同时也可创建自定义角色,赋予默认值
四、通常可能需要设置的地方
网络设置
创建login
赋予角色
修改连接字符串
配置防火墙
五、网络设置
SQL Server Configuration Manager
六、Login和