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

日月如梭,光阴似箭。眨眼间又到了期末了,没办法,明天就要考数据库了,怎么办呢?
SQL Server2012数据库之期末渗透学习法_第1张图片
网上多有盛传渗透复习法,不知效果如何,但是依然值得一试
当然,此渗透非彼渗透!
写成此博文,望不付此渗透!

(一)创建数据库
命令行创建

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 Server2012数据库之期末渗透学习法_第2张图片
也挺简单的耶,命令走起

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 Server2012数据库之期末渗透学习法_第3张图片
一波操作猛如虎,导入成功

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  物料信息
  where   month(出入库时间)=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 Server2012数据库之期末渗透学习法)