以下语句根据自己的数据库来应用:
/*1 简单SELECT语句*/
//as指定列名
1.select * from T_Table
2.select 12*13 as 计算结果
3.select 姓名 as 学生姓名,性别 from 学生信息
4.select distinct * from T_Table
/*2 设置查询条件*/
1.select * from 学生信息 where 姓名='张三'
2.select * from 学生信息 where 姓名='张三' and(or) 性别='男'
3.select * from 学生信息 where 姓名 like '张%'
/*3 排序*/
//默认升序asc
1.select * from 学生信息 where 姓名='张三' order by 分数 desc,学生编号 asc
/*4 分组.*/
1.select 课程编号,avg(分数) from 学生信息 where 课程编号='0101'group by 课程编号
//rollup 对同一个考试编号,以课程编号分别小计,最后对考试编号进行总计
2.select 考试编号,课程编号,avg(分数) from 学生信息 where 课程编号='0101'group by rollup (考试编号,课程编号)
//cube 对同一个课程编号,以考试编号分别小计,最后对课程编号进行总计
3.select 考试编号,课程编号,avg(分数) from 学生信息 where 课程编号='0101'group by cube (考试编号,课程编号)
/*5 使用函数*/
//函数有max(),min(),avg(),sum()
1.select max(分数) from 学生信息 where 姓名='张三'
//显示前三名
2.select top 3 分数 from 成绩信息 where 考试编号='0801'and 课程编号='2' order by 分数 asc
/*6 having子句.*/
1.select 考试编号,课程编号,avg(分数) from 学生信息 group by考试编号,课程编号
havingavg(分数)>=90
/*7 插入数据*/
1.insert into 学生信息values('2009100101','张三','男','1986-06-01','汉族','20050101','湖北武汉')
1.insert into 学生信息(学号,姓名,家庭住址)values('2009100101','张三','湖北武汉')
/*8 使用INSERT…SELECT语句*/
//备份数据表
1.insert 学生信息1
select* from 学生信息 where 家庭住址 like '武汉%'
/*9 使用SELECT…INTO语句*/
1.select *
into #student
from 学生信息
where 性别='男'
/*10 UPDATE语句*/
1.select * from 学生信息
update学生信息 set 姓名='赵四' where 学号='2005050101'
/*11 在UPDATE语句中使用FROM子句*/
//连接a和b表更新数据
1.select * from T_student
update T_student set ....
from T_student a join 学生信息 b ona.s_name=b.姓名
/*12 DELETE语句*/
1.delete from table where 姓名=''
/*13 TOP关键字和Top表达式句*/
1.select top 10 * from 成绩信息
2.select top 10 percent * from 成绩信息
//利用变量来操作,关键字ties必须在使用orderby..之后使用,将同样符合条件列出
3.declare @i int
set@i=20
select top (@i) with ties percent * from 成绩信息 order by 分数
/*14 COMPUT子句*/
1.select * from 成绩信息 where 课程编号=2
computesum(分数),avg(分数),max(分数),min(分数)
2.select * from 成绩信息 where 课程编号=2 orderby 考试编号
computesum(分数),avg(分数),max(分数),min(分数) by 考试编号
/*15 在where子句使用运算符*/
1.select * from 成绩信息 where 考试编号='0802'and (分数%5=0)
2.select * from 成绩信息 where 考试编号='0802'and 分数 in (85,90,87,88)
3.select * from 成绩信息 where 考试编号='0802'and 分数 between 90 and 95
//关键字exists
declare @username varchar(20)
declare @pwd vachar(20)
set @username='2005040102'
set @pwd='张三'
if exists(select * from 学生信息 where 学号=@usernameand 姓名=@pwd)
print '登录成功'
else
print '登录失败'
//交查询
select a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b
where a.学生编号=b.学号 and a.课程编号=2 and a.考生编号='0801'
intersect
select a.成绩编号,a.分数,A.姓名 from
(
select top 10 a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b
where a.学生编号=b.学号 and a.考试编号='0801'order by a.分数 desc
) A
//差查询EXCEPT(去掉两个结果集交叉的部分)
select a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b
where a.学生编号=b.学号 and a.课程编号=2 and a.考生编号='0801'
except
select a.成绩编号,a.分数,A.姓名 from
(
select top 10 a.成绩编号,a.分数,b.姓名 from 成绩信息 a,学生信息 b
where a.学生编号=b.学号 and a.考试编号='0801'order by a.分数 desc
) A
//exec存储过程调用
//创建存储过程
create proc p_sorce
@name varchar(20),
@sorce int output
as
select @sorce=avg(a.分数) from 成绩信息 a,学生信息 b
where a.学生编号=b.学号 and b.姓名=@name
//调用语句
declare @sorce1 int
exec p_sorce @name=' ',@sorce=@sorce1 output
print @sorce1
----goto语句使用-S--
--print '1'
--goto test_target
--print '2'
--test_target:
--print '3'
----goto语句使用-E--
----while,continue,break语句使用-S
--begin
-- declare @test_Var int,@test_sum int
-- select @test_Var=0,@test_sum=0
-- while @test_Var<=200
-- begin
-- set @test_sum += @test_Var
-- set @test_Var += 1
-- if @test_Var=30
-- break --continue语句结束本次循环,继续下次循环,break语句直接跳出循环
-- end
-- select '100内所有整数之和:',@test_sum
--end
----while,continue,break语句使用-E
----程序块,变量case when赋值-S
--begin
-- declare @test_Var1 int,@test_String1 varchar(30)
-- set @test_Var1=50
-- set @test_String1=
-- case
-- when @test_Var1>=90 and @test_Var1<=100 then '优秀'
-- when @test_Var1>=60 and @test_Var1<90 then '及格'
-- else '不及格'
-- end
-- select 'result:' + @test_String1
--end
----程序块,变量case when赋值-E

1320

被折叠的 条评论
为什么被折叠?



