数据库一些基本概念
发现自己对数据库的基本概念还是很缺乏,虽然都是比较基本的。很多数据库功能必须用T-SQL语句实现。
(1)存储过程(Stored Procedure)
存储过程是为完成特定的功能而汇集在一起的一组SQL 程序语句,经编译后存储在数据库中的SQL 程序。举个例子:
CREATE PROCEDURE sum_of_array
@list varchar(100),
@summary int OUTPUT
AS
Declare @ix int,@pos int,@str varchar(100),@sum int
SET @pos=1
SET @ix=1
SET @sum=0
while (@ix>0)
Begin
Set @ix=charindex(',',@list,@pos)
IF @ix>0
SET @str=substring(@list,@pos,@ix-@pos)
else
SET @str=substring(@list,@pos,len(@list))
SET @str=ltrim(rtrim(@str))
SET @sum=@sum+cast(@str As int)
SET @pos=@ix+1
End
--Select @sum
Return @sum
GO
上面例子用于计算一个字符串各个数字的之和,使用时:
Declare @sum int
EXEC sum_of_array @list='1,2,3,4,5',@summary=@sum
输出15
(2)触发器(Trigger)
触发器是一个用户定义的SQL 事务命令的集合。当对一个表进行插入、更改、删除时,这组命令就会自动执行。
示例:(建立和删除一个触发器)
CREATE TRIGGER test_Delete ON dbo.ProductListSpecial FOR DELETE
AS
Insert into dbo.ProductListSpecial(ModuleId, ProductId) Values(100,100)
Go
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'test_Delete' AND type = 'TR')
DROP TRIGGER test_Delete
GO
这个触发器用于在删除事件发生时插入一条数据。
(3)用户自定义函数(UDF)
UDF是兼具视图和存储过程的优点,一组完成特定的功能而汇集在一起的一组SQL 程序语句。
示例:
CREATE FUNCTION dbo.test
(@mid int,@nid int)
RETURNS int AS
BEGIN
Return @nid-@mid
END
使用时:
Select dbo.test(ModuleId,ProductId) as Result,ModuleId,ProductId from dbo.ProductListSpecial
可以看到UDF用在表达式中,和select语句中,这是SP所不具有的,类似于View的功能。此外UDF具有一下限制,那就是可移植性差。
(4)视图(View)
视图看上去同表似乎一模一样,具有一组命名的字段和数据项,但它其实是一个虚拟的表,在数据库中并不实际存。在视图是由查询数据库表产生的,它限制了用户能看到和修改的数据。由此可见,视图可以用来控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。本质上它由一组Select SQL语句组成的命令。
示例:
CREATE VIEW dbo.Vtest
AS
SELECT dbo.ProductListSpecial.*
FROM dbo.ProductListSpecial
使用时:
select * from Vtest
(5)索引(Index)
索引是根据指定的数据库表列建立起来的顺序。它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的列中的数据不重复。
(6)规则(Rule)
规则是对数据库表中数据信息的限制。它限定的是表的列。

浙公网安备 33010602011771号