SQL编程篇
这是以前的学习总结:
这一周将SQL编程篇仔细地看了一遍,有不少感触,因为SQL Server 中的T-SQL语言,在某种程度上就类似C等编程语言,其中有基本运算、控制语句及函数还有一个叫存储过程的东东。但目前对他们在具体问题中如何应用还很模糊。
现在只是将SQL语言的大部分语法知识了解了一下,真正地掌握还是要自己编程应用时,不断的思考和回头在学习,对其有整体的了解很重要,我寒假看查询部分时,感觉很多都不是很明白,就别说其他的什么存储过程之类的,但现在回头再看就完全不一样了。很多东西都不像第一次看时不懂的情景。
我现在正在做类似酷狗的播放器,其中采用C/S 模式,客户端采用类似酷狗播放器的形式,用Access存储歌曲列表的信息,保证下次打开时歌曲列表中仍有歌曲存在,列表中存储歌曲名及歌曲在本地的存储路径。这样点击一首歌时,直接从数据库中获得存储歌曲的路径,就可以快速播放歌曲。另一方面,还可以通过网络接口访问远程数据库的信息,这和酷狗访问网络一样,我将远程数据库中的歌曲路径及歌名采用SQL Server 存储,然后设计服务器端管理歌曲程序,可以添加新歌曲等。
目前我正在做客户端的程序,对Access的访问采用ADO技术,上次我将其分装在一个类中,这几次我基本上都直接将其文件夹进来,没有做任何修改,只是数据库名变了,现在我才体会到了程序复用性的好处。
下面是界面截图:
关于音乐播放器,请参见我的博客《一个VC写的音乐播放器》
下面将T-SQL编程学到的东西总结如下:
T-SQL 是微软对标准SQL的扩充,在T-SQL中实现了添加变量、运算符、函数、注释和控制流程等。
1.加入注释
加入单行注释用”--“;
加入多行注释用”/* 注释内容 */
2.T-SQL运算符
2.1算术运算符:+、-、*、/、%;
2.2赋值:=;
2.3位运算符:&、|、^;
2.4比较运算符
=、>、<、>=、<=、<>(不等于)、!=、!<、!>;
2.5逻辑运算符
ALL,AND,ANY,BETWEEN,EXISTS,IN,LIKE,NOT,OR,SOME;
2.6字符串连接运算符”+”;
3. T-SQL中的常量和变量
3.1常量
如:“1111”、5、$10(货币类型)
3.2变量
A.局部变量的定义
DECLARE @_name 类型
如:DECLARE @age int
B.给变量赋值
SET @age=20
或 SELECT @age=20
C.显示输出
PRINT @age
*****系统也提供了很多全局变量,如@SERVERNAME 返回SQL Server本地服务器名称。
4.流程控制语句
4.1 BEGIN…END
用来标记一个程序块的开始和结束。
4.2 IF…ELSE
和C语言一样
例子:DECLARE @x real,@y real,@z real
SELECT @x=9,@y=5
IF @y<>0
BEGIN
SELECT @z=@x/@y
PRINT ‘结果为:’+CAST(@z AS char)
END
ELSE
PRINT ‘除数不能为0’
4.3 WHILE
例子:
DECLARE @X int,@s int
SELECT @X=1,@s=0
WHILE @X<=100
BEGIN
SELECT @s=@s+@x
SELECT @X=@X+1
END
PRINT ‘结果为:’+CAST(@s AS CHAR)
4.4 BREAK
/
DECLARE @x int
SELECT @x=1
WHILE @x<=10
BEGIN
IF @x=5
BREAK
ELSE
PRINT CAST(@x AS CHAR)
SELECT @x=@x+1
END
4.5 CONTINUE
//
DECLARE @x int
SELECT @x=0
WHILE @x<=5
BEGIN
SELECT @x=@x+1
IF @X%2=0
CONTINUE
PRINT CAST(@x AS char)
END
4.6 WAITFOR
指定在一段时间后执行下一个T-SQL语句
如:WAITFOR DELAY ’01:00:00’
4.7 CASE
CASE 语句就是一个条件判断语句
例子:
SELECT
CASE
WHEN 学生成绩>=85 THEN ‘优秀’
WHEN学生成绩>=60 AND学生成绩<85 THEN ‘中等’
WHEN学生成绩<60 THEN ‘不及格’
END
FROM 学生信息表