这里只是介绍BEGIN...END、IF...ELSE、CASE、WHILE这四个比较常用的流程控制语句
BEGIN...END
IF 1=1
BEGIN
SELECT * FROM zhuisuo WHERE id=1
SELECT * FROM zhuisuo WHERE id=2
END
ELSE
SELECT * FROM zhuisuo WHERE id=2
IF...ELSE
IF 1=2
SELECT * FROM zhuisuo WHERE id=1
ELSE IF 1=2
SELECT * FROM zhuisuo WHERE id=2
ELSE
SELECT * FROM zhuisuo WHERE id=3
值得注意的是IF后面是逻辑表达式,然后是语句块
CASE
SELECT * FROM zhuisuo WHERE id=
CASE zhuisuo.id/1
WHEN 1 THEN 1
WHEN 2 THEN 2
WHEN 3 THEN 3
ELSE 4
END
值得注意的是,CASE不是语句,它不能单独执行,而是作为语句的一部分来使用
WHILE
DECLARE @a int
SET @a=1
WHILE @a<3
BEGIN
INSERT INTO zhuisuo2 VALUES(15+@a,'132')
SET @a=@a+1
END
用法没什么特别的地方,值得注意的是可以使用BREAK和CONTINUE控制循环的流程,这表示如果WHILE里面可以灵活使用IF语句,作多重循环判断
来一个有点复杂的示例,题目是在zhuisuo表中,从id=1开始,把name改为‘修改’,直到name为‘追索5’并把‘追索5’的name改为‘完成’
DECLARE @a int
SET @a=1
WHILE (SELECT COUNT(id) FROM zhuisuo)>@a
BEGIN
IF (SELECT name FROM zhuisuo WHERE id=@a)='追索5'
BEGIN
UPDATE zhuisuo SET name='完成' WHERE id = @a
BREAK
END
ELSE
UPDATE zhuisuo SET name='修改' WHERE id = @a
SET @a=@a+1
END
数据库的基本就复习到先这里,当然还有运算符的使用(不必记太多,记住几个常用的,其他可以使用时查),游标的使用等等。