数据库相关知识

1、数据库是一个结构化的数据集合;

2、数据环境是对象,关系是数据环境中的对象;


3、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是:需求分析

4、在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是:需求分析


5、在表结构中,逻辑型、日期型、备注型字段的宽度分别固定为:184

6、数据库系统的三级模式分别为:概念级模式、内部级模式与外部级模式。

7、关系模型的数据操纵即是建立在关系上的数据操纵,一般有查询、增加、删除和修改四种操作。

8、下列函数中函数值为字符型的是___B___。 

        ADATE() BTIME() CYEAR() DDATETIME()


9、索引类似于书的目录,主要用于提高查询效率,也就是按条件查询的时候,先查询索引,再通过索引找到相关的数据,索引相当于记录了对某个关键词,指定到不同的文件,或者文件里的不同位置的结构;

    索引会降低数据更新的效率,当插入、修改、删除时会引起索引结构的更新。

10、游标用于定位结果集的行。通过判断全局变量@@FETCH_STATUS可以判断其是否到了最后。通常此变量不等于0表示出错或到了最后。

11、用一条SQL语句 查询出每门课都大于80分的学生姓名  

name   kecheng   score 
张三     语文           81
张三     数学           75
李四     语文           76
李四     数学           90
王五     语文           81
王五     数学           100
王五     英语           90

解答:select distinct name 

              from score  

              where  name not in (select distinct name from score where score<=80)

12、

select S.S#, SNAME
from S, SC
where S.S# = SC.S# AND C# = 'C2';

这个语句执行时,要先对from 后的基本表S 和SC 做笛卡尔积操作,然后再做等值连接(S.S# = SC.S#)、选择(C# = ‘C2’)和投影等操作。由于S# 在S 和SC 中都出现,因此引用时需要注上基本表名,如S.S#、SC.S# 等。

13、字符串的匹配操作中,通配符

百分号(%)表示与零个或多个字符组成的字符串匹配;

下划线(_)表示与单个字符匹配。

--查询姓“李”的老师的个数; 
  select count(distinct(Tname)) 
  from Teacher 
  where Tname like '李%';         --条件表达式中字符串的匹配操作符是like

14、关键码(key,键)由一个或多个属性组成。

       主键(primary key):用户选作元组标识的候选键称为主键。一般如不加说明,键是指主键。

       外键(foreign key):如果模式R中属性K是其他模式的主键,那么K在模式R中称为外键。

       超键(super key):在关系中能唯一标识元组的属性或属性集称为关系模式的超键。

       候选键(candidate key):不含有多余属性的超键称为候选键。也就是在候选键中,如再删除属性,就不是键了。

15、 (1)数据库系统由五部分组成:硬件、数据库集合、数据库管理系统及相关软件、数据库管理员(DBA)、用户

DBS包括DB和DBMS);

        (2)DBMS是位于用户和操作系统之间的数据库管理系统,是属于OS(Operation System )支持下的系统文件;

        (3)关系模型中的“关系”是指具有相关性,但非从属性的平行的数据之间按照某种序列排列的集合关系;

        (4)关系数据库中所谓的“关系”是指:数据库模型符合一定条件的二维表格式;

        (5)记录:表中的每一行称为一条记录,也称元组

                字段:二维表中的一列

                数据项:也称为分量,是每个记录中的一个字段值

                字段的值域:字段的取值范围,也称为属性

        (6)在Access中,一般关系都为一对多的关系;

        




经典例题:

Student(S#,Sname,Sage,Ssex)   学生表       

S#:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别

 

Course(C#,Cname,T#)     课程表                    

C#,课程编号;Cname:课程名字;T#:教师编号

 

SC(S#,C#,score)      成绩表                             

S#:学号;C#,课程编号;score:成绩

 

Teacher(T#,Tname)     教师表                        

T#:教师编号; Tname:教师名字

1、查询平均成绩大于60分的同学的学号和平均成绩; 

    select S#,avg(score) 
    from sc 
    group by S# having avg(score) >60;

2、查询姓“李”的老师的个数; 

  select count(distinct(Tname)) 
  from Teacher 
  where Tname like '李%';

3、查询没学过“叶平”老师课的同学的学号、姓名; 

    select Student.S#,Student.Sname 
    from Student  
    where S# not in (select distinct( SC.S#) from SC,Course,Teacher where  SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');

4、查询所有课程成绩小于60分的同学的学号、姓名; 

  select S#,Sname 
  from Student 
  where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);

5、删除学习“叶平”老师课的SC表记录; 

    Delect SC 
    from course ,Teacher  
    where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';

6、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名; 

    select S# from SC where C# in (select C# from SC where S#='1002') 
    group by S# having count(*)=(select count(*) from SC where S#='1002');

7、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩; 

    update SC set score=(select avg(SC_2.score) 
    from SC SC_2 
    where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');

    原文作者:数据库基础
    原文地址: https://my.oschina.net/u/580523/blog/327209
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞