sql server 的增删改查小测试及答案(这对于初学者来说是一件难得的宝物)

create table student(
    sid varchar(8) primary key,
    sname varchar(16) not null,
    sex varchar(2) check (sex='男' or sex = '女')default '女',
    age int check(age > 0 and age < 120),
    tel varchar(16) unique
);

create table course(
    cid varchar(8) primary key,
    cname varchar(8) not null
);

create table sc(
    sid varchar(8) foreign key references student(sid),
    cid varchar(8) foreign key references course(cid),
    score int
);

insert into student
values('s001','丰登儿','男',18,'13527542451');
insert into student
values('s002','班克尔','女',17,'13884233134');
insert into student
values('s003','车笔刀','女',13,'15086623248');
insert into student
values('s004','趴耳朵','男',19,'15323535256');
insert into student
values('s005','直角','女',23,'15653579258');
insert into student
values('s006','扳手','女',19,'13663279788');
insert into student
values('s007','俄石板','女',21,'13656529396');

insert into course
values('c001','语文');
insert into course
values('c002','数学');
insert into course
values('c003','外语');
insert into course
values('c004','物理');
insert into course
values('c005','化学');


insert into sc
values('s001','c001',70);
insert into sc
values('s001','c002',78);
insert into sc
values('s001','c003',82);
insert into sc
values('s001','c004',63);
insert into sc
values('s001','c005',92);
insert into sc
values('s002','c001',52);
insert into sc
values('s002','c002',67);
insert into sc(sid,cid)
values('s002','c003');
insert into sc
values('s002','c004',82);
insert into sc
values('s002','c005',88);
insert into sc
values('s003','c001',52);
insert into sc(sid,cid)
values('s003','c002');
insert into sc
values('s003','c003',72);
insert into sc(sid,cid)
values('s003','c004');
insert into sc
values('s003','c005',88);
insert into sc
values('s004','c001',76);
insert into sc
values('s004','c003',89);


--二、执行一下操作
--1. 修改sc表中s001号学生的c002号课程的成绩,改为82
--(4分)
select * from sc;
update sc
set score = 82
where sid = 's001' and cid='c002'

--2. 删除sc表中学号为s004的学生成绩(4分)
delete from sc
where sid='s004'


--3. 查询年龄在18~20岁的学生信息(4分)
select *
from student
where age between 18 and 20

--4.  查询姓名以儿结尾的学生信息(4分)
select * 
from student
where sname like '%儿'

--5. 查询电话号码 倒数第3位是2的学生信息(4分)
select *
from student
where tel like '%2__'


--6. 查询男女生各多少人(4分)
select sex,COUNT(*) 人数
from student
--where sex = '女'
group by sex


--7. 查询每门课程的最高分、最低分、总分和平均分(4分)
select cname 课程名, MAX(score) 最高分, 
MIN(score) 最低分, SUM(score) 总分, AVG(score) 平均分
from student,sc,course
where student.sid = sc.sid and course.cid = sc.cid
group by cname



--8. 查询每个人的总分和平均分(4分)
select student.sname 姓名, SUM(score) 总分, AVG(score) 平均分
from student,sc
where student.sid = sc.sid
group by student.sname


--9. 查询比耙耳朵 大的学生信息(4分)
select * 
from student
where age > (
    select age 
    from student
    where sname = '趴耳朵'
);


--10. 查询每个学生的学号、姓名、性别、科目和成绩(4分)
select student.sid 学号,student.sname 姓名,
sex 性别, course.cname 课程名, sc.score 分数
from student,sc,course
where student.sid = sc.sid and course.cid = sc.cid
group by student.sid,student.sname,sex,course.cname,sc.score

--or
select student.sid,sname,sex,cname,score
from student,sc,course
where student.sid=sc.sid
and course.cid=sc.cid
--11. 查询没及格的学生的学号、姓名、性别、科目和成绩(5分)
select student.sid 学号,student.sname 姓名,
sex 性别, course.cname 课程名, sc.score 分数
from student,sc,course
where student.sid = sc.sid and course.cid = sc.cid and sc.score<60



--12. 查询学生表中第3~6个人的信息(分页查询5分)
select top 3 *
from student
where sid not in (
    select top 3 sid from student
)

--13. 查询没有参加考试的学生的学生信息(5分)
select * from student
where student.sid not in (
    select sc.sid
    from sc
)

祝愿看到这篇文章的人,学业进步,事业有成,(^__^) 嘻嘻!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQLServer试题答案 选择题: 1、在MS SQL Server中,用来显示数据库信息的系统存储过程是( ) A sp_ dbhelp B sp_ db C sp_ help D sp_ helpdb 2、SQL语言中,删除一个表的命令是( ) A DELETE B DROP C CLEAR D REMORE 3、关系数据库中,主键是(__) A、为标识表中唯一的实体 B、创建唯一的索引,允许空值 C、只允许以表中第一字段建立 D、允许有多个主键的 4、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1___),使用关键字(2___)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3___),如果在SELECT语句中使用聚合函数时,一定在后面使用(4___)。 ⑴ A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT ⑵ A、DISTINCT B、UNION C、ALL D、TOP ⑶ A、JOIN B、UNION C、INTO D、LIKE ⑷ A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE 5、语句DBCC SHRINKDATABASE (Sample, 25)中的25表示的意思是 A、25M B、剩余占整个空间的25% C、已用空间占整个空间的25% D、以上都不对 6、你是一个保险公司的数据库开发人员,公司的保单信息存储在SQL Server 2000数据库中,你使用以下脚本建立了一个名为Policy的表: CREATE TABLE Policy (PolicyNumber int NOT NULL DEFAULT (0), InsuredLastName char (30) NOT NULL, InsuredFirstName char (20) NOT NULL, InsuredBirthDate datetime NOT NULL, PolicyDate datetime NOT NULL, FaceAmount money NOT NULL, CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber) ) 每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做? a.建立一个INSTEAD OF INSERT触发器来产生一个新的保单号,并将这个保单号插入数据表中。 b.建立一个INSTEAD OF UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。 c.建立一个AFTER UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。 d.用AFTER UPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将这个保单号插入数据表中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值