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
文章图片
也挺简单的耶,命令走起
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中
文章图片
一波操作猛如虎,导入成功
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数据库之期末渗透学习法】这个……应该可以应付明天的考试了吧!
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 数据库设计与优化
- 数据库总结语句
- py连接mysql
- 2019-01-18Mysql中主机名的问题
- MySql数据库备份与恢复
- mysql|InnoDB数据页结构
- 数据库|SQL行转列方式优化查询性能实践
- mysql中视图事务索引与权限管理
- MYSQL主从同步的实现