数据库查询一些心得

本文介绍了如何使用SQL语句进行数据库备份与还原操作,并提供了多种实用的查询案例,包括成绩表查询、平均分计算等。

备份数据库,例如:

BACKUP DATABASE Northwind
   TO DISK = 'c:/Northwind.bak'

还原数据库,例如:

--返回由备份集内包含的数据库和日志文件列表组成的结果集
RESTORE FILELISTONLY
   FROM DISK = 'c:/Northwind.bak'

--还原由BACKUP备份的数据库
RESTORE DATABASE Northwind
   FROM DISK = 'c:/Northwind.bak'

--指定还原后的数据库物理文件名称及路径
RESTORE DATABASE TestDB
   FROM DISK = 'c:/Northwind.bak'
   WITH
   MOVE 'Northwind' TO 'c:/test/testdb.mdf',
   MOVE 'Northwind_log' TO 'c:/test/testdb.ldf'

   MOVE 'logical_file_name' TO 'operating_system_file_name'
指定应将给定的 logical_file_name 移到 operating_system_file_name。
默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE
语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重
新定位数据库文件以避免与现有文件冲突。可以在不同的 MOVE 语句中指定
数据库内的每个逻辑文件。

--强制还原,加上REPLACE参数,则在现有数据库基础上强制还原。
RESTORE DATABASE TestDB
   FROM DISK = 'c:/Northwind.bak'
   WITH REPLACE,
   MOVE 'Northwind' TO 'c:/test/testdb.mdf',
   MOVE 'Northwind_log' TO 'c:/test/testdb.ldf'

 

重要的查询,

其中学xuecheng表是一个成绩表
查询各班总分10名的名单
select t.* from xuecheng t where t.ks_id=27 and ccjzfp in(select top 10 ccjzfp from xuecheng where sbanhao=t.sbanhao and ks_id=27 order by ccjzfp desc) order by t.stu_sno
查询全级前多少名各班占多少人
select sbanhao,count(*) from xuecheng where ks_id=27  group by sbanhao order by sbanhao
查询各班前10名的平均分
select t.sbanhao,avg(t.ccjzf) from xuecheng t where t.ks_id=27 and ccjzfp in(select top 10 ccjzfp from xuecheng where sbanhao=t.sbanhao and ks_id=27 order by ccjzfp desc) group by sbanhao order by sbanhao
说明:选择从10到15的记录 查询记录间的东西
select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
'查询某班前15名的学生的语文平均分
select avg(cyuwen),sum(cyuwen) from xuecheng where ks_id=30 and sbanhao='01' and tui_flag='0' and t_student='0' and stu_sno in( select top 15 stu_sno from xuecheng where ks_id=30 and sbanhao='01' and tui_flag='0' and t_student='0' order by ccjzf desc)
个人业绩查询

SELECT [ak48].[姓名], avg([ak47].[思想品德与历史]) AS cj, count(*) AS 人数
FROM ak47, ak48
WHERE [ak47].[班号]=[ak48].[班] And [ak48].[科目]='历史'
GROUP BY [ak48].[姓名];
获取两次考试都参加考试的人数
select sbanhao,avg(cyuwen) from xuecheng where ks_id=21 and tui_flag='0' and stu_sno in (select stu_sno from xuecheng where ks_id=25 and cyuwen>0) and cyuwen>0 group by sbanhao order by sbanhao
这里需要做一个存储过程

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值