SQL|SQL Server2012数据库之期末渗透学习法

日月如梭,光阴似箭。眨眼间又到了期末了,没办法,明天就要考数据库了,怎么办呢?
SQL|SQL Server2012数据库之期末渗透学习法
文章图片

网上多有盛传渗透复习法,不知效果如何,但是依然值得一试
当然,此渗透非彼渗透!
写成此博文,望不付此渗透!
(一)创建数据库
命令行创建

CREATE DATABASE XXX on ( name ='xxx_data', filename = 'D:\XXX\XXX.mdf', size=10mb, maxsize = 100mb, Filegrowth = 10%) log on ( name ='xxx_log', filename = 'D:\XXX\XXX_log.ldf', size=5mb, maxsize = 50mb, filegrowth = 5mb)

OK,创建数据库成功!俗话说万事开头难,看来Just so so 嘛
(二)创建表Teacher
SQL|SQL Server2012数据库之期末渗透学习法
文章图片

也挺简单的耶,命令走起
create table Teacher ( 职工号 varchar(12), 姓名 varchar(8), 性别 char(2), 民族 varchar(8), 出生日期 datetime, 年龄 int, 政治面貌 char(4), 户籍 varchar(8), 工资 money, 职称 char(6) )

我只想问,还有谁!!!
(三)操作部分
1.对TEACHER表的职工号字段进行修改,将数据类型改为char,宽度改为6
alter table Teacher alter column 职工号 char(6)

2.将TEACHER表中的年龄字段删除
drop 走起
alter table Teacher drop column 年龄

3.将“数据.docx”文档中的数据添加到表TEACHER中
SQL|SQL Server2012数据库之期末渗透学习法
文章图片

一波操作猛如虎,导入成功
4.将“巴图静”的民族修改为“彝族”
update Teacher set 民族 ='彝族' where 姓名 = '巴图静'

5.在TEACHER表中添加下面的新纪录
1035 梅长苏 男 汉族 1984-7-26 群众 重庆 ¥3635.00 讲师
insert into Teacher values ('1035','梅长苏','男','汉族','1984-7-26','群众','重庆','¥3635.00','讲师')

6.教师:苏日娜 因为个人原因已经辞职,请将其信息在TEACHER表中删除
delete from Teacher where 姓名='苏日娜'

7.查询表TEACHER中汉族副教授的信息
select * from Teacher where 民族 = '汉族'and 职称= '副教授'

8.查询表TEACHER中男教师的信息,并按照年龄的升序显示
select * from Teacher where 性别 = '男'order by 出生日期 desc

注意是年龄的升序,所以要用desc
9.查询12号出生的教师的信息
select *from teacher where day(出生日期)=12

10.查询职称为助教的教师人数
select count(*) from teacher where 职称 = '助教'

11.查询户籍为北京市的副教授的平均年龄
select avg(year(getdate())-year(出生日期)) as 平均年龄 from teacher where 职称='副教授' and 户籍='北京市'

我打赌这个明天肯定要考
12.将考试文件夹中的KS数据库进行附加
我打赌这个明天也肯定要考
13.查询02库房4月份出库数量
select sum(出库数量) from物料信息 wheremonth(出入库时间)=4 and 库房='02'

14.根据数据库KS中的物料信息表完成以下表格
2014年钢棒类物料出库数量统计表
物料名称 出库数量
钢棒W1
钢棒W2
钢棒W
钢棒
Select 物料名称,sum(出库数量) from 物料信息 where 物料名称 like '钢棒%' group by 物料名称

15.创建一个计算N的阶乘的函数,函数名称为F_JIECHENG
create function F_JIECHENG(@num varchar(100)) returns int as begin declare @sum int,@i int set @sum = 1 set @i =1 while @i<=@num begin set @sum=@sum*@i set @i=@i+1 end return @sum end

16.判断分数等级
Create function pd(@num char(10)) returns char as begin declare @grade char(10) set @grade= case when @num>=90 and @num<=100 then 'A' when @num>=80 and @num<100 then 'B' when @num>=70 and @num<80 then 'C' when @num>=60 and @num<70 then 'D' else 'E' end return @grade end

17.大小写转换
create function zh(@num char(10)) returns char as begin declare @temp char(10) if ascii(@num)between ascii('A') and ascii('Z') begin set @temp = lower(@num) end else set @temp = upper(@num) return @temp end

18.大小转换
Create function zh(@num char(10)) returns char as begin declare @temp char(10) if ascii(@num)between ascii('A') and ascii('Z') begin set @temp = lower(@num) end else set @temp = upper(@num) return @temp end

19.判断大小写
Create function zm(@num char(10))returns char(10) as begin declare @re char(10) if ascii(@num) between ascii('A') and ascii('Z') begin set @re='daxie' end else begin set @re='xiaoxie' end return @re end

【SQL|SQL Server2012数据库之期末渗透学习法】这个……应该可以应付明天的考试了吧!

    推荐阅读