educoder 数据库

--查询CS系学生选择的课程,列出学号,课程号,成绩
select sno,cno,grade from Sc where Sno in(select Sno from Student where Sdept ='CS');

-- 查询没有选C06(课程号)课程的同学的学号,姓名,性别
select sno,sname,ssex from Student where Sno not in(select Sno from Sc where Cno='C06')

--查询成绩最高的选课信息,列出学号,课程号和成绩
select sno,cno,grade from SC where grade in( select max(Grade) from SC)

-- 查询CS系没有选择'DB'课程学生的姓名,列出学生姓名
select sname from Student 
where sdept='CS' and Sno not in(select Sno from Sc 
                where Cno in(select Cno from Course 
                                where Cname='DB'))
								
--查询'DB'课程考最高分的选课信息。列出学号,课程号,成绩
select sno,cno,grade 
from SC 
where grade in (select max(grade) from SC
                 where cno in(select cno from Course where Cname='DB'))and 
                 cno in (select cno from Course where Cname='DB')

select sno,SC.cno,grade from SC,Course
where SC.cno = Course.cno
and cname = 'DB'
and grade >= all(select grade from SC 
    where grade in(select grade from SC,Course
                where SC.cno = Course.cno
                and cname = 'DB') )

--选修了先行课为'DB'的课程的学生,列出学生学号,姓名,性别,所在系
select sno,sname,ssex,sdept
from Student,Course
where cpno in (select cno from Course where cname = 'DB')

--将'DB'课程不及格的成绩加5分
update SC set grade=grade+5 
where cno in (select cno from Course where cname='DB')
and grade<60

--删除'English'(课程名)课程CS系学生的选课记录
delete from SC 
where cno in (select cno from Course where cname='English')
and sno in (select sno from Student where sdept='CS')

--为CS系添加必修课,课程号为C02
insert into SC(sno,cno,grade)
select sno,'c02',null from student where sdept='CS' and
sno not in(select sno from sc where cno='c02')

--查询‘001’号的学生不及格的课程数,列出不及格课程数(列名为:scnt)
select count(Sno) as scnt from sc
where Sno='001' and Grade<60
group by Sno; 

--查询每个学生不及格的课程数,列出学号和不及格课程数(列名为:scnt)
select sno,Count(Sno) as scnt from sc
where grade<60
group by Sno;

--每个系女同学的平均年龄,列出所在系和平均年龄(列名为:sageavg)
select sdept,avg(sage) as sageavg from Student
where ssex='f'
group by sdept;

--查询Niki(姓名)同学的平均分,列出平均分(列名为:savg)
select avg(grade) savg from Sc
where Sno in (select sno from Student where Sname='Niki');

--查询CS系每个同学的平均分,列出学号和平均分(列名为:savg)
select sno,avg(grade) savg from Sc
where Sno in (select Sno from Student where Sdept='CS')
group by Sno;

--学分为2的每门课程的选课人数,列出课程号和选课人数(列名为:scnt)
select cno,count(sno) scnt
from SC
where cno in (select cno from Course where ccredit = 2)
group by cno

--平均分最高的学生的姓名
select sname from Student
where sno in 
	(select sno from SC
	group by sno
	having avg(grade) >= all (select avg(grade) from SC group by sno))
	
--不及格人数大于等于2人的课程,列出课程号,课程名,不及格人数(列名为scnt)
select Course.cno,cname,Count(sno) as scnt from Sc,Course
where Course.Cno=Sc.Cno and Grade<60
group by Course.cno,Cname
having Count(sno)>=2

--E系平均成绩最高的同学的姓名,列出姓名
select sname from Student,SC
where sdept = 'E' and Student.sno = SC.sno
group by sname
having avg(grade) >= all (select avg(grade) from SC  where sno in (select sno from Student where sdept = 'E') group by sno)

--为Student表的Sage列添加约束,使其取值小于30岁(约束名:stu_chk_sage)
alter table student
add constraint stu_chk_sage check(sage < 30)

--student表的Ssex列添加约束,使其只能取值‘m’或‘f’(约束名:stu_chk_ssex)
alter table student
add constraint stu_chk_ssex check(ssex = 'f' or ssex = 'm')

--为Student表的ssex列添加缺省约束,缺省值为‘m’(约束名:stu_def_ssex)
alter table student
add constraint stu_def_ssex default('m') for ssex

--为SC表的sno列添加外码(约束名:stu_ref_sno)
alter table sc
add constraint stu_ref_sno foreign key (sno) references student(sno)

--为SC表的cno列添加外码(约束名:stu_ref_cno)
alter table sc
add constraint stu_ref_cno foreign key (cno) references course(cno)

--为SC表的grade列添加检查约束(1到100分)(约束名:stu_chk_grade)
alter table sc
add constraint stu_chk_grade check(grade >= 1 and grade <= 100)

--为Course表的cname列添加唯一约束(约束名:Course_un_cname)
alter table course
add constraint Course_un_cname unique (cname)

--为Course表的ccredit列添加检查约束,使其值为(1到10之间)(约束名:Course_chk_ccredit)
alter table course
add constraint Course_chk_ccredit check (ccredit between 1 and 10)

--为Course表的cpno列添加外码约束(约束名:Course_ref_cpno)
create unique index idx_cpno on Course(cpno)
alter table course
add constraint Course_ref_cpno foreign key (cpno) references course(cpno)

--为Student表的sname列创建唯一索引(索引名:idx_student_sname)
create unique index idx_student_sname on Student (sname)

--为sc表的grade列创建降序索引(索引名:idx_sc_grade)
create index idx_sc_grade
on sc(grade DESC)

--为course表的ccredit列创建升序索引(索引名:idx_course_cname)
create index idx_course_cname
on Course (ccredit)

--创建视图vcg,查询课程名为'Math'的课程中,成绩不及格的学生,列出学号,课程号,成绩
create view vcg as
select sno,cno,grade
from SC
where cno in (select cno from Course where cname = 'MAth' and grade < 60) 

--修改视图vcg中的数据,将成绩加5分
update vcg set grade = grade  + 5

--删除视图vcg中的数据,将成绩小于40分的选课信息删除
delete from vcg where grade < 40

--创建vsumc视图,使其包含每个学生的获得的学分(成绩及格才能得学分)。列出学号和总学分(列名:ssumc)
create view vsumc as
select sno,sum(ccredit) as ssumc
from SC,Course
where SC.cno = Course.cno and grade >= 60
group by sno

--使用vsumc视图,查询男同学总学分高于12分的学生的学号,姓名,性别
select vsumc.sno,sname,ssex
from vsumc,Student
where ssumc > 12 and vsumc.sno = Student.sno and ssex ='m'

--使用vsumc视图,查询总学分最高的学生,列出学号,姓名,性别,年龄,所在系
select vsumc.sno,sname,ssex,sage,sdept
from vsumc,Student
where  ssumc >= all(select ssumc from vsumc) and Student.sno = vsumc.sno

--使用vsumc视图,查询平均分大于等于65分的学生的学号,平均分(列名:savg),总学分(列名:ssumc)
select SC.sno, avg(grade) savg,ssumc from vsumc,SC 
where SC.sno=vsumc.sno 
group by SC.sno,ssumc
having avg(grade)>=65

--为utest用户赋予student表的查询权限
grant select on student to utest;

--为utest用户赋予SC表的查询权限和修改权限
grant select,update on sc to utest;

--为utest用户赋予Course表的插入权限和删除权限
grant insert,delete on Course to utest;

--收回utest对student表的修改权限
revoke update on student from utest

--收回utest对SC表的插入权限和修改权限
revoke insert,update on sc from utest

--收回utest对Course表的查询权限和删除权限
revoke select,delete on Course from utest
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: educoder mysql数据库初识是一门介绍MySQL数据库的课程。MySQL是一种开源的关系型数据库管理系统,广泛应用于Web应用程序的开发中。本课程主要介绍MySQL的基本概念、安装配置、数据类型、表操作、数据查询等内容,帮助学习者快速掌握MySQL数据库的基础知识。 ### 回答2: MySQL是一款开源关系型数据库管理系统,广泛应用于WEB应用程式的开发中。eduocer MySQL数据库初识是帮助初学者了解MySQL数据库管理系统的基本知识和操作。MySQL数据库管理系统采用了模块化的结构,可以轻松地维护和管理大规模的、高性能的数据库。 MySQL数据库管理系统主要包括以下基本模块: 1.连接器:连接器允许用户登录MySQL数据库,并与数据库进行通信。连接器的主要工作是验证用户的身份,以及安全地建立和关闭连接。 2.查询缓存:查询缓存可以缓存数据查询结果,以加速查询操作。查询缓存可以提高数据库系统的性能,因为当用户查询数据时,MySQL不需要执行相同的查询操作。 3.分析器:分析器的主要功能是分析用户的查询请求,并生成查询执行序列。 4.优化器:优化器的主要功能是对查询进行优化处理,以尽可能快地生成查询执行序列。 5.执行器:执行器的主要功能是执行查询操作,并提供数据查询结果。 MySQL数据库管理系统的架构使它成为了一种高效、可扩展、可靠的数据库管理系统。通过eduocer MySQL数据库初识课程,初学者可以了解MySQL数据库的基本知识和操作,并能够应用这些知识和操作来构建和管理自己的数据库。最终,所有的学习和应用都有助于构建高性能和高效率的WEB应用程序。 ### 回答3: 初识educoder mysql数据库,我们必须首先了解MySQL数据库的概念和特点。MySQL是一个开源的关系型数据库管理系统,因其稳定性、快速性、安全性和高可靠性而被广泛应用。 在educoder上学习MySQL数据库,需要首先掌握以下几个方面: 1. 数据库结构 MySQL数据库采用了关系型数据库的形式,它由多个数据库、表、行、列和索引等组成。数据库是一组相关数据的集合,而表则是数据库中的数据组成部分,行和列则用于描述数据在表中的存储格式和结构。索引则是用于提高数据库查询效率的一种数据结构。 2. SQL语言 SQL语言是MySQL数据库的核心语言,包括创建、读取、更新、删除和查询等多种操作。学习SQL语言需要了解其基本语法和语义,包括SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY等关键词的用法。 3. 数据库设计 在使用MySQL数据库时,需要对数据进行合理的设计,包括数据的存储结构、表的设计和数据类型的选择等。合理的数据库设计可以提高数据的存储效率和查询效率。 4. 数据库应用 MySQL数据库广泛应用于Web应用开发、企业管理和数据分析等领域。在educoder上,我们可以学习如何在MySQL数据库中开发Web应用、管理企业数据和进行数据分析等。 总之,初识educoder MySQL数据库需要我们掌握MySQL数据库的概念和特点、SQL语言的基本语法和数据设计、数据库应用的实际操作等方面。只有深入了解MySQL数据库的基本原理和应用技巧,我们才能更好地应用MySQL数据库完成各种数据处理和应用开发工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sevenlob

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值