量不在大只要精,邮箱meikun713@163.com
我贡献几个
1、有表student(id,name,score)根据分数列(score)每10分为一段,查询每段分数的人数。
1.select left(score,1)*10,count(score) from student group by left(score,1)*10
2、数据表records(id,ip,cnt)每个ip地址在数据表里面不是唯一的,请选出累计访问量最大的10个ip地址,并按访问量降序排列。
2.select top 10 ip,count(ip) from records group by ip order by count(ip) desc
谁有sql 笔试题,要难的,经典的?
答案:3 悬赏:10 手机版
解决时间 2021-03-04 01:18
- 提问者网友:献世佛
- 2021-03-03 00:49
最佳答案
- 五星知识达人网友:鸠书
- 2021-03-03 01:02
明天发给你!
全部回答
- 1楼网友:想偏头吻你
- 2021-03-03 03:21
1、对于教学数据库的三个基本表(如下),试用sql的查询语句表达下列查询:
学生s(s#,sname,age,sex)
学习sc(s#,c#,grade)
课程c(c#,cname,teacher)
(1)检索liu老师所授课的课程号和课程名。
select c#,cname
from c
where teacher=’liu’
(2)检索年龄大于23岁的男学生的学号和姓名。
select s#,sname
from s
where age>23 and sex=’男’
(3)检索至少选修liu老师所授课程中一门课程的女学生姓名。
方法一:
select sname
from s,sc,c
where s.sex=’女’and s.s#=sc.s# and sc.c#=c.c# and c.teacher=’liu’
方法二:
select sname
from s
where s# in (select s#
from sc
where c# in (select c#
from c
where teacher=’liu’))
and sex=’女’
(4)检索wang同学未学的课程的课程号。
方法一:
select c#
from c
where c# not in (select c#
from sc,s
where s.name=’wang’and s.s#=sc.s#)
方法二:
select c#
from c
where not exists(select *
from s,sc
where s.s#=sc.s# and sc.c#=c.c# and sname=’wang’)
(5)检索至少选修两门课程的学生学号。
方法一:
select distinct a.s#
from sc a,sc b
where a.s#=b.s# and a.c#<>b.c#
方法二:
select s#
from sc
group by s#
having count(*)>=2
(6)检索全部学生都选修的课程的课程号与课程名。
select c#.cname
from c
where not exists
(select *
from s
where not exists
(select *
from sc
where s.s#=sc.s# and sc.c#=c.c#))
(7)检索选修课程包含liu老师所授课的学生学号。
select distinct s#
from sc s1
where not exists
(select *
from c where teacher=’liu’ and
not exists(select * from sc s2
where s1.s#=s2.s#
and c.c#=s2.c#))
(8)统计有学生选修的课程门数。
select count(distinct c#)
from sc
(9)求选修c4课程的学生的平均年龄。
select avg(age)
from s,sc
where s.s#=sc.s# and c#=’c4’
(10)求liu老师所授课程的每门课程的学生平均成绩。
select c#,avg(grade)
from sc
where c# in (select c#
from c
where teacher=’liu’)
group by c#
(11)统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,
select c#,count(s#)
from sc
group by c#
having count(s#)>10
2、更新语句
insert、update、delete
试用sql更新语句对教学数据库中三个基本表s、sc、c进行更新操作。(参看作业3)
(1)在基本表s中插入一个学生元组(‘s9’,‘wu’,18)。
insert into s(s#,sname,age)
values(‘s9’,’wu’,18)
(2)在基本表s中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个新的基本表student(s#,sname,sex)。
create table student
(s# char(10),
sname char(20),
sex char(2))
insert into stuent
select s#,sname,sex
from s
where not exists(select *
from sc
where s.s#=sc.s# and grade<80)
或
select s#,sname,sex into student
from s
where not exists(select *
from sc
where s.s#=sc.s# and grade<80)
(3)在基本表sc中删除尚无成绩的选课元组。
delete from sc
where grade is null
(4)把wang同学的学习选课和成绩全部删除去。
方法一:
delete from sc
where ‘wang’=(select sname
from s
where s.s#=sc.s#)
方法二:
delete from sc
where s# in (select s#
from s
where sname=’wang’)
(5)把选修maths课不及格的成绩全改为空值。
方法一:
update sc set grade=null
where 60>(select grade
from sc,c
where c.cname=’maths’ and sc.c#=c.c#)
方法二:update sc set grade=null
where grade<60 and c#=(select c#
from c
where cname=’maths’)
(6)把低于总平均成绩的女同学成绩提高5%。
update sc set grade=grade*1.05
where s# in (select s#
from s
where sc.s#=s.s# and sex=
‘女’)
and grade>(select avg(grade) from sc)
(7)在基本表sc中修改c4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个update语句实现)。(略)
若课程号为:c4
update sc set grade=grade*1.05
where c#=’c4’and grade<=75
update sc set grade=grade*1.04
where c#=’c4’and grade>75
若课程名为:c4
update sc set grade=grade*1.05
where c# in (select c#
from c
where cname=’c4’)and grade <=75
update sc set grade=grade*1.05
where c# in (select c#
from c
where cname=’c4’)and grade >75
注:查询每位学生的学号、姓名及总成绩。
select sc.sno,sname,sum(grade)
from student,sc
where student.sno=sc.sno
group by sc.sno,sname
若语句中含有group by子句,select 子句中的字段,除集聚函数外,都需在group by后出现才行。多表时,有重复字段名时,一定要标明所有的字段是哪个表的。
3、创建表create
实例二:设有如图所示的关系s,sc和c,试用关系代数表达式表示下列查询语句:
s sc
c
1、 创建实例二中的基本表,指出主键、外键。
create table s(
s# int primary key,
sname char(8),
age tinyint,
sex char(2))
create table sc(
s# int foreign key references s(s#),
c# char(3) foreign key references c(c#),
grade int,
primary key (s#,c#))
create table c(
c# char(3) primary key,
cname char(10),
teacher char(8))
- 2楼网友:廢物販賣機
- 2021-03-03 02:26
我也要
zawhyjy@163.com
谢谢!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯