精华内容
下载资源
问答
  • 常见经典关系模式及查询之学生选课模式关系模式描述:红色为主键S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师...

    常见经典关系模式及查询之学生选课模式

    关系模式描述:红色为主键

    S (SNO,SNAME          学生关系。SNO 为学号,SNAME 为姓名
    C (CNO,CNAME,CTEACHER)  
    课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
    SC(SNO,CNO,SCGRADE)     
    选课关系。SCGRADE 为成绩

    建表语句:

    create table S

    (

      SNO   VARCHAR2(3),

      SNAME VARCHAR2(10)

    );

    insert into S (SNO, SNAME) values ('1', '赵一');

    insert into S (SNO, SNAME) values ('2', '钱二');

    insert into S (SNO, SNAME) values ('3', '孙三');

    insert into S (SNO, SNAME) values ('4', '李四');

    insert into S (SNO, SNAME) values ('5', '王五');

    insert into S (SNO, SNAME) values ('6', '张六');

    create table C

    (

      CNO      VARCHAR2(3),

      CNAME    VARCHAR2(30),

      CTEACHER VARCHAR2(10)

    );

    insert into C (CNO, CNAME, CTEACHER) values ('1', '语文', '语文老师');

    insert into C (CNO, CNAME, CTEACHER) values ('2', '数学', '数学老师');

    insert into C (CNO, CNAME, CTEACHER) values ('3', '英语', '英语老师');

    insert into C (CNO, CNAME, CTEACHER) values ('4', '历史', '历史老师');

    insert into C (CNO, CNAME, CTEACHER) values ('5', '地理', '地理老师');

    insert into C (CNO, CNAME, CTEACHER) values ('6', '生物', '生物老师');

    create table SC

    (

      SNO     VARCHAR2(3),

      CNO     VARCHAR2(3),

      SCGRADE NUMBER

    );

    insert into SC (SNO, CNO, SCGRADE) values ('1', '1', 11);

    insert into SC (SNO, CNO, SCGRADE) values ('1', '2', 12);

    insert into SC (SNO, CNO, SCGRADE) values ('1', '3', 13);

    insert into SC (SNO, CNO, SCGRADE) values ('1', '4', 14);

    insert into SC (SNO, CNO, SCGRADE) values ('1', '5', 15);

    insert into SC (SNO, CNO, SCGRADE) values ('1', '6', 16);

    insert into SC (SNO, CNO, SCGRADE) values ('2', '1', 21);

    insert into SC (SNO, CNO, SCGRADE) values ('2', '2', 22);

    insert into SC (SNO, CNO, SCGRADE) values ('2', '3', 23);

    insert into SC (SNO, CNO, SCGRADE) values ('3', '4', 34);

    insert into SC (SNO, CNO, SCGRADE) values ('3', '5', 35);

    insert into SC (SNO, CNO, SCGRADE) values ('3', '6', 36);

    insert into SC (SNO, CNO, SCGRADE) values ('4', '1', 41);

    insert into SC (SNO, CNO, SCGRADE) values ('4', '2', 42);

    insert into SC (SNO, CNO, SCGRADE) values ('5', '3', 53);

    insert into SC (SNO, CNO, SCGRADE) values ('5', '4', 54);

     

    1.    找出没有选修过语文老师老师讲授课程的所有学生姓名

    正确写法一:
    SELECT S.SNAME
    FROM S
    WHERE NOT EXISTS
          (SELECT * FROM SC,C
           WHERE SC.CNO=C.CNO
           AND SC.SNO=S.SNO
           AND C.CTEACHER='
    语文老师')

    正确写法二:
    SELECT S.SNAME
    FROM S
    WHERE SNO NOT IN
          (SELECT SNO
           FROM SC,C
           WHERE SC.CNO=C.CNO
           AND C.CTEACHER='
    语文老师')

    不推荐,如果子查询中有null值,结果将是错误的。

    错误写法一:
    SELECT  S.SNO,S.SNAME
    FROM S,C,SC
    WHERE SC.CNO=C.CNO
    AND SC.SNO=S.SNO
    AND C.CTEACHER<>
    '语文老师'
    ORDER BY S.SNO

    错误分析:这条语句是错误的,错在将sc表与c表做连接,这样做的结果就是会将sc表的所有记录都取出,即使这个学生选了所有的课程,仍然会被选出,因为数学老师也不是语文老师

    错误写法二:
    SELECT S.SNAME
    FROM S
    WHERE SNO IN
          (SELECT SNO FROM SC,C
           WHERE SC.CNO=C.CNO
           AND C.CTEACHER<>
    '语文老师')

    错误分析同上

    2.    列出有二门以上(含两门)课程低于40分的学生姓名及其平均成绩

    正确写法一:
    SELECT S.SNAME,A.SCORE
    FROM
    (SELECT SNO,AVG(SC.SCGRADE) AS SCORE FROM SC
     WHERE SCGRADE<40
     GROUP BY SNO
     HAVING COUNT(*)>=2)A,S
    WHERE A.SNO=S.SNO

    使用子查询

    正确写法二:
    SELECT S.SNAME,AVG(SC.SCGRADE) FROM SC, S
    WHERE SC.SCGRADE<40
    AND S.SNO = SC.SNO
    GROUP BY S.SNAME
    HAVING COUNT(*)>=2

    不使用子查询的写法

    正确写法三:
    SELECT S.SNO,S.SNAME,AVG(SC.SCGRADE)
    FROM S,SC,(
        SELECT SNO
        FROM SC
        WHERE SCGRADE<40
        GROUP BY SNO
        HAVING COUNT(DISTINCT CNO)>=2
    )A WHERE S.SNO=A.SNO AND SC.SNO=A.SNO
    GROUP BY S.SNO,S.SNAME

    个人不是很推荐这种写法,觉得效率低了点,但是网上很多答案都是这个,关于效率下次讨论

    3.    列出既学过语文课,又学过数学课的所有学生姓名

    正确写法一:
    SELECT SNAME
    FROM
    (SELECT SC.SNO
     FROM C,SC
     WHERE SC.CNO=C.CNO
     AND C.CNAME IN('
    语文’,’数学’)
     GROUP BY SC.SNO
     HAVING COUNT(*)=2)A,S
    WHERE A.SNO=S.SNO

    使用子查询

    正确写法二:
    SELECT S.SNAME
     FROM C,SC, S
     WHERE SC.CNO=C.CNO AND SC.SNO = S.SNO
     AND C.CNAME IN('
    语文’,’数学')
     GROUP BY S.SNAME
     HAVING COUNT( * ) =2

    不使用子查询

    4.    列出1号课比2号课成绩低的所有学生的姓名及1号课和2号课的成绩

    正确写法一:
    SELECT SNAME,T.SCORE1,T.SCORE2
    FROM
    (SELECT A.SNO,A.SCGRADE AS SCORE1,B.SCGRADE AS SCORE2
     FROM SC A,SC B
     WHERE A.SNO=B.SNO
     AND A.CNO='1'
     AND B.CNO='2'
     AND A.SCGRADE<B.SCGRADE)T,S
    WHERE T.SNO=S.SNO

    使用子查询

    正确写法二:
    SELECT S.SNAME,A.SCGRADE,B.SCGRADE
    FROM S,SC A,SC B
    WHERE S.SNO=A.SNO
    AND S.SNO=B.SNO
    AND A.CNO='1'
    AND B.CNO='2'
    AND A.SCGRADE<B.SCGRADE

    不使用子查询

    5.    列出选修了所有课程的学生的姓名

    正确写法一:
    SELECT
    S.SNAME
    FROM SC,S
    WHERE S.SNO=SC.SNO
    GROUP BY S.SNAME
    HAVING COUNT(*)=(SELECT COUNT(*) FROM C)

     

    展开全文
  • 已知关系模式S(Sno,Sname,Sclass),C(Cno,Cname,Cteacher),SC(Sno,Cno,Scgrade)。其中,S学生关系:Sno学号, Sname姓名,Sclass班级; C为课程关系:Cno课程号, Cname课程名, Cteacher任课教师;SC为学生选课...

    题目:

    你会书写下列查询吗?

    已知关系模式:S(Sno,Sname,Sclass),C(Cno,Cname,Cteacher),SC(Sno,Cno,Scgrade)。其中,S为学生关系:Sno学号, Sname姓名,Sclass班级; C为课程关系:Cno课程号, Cname课程名, Cteacher任课教师;SC为学生选课关系:Scgrade成绩。
    你能书写出下列SQL语句吗?

    (1)找出学过“赵华”老师讲授课程的所有学生;

    SELECT DISTINCT SNO
    FROM C,SC
    WHERE CTEACHER='赵华'
    AND SC.CNO=C.CNO
    

    (2)找出没学过“赵华”老师讲授课程的所有学生。

    SELECT SNO
    FROM S
    WHERE SNO NOT IN (SELECT DISTINCT SNO FROM C,SC WHERE CTEACHER = '赵华' ADN SC.CNO=C.CNO)
    
    展开全文
  • 已知关系模式S(Sno,Sname,Sclass),C(Cno,Cname,Cteacher),SC(Sno,Cno,Scgrade)。其中,S学生关系:Sno学号, Sname姓名,Sclass班级; C为课程关系:Cno课程号, Cname课程名, Cteacher任课教师;SC为学生选课...

    题目

    下列查询结果是什么?
    已知关系模式:S(Sno,Sname,Sclass),C(Cno,Cname,Cteacher),SC(Sno,Cno,Scgrade)。其中,S为学生关系:Sno学号, Sname姓名,Sclass班级; C为课程关系:Cno课程号, Cname课程名, Cteacher任课教师;SC为学生选课关系:Scgrade成绩。
    下列查询的结果是什么?
    (1)SELECT * FROM SC WHERE Cno= ‘C01’ and Cno= ‘C02’;
    (2)SELECT Sno FROM SC WHERE Scgrade<60 and count(*)>2;
    (3)SELECT Sno, Avg(Scgrade) FROM SC WHERE Scgrade<60 Group by Sno;

    请试着回答一下,并分享你的观点。

    (1)
    没有结果。SQL查询语句的意思是同时满足课程号为C01和C02的学生。属性相同不能用and,而是应该用嵌套查询。
    (2)
    SQL查询语句的意思是满足成绩小于60,且课程数大于2的学号。条件语句中不能用聚合函数。
    (3)
    有结果。SQL查询语句的意思是查询成绩小于60的平均成绩和学号,并按照学号进行排列。
    改:

    SELECT studentNo,Avg(score)
    FROM Score
    WHERE score<60
    Group by studentNo
    
    展开全文
  • 学生关系SS#,SNAME,AGE,SEX) 课程关系C(C#,CNAME, TEACHER) 学习关系SC(S#,C#, GRADE) 你能书写出下列SQL语句吗?(Exists子查询) 找出学全了“程军”老师讲授课程的所有学生; 答案 找出学全了“程军...

    摘要:微信搜索【三桥君
    数据库系统原理】专栏里有数据库相关的知识点解析、例题分析、笔记和教程等。

    题目

    设有一个数据库中有三个关系:
    学生关系S(S#,SNAME,AGE,SEX)
    课程关系C(C#,CNAME, TEACHER)
    学习关系SC(S#,C#, GRADE)
    在这里插入图片描述
    你能书写出下列SQL语句吗?(Exists子查询)
    找出学全了“程军”老师讲授课程的所有学生;

    答案

    找出学全了“程军”老师讲授课程的所有学生;

    
    SELECT SNAME 
    FROM S
    WHERE NOT EXISTS(SELECT* FROM C 
                    WHERE TEACHER = '程军' 
                    AND NOT EXISTS (
                                    SELECT*  
                                    FROM SC 
                                    WHRER S.S#=SC.S# 
                                    AND C.C# = SC.C#)
                    )
    

    文章整理不易,有帮助请点赞关注支持,谢谢!微信搜索【三桥君 】,回复【关注】有我准备的一份资源大礼包。后续持续更新~~~

    展开全文
  • 设有一个 Student 数据库,包括 数据库,包括 学生 , 课程 , 选修三个关系: 三个关系: 学生 学生:S ( Sno ,Sname ,Ssex ,Sage...其中:学生关系 S 的属性分别表示:学号、姓名、性别、 的属性分别表示:学号...
  • 数据库 - 关系模式函数依赖

    千次阅读 2015-05-07 09:09:45
    关系数据库逻辑设计 ...关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映象集合 F: 属性间数据的
  • 关系模式的分解与范式

    万次阅读 多人点赞 2017-05-08 16:40:26
    1. 为什么要研究数据库关系模式的分解? 答:因为现有的模式可能会存在一些数据增删改的弊端,比如说:数据冗余太大,更新异常,插入异常,删除异常。因此为了完善数据库的增删改查的功能,需要寻找一种等价的关系...
  • 关系模式候选码

    千次阅读 2016-05-18 15:00:01
    已知关系模式和函数依赖求候选码
  • 设有关系模式W(C,P,S,G,T,R)其中各个属性的含义是:C课程,P教师,S学生,G成绩,T实践,R教室,根据定义有如下依赖集D={C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R},W的最高化规范程度达到_____. 解答: ①求候选...
  • 关系模式的范式

    千次阅读 2016-02-20 19:02:49
    关系模式的范式  主要有4种范式,1NF,2NF,3NF,BCNF,按从左至右的顺序一种比一种要求更严格。要符合某一种范式必须也满足它前边的所有范式。一般项目的数据库设计达到3NF就可以了,而且可根据具体情况适当增加...
  • 关系模式的函数依赖

    千次阅读 2016-05-06 13:59:57
    再论关系与关系模式 回顾关系与关系模式这两个概念的联系和区别。关系:元组的集合,笛卡尔积的一个子集,其实质是一张二维表,表的每一行为一个元组。关系模式:对元组中数据组织方式的结构性描述,其实质是删去...
  • 关系模式及其范式

    千次阅读 2011-06-15 08:46:00
    关系的描述称为关系模式(Relation Schema)。一个关系模式应当是一个五元组。它可以形式化地表示为:R(U, D, DOM, F)。其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的...
  • 数据库关系模式规范化

    千次阅读 2014-05-18 19:39:58
    在教学中,大多实例都是主键...如:学生关系模式S1(学号,姓名,系号,系名,系地址) (学号)为关键字,因是单属性关键字,不存在部份依赖问题,应属于第二范式。但因为:学号—>系号,系号—\>学号,系号—>系地址
  • 关系模式,函数依赖,范式

    千次阅读 2013-10-13 21:50:51
    关系数据库,关系数据库的基本结构是关系模式,比较好的关系模式集合,能有效控制数据库冗余,对数据库进行有效的管理。下面对关系模式的函数依赖,范式和模式设计方法进行分析。...例如:关系模式R(S#,C#,CName
  • 要求:请安装Kingbase数据库软件,在数据库软件中创建一个自己名字的模式,在该模式下创建学生关系数据表、课程表、选课表。 插入一些数据,尝试查询、更新、删除 二、相关原理与知识 (完成实验所用到的相关原理...
  • 如何求关系模式的候选码

    千次阅读 多人点赞 2020-06-27 19:44:47
    对于给定的关系模式R(A,A1,A2,…,An)和函数依赖集F,可以把属性分为以下四类 L类:仅出现在F中的函数依赖左边的左部属性 R类:仅出现在F的函数依赖右边右部属性 N类:在F的函数依赖左右边均未出现的属性 LR类...
  • 由于对关系型数据库有所了解
  • 学生S,课程表C,学生课程表SC

    千次阅读 2019-03-04 16:14:34
    面试题,有三张表,学生S,课程表C,学生课程表SC,学生可以选修多门课程,一门课程可能被多个学生选修,通过SC表关联。 (1)写出建表以及插入语句; (2)写出SQL语句,查询选修了所有选修课程的学生; (3)写...
  • 字生关系SS#,SNAME,AGE,SEX) 课程关系C(C#,CNAME,TEACHER) 学习关系SC(s#,C#,GRADE) 你能书写出下列SQL语句吗? 1)找出学过“程军”老师讲课程的所有学生; 2)找出没学过“程军”老师讲授课程的...
  • C#之设计模式中UML类图四种关系的代码体现

    千次阅读 热门讨论 2015-02-16 08:53:57
    在《大话设计模式》的学习过程中,起初对于每个模式的类图不是很在意,通过代码去理解模式的含义,经历了向别人请教的阶段之后,才发现UML类图在设计模式中重要的地位,即代码中类与类之间的关系往往在UML类图中已经...
  • 关系模式规范化(上)

    千次阅读 2013-03-19 13:45:11
    最近在学习数据库过程中,...选择,除法,元组关系演算等等,没有介绍如何合理设计一个数据库,可是如果作为一个数据库designer,必须了解如何设计与简化数据库,这都是数据模式规范化的内容。 如果不考虑数据库规范化
  • 关系模式的设计问题 数据依赖 数据依赖对关系模式的影响 数据的函数依赖 函数依赖 依赖的逻辑内涵 函数依赖和码(关键字)的联系 *最小函数依赖集 ...
  • 学生管理系统的几个设计模式

    千次阅读 2016-12-27 16:34:44
    本次学生管理系统,主要采用的是使用MVC模式,单例模式,和过滤链模式进行整个项目的设计以及数据库的设计。 下面简单介绍下,经过这次项目对这几种设计模式的了解。 一、MVC设计模式 首先,先介绍下MVC设计。MVC...
  • 一、范式 关系模式满足的确定约束条件称为范式,根据满足约束条件的级别不同, 范式由低到高分为1NF,2NF,3NF,BCNF,4NF,5NF等。 
  • JAVA当中有23种设计模式,解决某一问题最有效的方法单例设计模式 解决一个类在内存中只存在一个对象 想要保证对象唯一该怎么做》1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他...
  • Laravel五大功能之Eloquent关系模式

    万次阅读 2014-04-23 17:08:07
    Query Builder之上的,所以Eloquent类和Fluent类是一样的,能实现复杂的SQL语句和非常直观表达出的表与表之间的关系 ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,792
精华内容 13,916
关键字:

学生关系模式s