学生课程表的关系模式
㈠ 学生教师课程的关系模式其属性分别为学号姓名所在系所在系主任年龄;课程号课程名选修课;学号课程表成绩
1.课程号->教师姓名学抄生号,课程号->成绩学生号->学生姓名 2.候选码是 课程号,学生号 3.关系模式R符合第一范式。因为非关键字“学生姓名”部分依赖于关键字“学生号”不符合第二范式,因此只符合第一范式(1NF) 4.将R分解为3个表——S(学生学号,学生姓名) C(学生学号,课程号,成绩)T(课程号,教师姓名)这样一来 消除了非关键字对关键字的部分依赖,也没有关键字与非关键字的传递依赖。符合第三范式。
㈡ 学生和课程是多对多,有学生表,课程表,关系表。问写出SQL找出选课大...
select * from 学生表 where studentid in (select studentid from 关系表 group by studentid having count(*)>5)
子查询:select studentid from 关系表 group by studentid having count(*)>5 找出符合的ID
㈢ 教学管理”数据库中有学生表、课程表和选课表,如何创建数据库反应三张表之间的联系
关于反映这三张表中数据之间的联系,提供三方面信息以供参考:
1、表关系分析:学生表与课程表是多对多的关系,建立一张关联表也就是选课表来将学生表与程表产生关联。
2、数据库表分析:学生表包括学生相关信息,课程表包括课程相关信息,选课表放其他两张表的各一个字段(可以维护唯一性,比如说主键)。
3、实体分析:包含学生和课程两个实体,在每个实体中加入另外一个实体的集合。
㈣ 已知三个关系模式(学生表,课程表,成绩表)用SQL语句实现以下内容
CREATE TABLE 选课表
(学号 CHAR(8) REFERENCES 学生表(学号),
课程编号 CHAR(6) REFERENCES 课程表(课程编号),
成绩 smallint)
GO
INSERT INTO 学生表 VALUES('20100101','李丹','女','1993-6-6','管理系')
GO
SELECT 学号,姓名,所在系
FROM 学生表
GO
SELECT 学生表.学号,姓名
FROM 学生表 JOIN 选课表 ON 学生表.学号=选课表.学号
WHERE 课程编号='A01-02'
GO
SELECT *
FROM 学生表
WHERE 姓名 LIKE '[赵李张]%'
GO
SELECT 课程名称,COUNT(*) AS 选修总人数
INTO 修课统计
FROM 课程表 JOIN 选课表 ON 课程表.课程编号=选课表.课程编号
GROUP BY 课程名称
㈤ 设有学生-课程关系数据库,其数据库关系模式为:(每小题6分,共30分) 学生SC(学号Sno,姓名Sname,所在系S
先用excel打下来
S
学号 姓名 年龄 性别
9801 刘红 21 男
9802 陈规 22 男
9803 李芳 23 女
┊内 ┊ ┊ ┊
9850 朱砂 25 男
SC
学号 课号 成绩容
9801 201 89
9801 202 67
9801 203 77
9802 201 82
9802 202 32
9803 201 85
9803 201 98
9803 203 45
┊ ┊ ┊
9850 203 69
C
课号 课名 任课老师
201 数据结构 王华
202 计算方法 刘慧
203 数据库 王华
然后导入access
再设置er-win模式。就行了
㈥ 学生表、课程表,学生课程关系表中怎么修改学生id信息
问题1:原学生表中没有学号是1的??,如果没有可以改
update student set Stuid=1 where Stuid=(select stuid from card where score=100 and cid=(select cid from course where cmane='物理')) and sname='张三'
这个表改后card 表里相专应的张三的数据就与student表里不相符属了.
delete from student where Stuid in (select stuid from card where score<60 and cid=(select cid from course where cname='英语'))
同样的删除数据后,找不到对应的student表里的
这种结构的表之间应该还有外键关联
像你这么改要乱套的
㈦ 跪求大神帮帮忙!!!有一个【学生选修课】数据库,数据库中包括三个表,学生表,课程表,成绩表
//自己把中文替换成英文字段名 我用的sql server数据库
select 学号、姓名、性别、年龄、所在系 from 学生 order by 年龄 desc, 学号 asc
select 学号,姓名 from 学生 where 姓名 in( select 姓名 from 学生 group by 姓名 having count(*)>1 )
update 成绩 set 成绩=0 where CNO=1
如果/不是除法的话 只是字符串 (除法暂时有问题)下班了 明天再来写
select C.课程号,D.课程名,D.成绩 from COURSE C,(
select CONVERT(VARCHAR(50),A.排名)+'/'+CONVERT(VARCHAR(50),B.ZS) as '排名/人数',a.学号,a.课程名,a.成绩 FROM (
select ROW_NUMBER() over(partition BY 课程名 order by 成绩 desc) as 排名 ,* from GRADE where 学号='1') A,
(SELECT COUNT(*) as zs,课程名
FROM GRADE group by 课程名 ) B where a.课程名=b.课程名) D WHERE C.课程名=D.课程名
㈧ 要设计一个学生课程管理数据库,包含3个关系分别是:学生表Student、课程表Cors
1.SELECT COUNT(DISTINCT(学号)) FROM SC 2.SELECT 姓名 FROM S,SC WHERE S.学号=SC.学号 AND S.学号=1号 3.SELECT S.学号,姓名,课程名,成绩 FROM S,SC,C WHERE S.学号=SC.学号 AND SC.课程号=C.课程 AND 课程号=1号 4.SELECT S.学号,姓名 FROM S,SC WHERE S.学号=SC.学号 AND SC.课程=‘人工智能’ 5.SELECT MAX(成绩) FROM S,SC WHERE S.学号=SC.学号 AND S.学号=1号 6.SELECT 学号,姓名 FROM S WHERE SUBSTRING(姓名,3,2)=’月’ 7.SELECT 课程号,COUNT(*) FROM C,SC WHERE C.课程号=SC.课程号 8.SELECT S.学号,姓名 FROM S,SC,C WHERE S.学号=SC.学号 AND SC.课程号=C.课程号 AND C.成绩>80 9.SELECT DISTINCT(省区) FROM S WHERE S.系别=‘物理’ 10.SELECT * FROM S ORDER BY 系别 ASC,年龄 DSC 11.SELECT AVG(成绩 ) FROM C WHERE 课程号=2号 12.SELECT 学号,姓名 FROM S WHERE SUBSTRING(姓名,3,2)=’阳’
㈨ 学生表、课程表,学生课程关系表问题
create trigger stu_trig
on card
for insert
as
declare @e int
begin
if exists(select @e = s.stuidfrom card as c,student as s,course as u where u.cname = '物理' and c.score = 100 and s.sname = '张三')
update student set stuid = 1 where stuid = @e
end
写了1个,不知道正确与否.另1个须加分!
㈩ 2、已知关系模式:学生表S(Sno,Sname,Sage,Sdept),课程表C(Cno,Cname,Ccredit),学生选课表SC(Sno,Cno,sco
(1)关系代复数:π制学号(σ 课程='003'(SC));
SQL语言:SELECT Sno FROM SC WHERE Cno=‘003’;
(2)关系代数不好实现
SQL语言:select a.sno,b.cno,b.score from s a,sc b where a.sno=b.sno and a.sname='李四' ;