五月十二号 数据库简单查询例题

表和前天的表一样

--1查询没有买英语这类书的人
select * from 读者信息表 where 用户编号 not in 
(
select 用户编号 from 订单表 where 图书编号 in 
( select 图书编号 from 图书信息表 where 书名  like '%英语%' )  
)
--2查询表中第四条到第七条评论信息
select top 7 * from  图书评论表
where 评论编号 not in ( select top 3 评论编号 from 图书评论表 )
--3.查询打分中,打满分5分的百分比是多少,打4分百分比,打3分百分比,打2分百分比,打1分百分比.
declare @s decimal(4,2),@a1 int ,@a2 int ,@a3  decimal(4,2) ,@a4 int ,@a5 int 
select @s=count(*) from 图书评论表
select @a5=count(*) from 图书评论表 where 打分=5
select @a4=count(*) from 图书评论表 where 打分=4
select @a3=count(*) from 图书评论表 where 打分=3
select @a2=count(*) from 图书评论表 where 打分=2
select @a1=count(*) from 图书评论表 where 打分=1
print  '五分的百分比:'+left(cast(@a5/@s * 100 as varchar(20)),4) + '%' 
print  '四分的百分比:'+left(cast(@a4/@s * 100 as varchar(20)),4) + '%' 
print  '三分的百分比:'+left(cast(@a3/@s * 100 as varchar(20)),4) + '%' 
print  '二分的百分比:'+left(cast(@a2/@s * 100 as varchar(20)),4) + '%' 
print  '一分的百分比:'+left(cast(@a1/@s * 100 as varchar(20)),4) + '%' 
--4.新建视图v1,查询: 读者姓名,图书名称,图书打分
create view v1
as
select 用户名,书名,打分
from 图书信息表,图书评论表,读者信息表
where 图书信息表.图书编号=图书评论表.图书编号 and 图书评论表.用户编号=读者信息表.用户编号
select * from v1
drop view v1
--5.新建视图v2,查询:图书名称,图书打分,只查询打分3分以上的.
create view v2
as
select 书名,打分
from 图书信息表,图书评论表
where 图书信息表.图书编号=图书评论表.图书编号 and 打分>3
select * from v2
--6.按姓名,创建唯一非聚簇索引
create unique nonclustered  
index aa on 读者信息表(用户名 asc)
select 用户名 from 读者信息表

drop index 读者信息表.aa
sp_helpindex 读者信息表
--7.按图书名,图书类型(降序),创建非聚簇索引
create nonclustered
index bb on 图书信息表(书名,类型编号 desc)

select 书名,类型编号 from 图书信息表
drop index 图书信息表.bb
--8.创建数据库备份并恢复(用图形化界面,做完全,事务日志,并还原)
--9.创建数据库备份并恢复,手写作业(用代码,做完全,事务日志,并还原)
sp_addumpdevice 'disk','stu4full','c:\stu4full.bak'

backup database stu
to stu4full
with init

restore database stu from stu4full with replace
--10.将读者信息表数据导出到记事本中,并导入
/*
11.创建一个数据库,名叫linshi,数据库中有表,名叫student,student结构:
name nvarchar(20)
age int
*/
create database linshi on
(
	name='linshi',
	filename='c:\linshi.mdf',
	size=3MB,
	filegrowth=3%
)
log on
(
	name='linshi_log',
	filename='c:\linshi_log.ldf',
	size=3MB,
	filegrowth=5%	
)
go
use linshi
create table student
(
	name varchar(20),
	age int
)
/*
要求一:执行如下语句:
1)第一块语句

请问:ac1与ac2是否都插入了?
*/
use linshi
select * from student
insert into student values ('ac1',12)
go
insert into student value ('ac2',13) 
go
select * from student
--a1插入成功,a2插入失败
/*
2)第二块语句
use linshi
select * from student
insert into student values ('ac3',14)--此处只有一个 go
insert into student value ('ac4',15) --注意,此处value故意写错
go
*/

use linshi
select * from student
insert into student values ('ac3',14)
insert into student value ('ac4',15) 
go
select * from student
--a3,a4插入失败


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值