索引
useSchoolDB go
ifexists(select*fromsysindexeswherename='IX_StudentName') dropindexStudent.IX_StudentName go
createnonclusteredindexIX_Student_StudentName onstudent(studentName)
withfillfactor=30--填充因子
Transact-SQL语句的使用
useSchoolTest go
--声明变量
declare@namenvarchar(20) declare@ageint --赋值 set只能单个赋值 set@name='zhangsan' set@age=12
--select可以多个赋值 select@name='lisi',@age=21 --查询结果赋值给变量
select@name=StudentName,@age=DATEDIFF(YY,BornDate,GETDATE()) fromStudent
whereStudentNo='S1101001' --输出 print@name print@age
--1、编写T-SQL查找’李文才’及他的相邻学号学生:
--1)找出“李文才”的学号 --2)李文才的学号加1或减1
declare@sNoint select@sNo=StudentNo fromStudent
whereStudentName='李文才'
--set不能这样赋值,编译器通不过 --set @sNo =StudentNo --from Student
--where StudentName='李文才'
--返回NULL值
set@sNo=(selectDATEDIFF(YY,BornDate,GETDATE()) fromStudent whereStudentNo='')
selectStudentNo,StudentName fromStudent
whereStudentNoin(@sNo,@sNo+1,@sNo-1)
print'姓名' print'年龄'
--全局变量
insertintoGrade(GradeName)values('大四') select@@IDENTITY,@@ROWCOUNT,@@LANGUAGE
print'语言编号:'+@@LANGUAGE print'版本号:'+@@VERSION
select@@LANGUAGEas'语言编号',@@VERSIONas'版本号'
--声明并使用T-SQL变量打印图形:用字符“★”拼成下面的三角图形
declare@star1char set@star1='*' print@star1 print@star1+@star1 print@star1+@star1+@star1 print@star1+@star1+@star1+@star1
--查询学号是20011的学生姓名和年龄,并输出比他大1岁和小1岁的学生信息 declare@borndatedatetime
select@borndate=(selectBornDatefromStudentwhereStudentNo='20011') print@borndate
selectStudentNo,StudentNamefromStudentwhereBornDatebetweenDATEADD(YY,-1,@borndate)andDATEADD(YY,1,@borndate)
declare@sageint,@snamenvarchar(10);
select@sname=StudentName,@sage=DATEDIFF(YY,BornDate,GETDATE()) fromStudent
whereStudentNo='20011';
selectStudentName fromStudent
whereDATEDIFF(YY,BornDate,GETDATE())in(@sage,@sage+1,@sage-1)
--查询学号是10000的学生参加2016年2月15日的“Java Logic”课程考试的成绩,要求输出学生姓名和成绩
declare@name1nvarchar(20),@scoreint --查学生姓名
select@name1=StudentName fromStudent
whereStudentNo='10000' --查成绩
select@score=r.StudentResult fromResultr,Subjects
wherer.SubjectNo=s.SubjectNoands.SubjectNamelike'%java%'andr.ExanDate='2016-2-17'andr.StudentNo='10000'