ch04 sql 创建方法
--8-1
USE Northwind
SELECT * from ::fn_dblog('', '')
GO
--8-2
USE Northwind
SELECT * from ::fn_dblog('', '') WHERE [Begin Time] >= '02/01/07'
GO
--9-1
SELECT *
from master.dbo.sysprocesses
--9-2
SELECT *
from sys.dm_exec_requests
--9-3
DECLARE @Handle varbinary(64);
SELECT @handle = sql_handle
from master.dbo.sysprocesses
WHERE spid = @@SPID
SELECT * from ::fn_get_sql(@Handle);
GO
--10-1 方法
USE Northwind
GO
CREATE FUNCTION dbo.CountOFProductsByCategory(@pCategoryID INT)
RETURNS INT
AS
BEGIN
RETURN (
SELECT COUNT(*)
from dbo.Products
WHERE CategoryID = @pCategoryID
)
END
GO
--10-2
SELECT COUNT(*) from Products
WHERE CategoryID ='1'
GO
PRINT '属于产品类型的产品有'+CONVERT(VARCHAR(3),dbo.CountOFProductsByCategory(1))+'种。'
GO
--10-3
USE Northwind
GO
PRINT '属于产品类型的产品有' PRINT '属于产品类型的产品有'+CONVERT(VARCHAR(3),dbo.CountOFProductsByCategory(DEFAULT))+'种。'
GO
--11-1 方法返回 TABLE
USE Northwind
GO
CREATE FUNCTION dbo.ProductsByCategory(@pCategoryID INT)
RETURNS TABLE
AS
RETURN
SELECT ProductID,CategoryID,ProductName,UnitPrice
from dbo.Products
WHERE CategoryID = @pCategoryID
GO
--11-2
USE Northwind
GO
Select * from DBO.ProductsByCategory('1')
--12-1 方法返回 TABLE2
USE Northwind
GO
CREATE FUNCTION dbo.CategoryInfo()
RETURNS @CategoryInfo TABLE
(
CategoryID INT,
NumberOfProducts INT
)
AS
BEGIN
DECLARE @lminCID INT
DECLARE @lmaxCID INT
DECLARE @CountsOfRec INT
SELECT @lminCID =MIN(Categoryid) from Products
SELECT @lmaxCID =MAX(Categoryid) from Products
SELECT @CountsOfRec = Count(*) from Products
WHERE CategoryID = @lminCID
WHILE @lminCID <= @lmaxCID
BEGIN
INSERT INTO @CategoryInfo
VALUES(@lminCID,@CountsOfRec)
SET @lminCID =@lminCID+1
SELECT @CountsOfRec = Count(*) from Products
WHERE CategoryID = @lminCID
END
RETURN
END
--12-2
SELECT * from dbo.CategoryInfo()
--12-3
相关文档:
SQL语句导入导出
/******* 导出到excel
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'
/*********** 导入Excel
SELECT *
from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended propert ......
优化器在形成执行计划时需要做的一个重要选择是如何从数据库查询出需要的数据。对于SQL语句存取的任何表中的任何行,可能存在许多存取路径(存取方法),通过它们可以定位和查询出需要的数据。优化器选择其中自认为是最优化的路径。
在物理层,oracle读取数据,一次读取的最小单位为数据库块(由多个连续的操作系统块组成 ......
use Dbname
go
select
[表名]=c.Name,
[表说明]=isnull(f.[value],''),
[列名]=a.Name,
[列序號]=a.Column_id,
&nbs ......
@echo off
rem Input Parameters:
rem 1 -Server Name
rem 2 -Database Name
if "%1"=="" goto ERROR
if "%2"=="" goto ERROR
@rem Make variables local
@Setlocal
@rem set variables from input parameters
set Server=% 1
set DBName=% 2
@rem------------------------------------------------------------ ......
1、SQL是一种说明性语言,不是过程化语言。类似“检索->检查->插入->更新”的过程化步骤的顺序是没有意义的。应该以行集的方式思考,以描述一个逻辑的语言方式思考。
2、在设计数据库表字段时,一个行描述应该包含一个事实,而且是全部事实。例如考勤卡的设计,
不要设计为:[ userId, puchTime, even ......