数据库

--(1)简单case表达式
use student
go
--使用简单case语句:输出“课程名”,并在”课程名“后添加“备注”
select 课程名,备注=

case 课程名
when '大学语文' then '人文学院'
when '高等数学' then '数学学院'
when '计算机基础' then '工学院'
when '数据库概论' then '工学院'
end
from 课程

go
select 课程名,备注=

case 课程名
when '大学外语' then '外国语学院'
--"大学外语“在”课程“表中没有所以后面的备注就显示null
when '高等数学' then '数学学院'
when '计算机基础' then '工学院'
when '数据库概论' then '工学院'
end
from 课程

go

--(2)搜素case表达式

use student
go
select distinct 教师编号,课程号,年级=
case
when 专业学级 ='2001' then '四年级'
when 专业学级='2002' then '三年级'
end
from 教师任课
go
--根据成绩给学生分配”优“,”良“,”中“,”差“四个等级
select distinct 姓名,课程名,等级=
case
when 成绩>80 then '优'
when 成绩>70 then '良'
when 成绩>=60 then '中'
when 成绩<60 then '差'
end
from 学生,课程,课程注册
where 学生.学号 =课程注册.学号 and
课程.课程号 =课程注册.课程号

--(3)if else语句


--第一种方法:
use student
go
begin
declare @zc varchar(10)--定义一个变量存放查到的职称
select @zc=职称 from 教师
if (@zc in ('教授','副教授'))--变量里的职称和这里的对比
begin
print'符合条件的老师有:'
select 姓名,学历,职务,职称 from 教师 where 职称='教授' or 职称='副教授'
end
else
begin
print'没有符合条件的老师'
end
end
--第二种方法:
use student
go
if exists(select * from 教师 where 职称='教授' or 职称='副教授')
begin
print'符合条件的老师有:'
select 姓名,学历,职务,职称 from 教师 where 职称='教授' or 职称='副教授'
end
else
begin
print'没有符合条件的老师'
end

--第三种方法:
use student
go
if((select COUNT(*) from 教师 where 职称 in ('教授','副教授'))>0)
begin
select 姓名,学历,职务,职称 from 教师
where 职称 in ('教授','副教授')
end
else
begin
select 姓名,学历,职务,职称 from 教师
where 职称 in ('教授','副教授')
end

--第四种方法:
use student
go
declare @a int
set @a=(select COUNT(*) from 教师 where 职称 in ('教授','副教授'))
if (@a>0)
begin
select 姓名,学历,职务,职称 from 教师
where 职称 in ('教授','副教授')
end
else
begin
select 姓名,学历,职务,职称 from 教师
where 职称 in ('教授','副教授')
end


/(4)*批处理
go语句前面的语句是一个批处理
go其实是一个批处理的结束指令*/
use student
go--第一个批结束
--第二个批开始
print'系部表包含如下信息:'
select * from 系部
print'系部表记录个数;'
select COUNT(*) 个数 from 系部
go--第二个批结束


use student
go
select 姓名,学号,出生日期
from 学生
where YEAR(出生日期) between 1970 and 1982
go
--查出不在1970-1974年出生的学生的休息
use student
go
select * from 学生
where YEAR(出生日期) not between 1970 and 1974
go

--课程号为0001成绩在70-79之间的学生的学号,成绩
use student
go
select 学号,成绩
from 课程注册
where 课程号='0001' and 成绩 >=70 and 成绩 <79
--成绩 between 70 and 79
go


--查询”课程注册“表中前4条记录
use student
go
select top 4 *
from 课程注册
go

--查找学生表中姓“周"的学生信息
use student
go
select * from 学生
where 姓名 like '周%'
go
--(8)compute by语句(每个学生的成绩明细加总成绩和平均成绩)
use school
go
select *from score
order by sno
compute sum(degree),avg(degree) by sno
go

--(9)1+++..100的和变输出
declare @a int ,@sum int
select @a=1,@sum=0
while(@a<=100)
begin
set @sum=@sum + @a
set @a =@a + 1
end
print'总和为:'print @sum
go

--(10)1加到100的和为大于1000是加到第几个数:
declare @i int ,@sum int
set @i =1
set @sum =0
while(@i<=100)
begin
set @sum =@sum +@i
if @sum >1000 break
set @i =@i +1
end
print @sum
print @i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值