数据库管理系统及其应用开发环境的创建使用

合集下载

MySQL数据库原理及应用(第2版)(微课版)-习题答案

MySQL数据库原理及应用(第2版)(微课版)-习题答案

MySQL数据库原理及应⽤(第2版)(微课版)-习题答案习题答案项⽬1 习题答案12.填空题(1)物理数据独⽴性(2)数据库管理系统((DBMS)(3)现实世界、信息世界、数据世界(4)码(5)⼀对⼀(1:1)、⼀对多(1:n)、多对多(m:n)(6)概念数据模型 E-R模型(7)逻辑数据物理数据(8)DBMS(数据库管理系统) DBA(数据库管理员)(9)关系的参照(10)θ3.简答题(1)数据模型是对现实世界的数据特征进⾏的抽象,来描述数据库的结构与语义。

数据模型的三要素是:数据结构、数据操作、数据约束条件。

(2)逻辑数据独⽴性:当模式改变时(如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变。

因⽽应⽤程序不必修改,保证了数据与程序的逻辑独⽴性,简称逻辑数据独⽴性。

物理数据独⽴性:当数据库的存储结构改变了(如选⽤了另⼀种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以保证模式保持不变,因⽽应⽤程序也不必改变。

保证了数据与程序的物理独⽴性,简称物理数据独⽴性特定的应⽤程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构相独⽴。

不同的应⽤程序可以共⽤同⼀外模式。

数据库的两级映像保证了数据库外模式的稳定性,从⽽从底层保证了应⽤程序的稳定性,使得数据库系统具有数据与程序的独⽴性。

(3)数据库系统由计算机硬件、数据库、数据库管理系统(及其开发⼯具)、数据库应⽤系统、数据库⽤户构成。

(4)DBA的职责是对使⽤中的数据库进⾏整体维护和改进,负责数据库系统的正常运⾏,是数据库系统的专职管理和维护⼈员。

系统分析员负责应⽤系统的需求分析和规范说明,要和⽤户及DBA结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。

数据库设计⼈员负责数据库中数据的确定、数据库各级模式的设计。

应⽤程序开发⼈员负责设计和编写应⽤程序的程序模块,并进⾏测试和安装。

《数据库技术及应用》课程标准

《数据库技术及应用》课程标准

计算机系课程标准数据库技术及应用课程标准课程名称:数据库技术及应用课程代码:适用专业:计算机软件技术学时:60 学分:4开课学期:第一部分前言1、课程性质与地位本课程是软件技术专业的一门核心课程、专业必修课程,也是计算机应用技术专业和网络技术专业的选修课程。

本课程的功能是使学生掌握大型数据库SQL Server/Oracle的构架、组件和安全性方面的知识,具备一定的大型数据库开发基础,掌握大型数据库的管理和实现方法,培养学生在大型数据库分析、设计、使用、维护和管理等方面的能力。

学好本课程可为将来从事数据库管理、软件开发等工作提供所必须的知识和技能基础。

2、课程的基本理念通过实际信息系统项目的文档及分析设计结果体会数据库系统的概念即开发过程;通过项目实做理解数据库应用系统分析的原理与工具,获取需求分析、系统设计的经验;综合应用面向对象技术、数据库设计与技术完成系统功能,为掌握中小型数据库系统开发与数据库管理奠定基础。

3、课程标准的设计思路计算机软件技术专业学生的职业范围之一是计算机系统管理人员,而数据库管理则是计算机系统管理人员必备的技能。

计算机系统管理员必须掌握数据库的安全管理和数据库的备份与还原,能够对数据库进行简单操作,能读懂创建数据库对象的代码。

计算机应用技术专业和软件技术专业都以SQL Server数据库为前序课程,学习Oracle数据库为更深入的学习、使用、维护管理数据库,为数据库应用系统的开发打下坚实的基础。

数据库应用系统的开发需要掌握数据库的分析设计方法、数据库和数据表的创建、数据查询、数据库其他对象(视图、存储过程、触发器、包等)的合理应用,同时还需要了解数据库的安全管理以及数据库的备份与还原。

本课程是依据上述三个专业的“工作任务与职业能力分析表”中的相关任务领域而设置的。

把典型的工作任务转化为课程的学习性的任务,按照职业活动工作顺序将课程所对应的理论知识和实践知识进行合理有效的整合,构建以工作体系为基础的课程内容体系,完成“行动领域”到“学习领域”的转化,以数据库应用开发为主线,以具体项目(任务)为载体,每个项目(任务)都包括实践知识、理论知识,每个项目(任务)都是一些具体的行动化学习任务,课程的安排围绕学习性的任务而展开,从而完成“学习领域”到“学习情境”的转化。

实验1数据库的创建与管理

实验1数据库的创建与管理

实验1 数据库的创建与管理1.1 实验目的(1)掌握开发环境的基本功能和使用方法。

(2)掌握数据库的建立方法。

(3)掌握图形界面下的数据表设计方法。

(4)掌握数据表记录的“增删改查”方法。

(5)掌握数据库的导入导出方法。

1.2 实验内容与步骤1.2.1 建立数据库启动MS SQL SERVER 2005,并建立学生管理数据库,文件名为学生自己姓名首字母的缩写,如张大千同学缩写为ZDQ。

设置库的大小50M,日志文件大小25M的新数据库。

1.2.2数据表的设计参照教材P50页的要求逻辑设计表,为自己实现以下3个表:学生表:Student(Sno, Sname, Ssex, Sage, Sdept);课程表:Course(Cno, Cname, Credit, Semester);学生选课表:SC(Sno, Cno, Grade)设计要求:(1) 定义关系模式(包括表名,属性名,属性类型及长度);(2) 定义表的主码及外码。

1.2.3 数据表记录的“增删改查”操作至少输入学生记录10条、系别4个、课程10个,便于后续实验的数据操纵、视图设计和数据控制处理。

数据库还原:数据库备份:实验2 数据操纵 2.1 实验目的(1)掌握SQL语言中数据查询和数据更新的语句(2)掌握SQL语言中数据更新的语句(3)掌握使用SQL语句进行视图的定义的方法2.2 实验步骤2.2.1使用SQL语句完成数据查询完成教材第五章例1到例82的例题题目选出40个进行实验,并把相应的命令语句写入实验报告。

对例45、例51(两种方法(自连接、子查询))以及外连接的操作在实验报告中给出运行结果。

2.2.2 使用SQL语句完成数据更新完成教材第五章5.2节的例题中的40个,并把相应的命令语句写入实验报告并给出运行结果。

1.SELECT Sname,Sage FROM StudentSELECT Sname,Sno,Sdept FROM StudentSELECT * FROM StudentSELECT Sname,2014-Sage FROM StudentSELECT Sname,Sage FROM StudentWHERE Sage<216.SELECTStudent.Sno,Student.Sname,Student.Ssex,Student.Sage,Student.Sdept,SC. Grade FROM Student INNER JOIN SCON Student .Sno=SC.SnoSELECT Sname,Sdept,Sage FROM StudentWHERE Sage BETWEEN 20 AND 23SELECT Sname,Ssex FROM StudentWHERE Sdept IN('xinxi','tongxin','shuxue')SELECT*FROM StudentWHERE Sname LIKE'a%'SELECT*FROM StudentWHERE Sname LIKE'[abc]%'11.SELECT*FROM StudentWHERE Sname LIKE'_[1]%'SELECT*FROM StudentWHERE Sname NOT LIKE'[ab]%'SELECT Sname,Sdept FROM Student JOIN SC ON Student.Sno=SC.SnoWHERE Student.Sno NOT IN(SELECT Sno FROM SCWHERE Cno ='a001')SELECT DISTINCT Sname,Sdept FROM Student JOIN SC ON Student.Sno=SC.Sno WHERE Student.Sno IN(SELECT Sno FROM SCWHERE Cno ='100')SELECT Sname,Sdept,Grade AS'tiyu'FROM Student JOIN SC ONStudent.Sno=SC.Sno JOIN Course ON o=oWHERE Cname ='tiyu'AND Grade >(SELECT AVG(Grade)FROM SC JOIN Course ON o=oWHERE Cname='tiyu')16.SELECT Sname,Sdept FROM StudentWHERE Sdept IN(SELECT Sdept FROM StudentWHERE Sname ='a1')AND Sname !='a1'SELECT Sno,AVG(Grade)FROM SCGROUP BY SnoHAVING AVG(Grade)>(SELECT AVG(Grade)FROM SC)SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROMStudent JOIN SC ON Student.Sno=SC.SnoSELECT Sname,Sage FROM StudentWHERE Sdept ='shuxue'AND Sage=(SELECT MAX(Sage)FROM Student)SELECT Sno,Grade FROM SCWHERE Cno ='100'AND Grade>(SELECT AVG(Grade)FROM SC)21.SELECT COUNT(*)'选课门数',AVG(Grade)'平均成绩'FROM SCWHERE Sno IN(SELECT Sno FROM SC JOIN Course ON o=oWHERE Cname='shujuku')GROUP BY SnoSELECT Sno,Sname FROM StudentWHERE Sno IN(SELECT Sno FROM SC JOIN Course ON o=oWHERE Cname ='shujuku')SELECT Sname,Ssex FROM StudentWHERE Sdept ='xinxi'AND Sno IN(SELECT Sno FROM SCWHERE Cno ='100')SELECT Student.Sno,Sname FROM Student JOIN SC ON Student.Sno=SC.Sno WHERE Grade >=90SELECT*FROM StudentWHERE Sdept IN(SELECT Sdept FROM StudentWHERE Sname ='a1')AND Sname !='a1'26.SELECT TOP 2 WITH TIES Cno,COUNT(*)'人数'FROM SCGROUP BY CnoORDER BY COUNT(*)ASCSELECT TOP 3 WITH TIES Sname,Sdept,Grade FROM Student JOIN SC ON Student.Sno=SC.Sno JOIN Course ON o=oWHERE Cname ='shujuku'ORDER BY Grade DESCSELECT TOP 3 WITH TIES Sname,Sage,Sdept FROM StudentORDER BY Sage DESCSELECT COUNT(*)FROM Student JOIN SC ON Student.Sno=SC.SnoWHERE Sdept ='xinxi'GROUP BY Student.SnoORDER BY COUNT(*)DESCSELECT Student.Sno,COUNT(o)FROM Student LEFT JOIN SC ON Student.Sno=SC.SnoWHERE Sdept ='xinxi'GROUP BY Student.SnoORDER BY COUNT(o)DESC31. SELECT Sname,Ssex FROM Student LEFT JOIN SC ON Student.Sno=SC.Sno WHERE Sdept ='xinxi'AND Cno IS NULLSELECT Cname FROM SC RIGHT JOIN Course ON o=oWHERE Sno IS NULLSELECT Student.Sno,Sname,o,Grade FROM SC RIGHT JOIN Student ON SC.Sno=Student.SnoSELECT Cname,Credit FROM CourseWHERE Credit =(SELECT Credit From CourseWHERE Cname ='gaoshu')AND Cname !='gaoshu'SELECT Sdept,AVG(Grade)FROM SC JOIN Student ON SC.Sno=Student.Sno GROUP BY Sdept36. SELECT Sname,Sdept FROM Student JOIN SC ON Student.Sno=SC.Sno JOIN Course ON o=oWHERE Cname='shujuku'SELECT Sname,Sdept FROM Student JOIN SC ON Student.Sno=SC.Sno JOIN Course ON o=oWHERE Cname='shujuku'AND Sdept ='xinxi'SELECT Sname,Cno,Grade FROM Student JOIN SC ON Student.Sno=SC.Sno WHERE Sdept ='xinxi'SELECT Sdept,COUNT(*)FROM StudentWHERE Sage <=20GROUP BY Sdept40.SELECT Sno,COUNT(*)FROM SCGROUP BY SnoHAVING COUNT(*)>=2。

《数据库技术及应用》课程教学大纲精选全文

《数据库技术及应用》课程教学大纲精选全文

可编辑修改精选全文完整版《数据库技术及应用》课程教学大纲一、课程简介本课程是计算机类专业必修的专业课程。

关系数据库是当今数据库技术的主流,本课程以关系数据库为核心,全面概述了数据库系统的基本概念、基本原理和基本技术。

内容覆盖了数据管理技术的进展和特点、数据库系统的组成、数据库的三级模式结构、数据模型的组成和分类、关系模型、SQL语言(含数据库完整性的实现)、索引和视图、数据库安全性、事务的并发控制和恢复、规范化设计理论、ER模型和数据库设计等。

面对21世纪互联网应用所产生的海量数据和巨大点击量,关系型数据库技术显得有些力不从心,这助推了更注重大数据存储和高并发交互响应的NoSQL数据库技术的诞生。

本课程概要介绍NoSQL数据库技术的概念与特点、存储模式、基本操作和应用场景。

数据库技术是信息处理技术中的核心和关键技术,也是一切信息系统的基础。

本课程采用基本理论与实际应用相结合的原则,在注重理论性、系统性和科学性的同时,结合目前最流行的数据库管理系统(SQL Server 2014和MongoDB)对照讲述数据库的基本技术与应用。

通过Python数据处理技术的学习,训练运用数据库技术解决实际应用问题的知识、素质和能力,为后继课程的学习和今后的工作奠定重要基础。

二、课程目标1、掌握数据库技术的基本概念、原理、方法和技术;2、掌握SQL语言查询和编程的基本技术,具备SQL语言编程能力;3、掌握一个典型的RDBMS(如SQL Server)数据库安全性管理、事务并发控制以及数据库备份和恢复的基本技能;4、掌握关系数据库规范化设计理论和ER模型基本方法,具备独立思考设计数据库的能力;5、初步掌握使用Python语言连接SQL Server数据库的方法,培养学生应用数据库技术解决实际问题的思维方法与基本能力;6、初步掌握自主学习方法,能够阅读并理解数据库相关文献,不断拓展知识面,更新知识结构,从而了解数据库技术的最新发展。

数据库应用系统的开发

数据库应用系统的开发

18
11.2.1 数据库的连接方式
数据提供器用于建立数据源与数据集之间的联系,它能连接各种类型的数据,并能按 要求将数据源中的数据提供给数据集,或者从数据集向数据源返回编辑后ห้องสมุดไป่ตู้数据。
2
11.1.1 软件定义
2.软件需求信息获取 ① 考察现场或跟班作业,了解现场业务流程。 ② 进行市场调查。 ③ 访问用户和应用领域的专家。 ④ 查阅与原应用系统或应用环境有关的记录。 3.用户需求的描述方法 描述用户需求传统的方法大多采用结构化的分析方法(Structured Analysis,SA), 即按应用部门的组织结构,对系统内部的数据流进行分析,逐层细化,用数据流程图 (Data Flow Diagram,DFD)描述数据在系统中的流动和处理,并建立相应的数据字典 (Data Dictionary,DD)。 ① 数据流程图使用的主要符号如图11.1所示。
4
图11.2 学生选课系统需求分析的顶层数据流程图
5
11.1.1 软件定义
② 数据字典的主要内容。 ● 数据项:包括数据项名、类型、长度等。 ● 数据结构:反映了数据之间的组合关系,包括数据结构名、含 义说明及定义。 ● 数据流:数据流是数据在系统内传输的路径,包括数据流名、 说明、数据的源和目标等。 ● 数据存储:是数据停留或保存的地方,包括数据存储名、说明 等。 ● 处理过程:主要包括:过程名、输入参数、输出参数、说明等。
10
11.1.2 软件开发
编码阶段应注意遵循编程标准、养成良好的编程风格,以便编写出正确的便于理解、 调试和维护的程序模块。 编码与单元测试的阶段性成果:通过单元测试的各功能模块的集合、详细的单元测试 报告等文档。 4.组装测试 根据概要设计提供的软件结构、各功能模块的说明和组装测试计划,将数据加载到数 据库中,对经过单元测试检验的模块按照某种选定的策略逐步进行组装和测试,检验应用 系统在正确性、功能完备性、容错能力、性能指标等方面是否满足设计要求。 阶段性成果:① 满足概要设计要求的详细设计报告;② 可运行的软件系统和源程序 清单;③ 组装测试报告等文档。 5.验收测试 又称为确认调试,主要任务:按照验收测试计划对软件系统进行测试,检验其是否达 到了需求规格说明中定义的全部功能和性能等方面的需求。 阶段性成果:验收测试报告、项目开发总结报告、软件系统、源程序清单、用户操作 手册等文档资料。 最后,由专家、用户负责人、软件开发和管理人员组成软件评审小组对软件验收测试 报告、测试结果和应用软件系统进行评审,通过后,软件产品正式通过验收,可以交付用 户使用。

dbms

dbms
编辑本段数据库管理系统(DBMS)的主要功能
DBMS的主要目标是使数据作为一种可管理的资源来处理,其主要功能如下: 1.数据定义:DBMS提供数据定义语言,供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。 2.数据操作:DBMS提供数据操作语言,供用户实现对数据的操作。 3.数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。 4.数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。 5.数据库的保护:数据库中的数据是信息社会的战略资源,随数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。 6.数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能,这些功能分别由各个使用程序来完成。 7.通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。
DBMS
数据库管理系统(database management system)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。

《数据库管理与应用(MSSQL)》课程标准

《数据库管理与应用(MSSQL)》课程标准

《数据库管理与应用(MSSQL)》课程标准本课程是软件技术专业的一门实践性很强的专业基础课。

培养学生数据库的开发、管理和维护能力,为从事数据库应用开发、系统管理和维护奠定基础。

前导课程:《c语言程序设计》后续课程:《JavaWeb程序设计》、《C#程序设计》、《ASP。

NET程序设计》二、课程目标通过本课程的学习,使学生了解大型数据库的基本概念,能创建和管理数据库及其对象,掌握数据库程序设计的基本思想和方法,培养学生对SQLSerVer数据库进行日常管理与维护的技能,为数据库的开发、应用与维护打下基础。

(一)知识目标1.了解SQLServer的基本概念和结构;2.掌握数据库设计基本知识;3.掌握解数据库及其对象的创建方法;4.掌握Transact—SQL语言的编程知识;5.掌握数据库日常维护和管理方法;6.掌握基本的数据库综合应用开发的方法。

(二)能力目标1.1.能安装和配置SQLSerVer数据库管理系统;2.具有设计符合规范的数据库的能力;3.能熟练创建和管理数据库及数据库对象,并实施数据完整性;4.具备良好的数据库编程能力;5.具备数据库日常维护、管理及程序的纠错能力;6.具备基本的数据库综合应用开发能力。

(三)素质目标1.具有规范的编程风格和习惯;2.具有良好的分析问题和解决问题的能力以及技术文档写作、沟通和团队协作能力;3.具有科学、严谨的工作态度,良好的敬业精神和创新精神;4.培养学生自主学习的能力,具有终身学习的精神和和可持续发展能力。

(四)其他目标通过课程学习,为以下职业技能证书的考试打下良好基础。

1.微软MCDBA;2.微软认证技术专家MCTS(SQLServer)<,三、课程内容与要求根据课程目标所要求掌握的知识、能力和职业素质,课程内容及要求如下:31《数据库管理与应用》内容及要求四、教学资源要求(一)教材选用原则教材应充分体现培养学生的职业能力,以“教、学、做”为一体组织课程内容,注重理论与实践相结合、教材内容与行业标准要求相结合,强调理论在实践过程中的应用。

Oracle课件 第1章

Oracle课件 第1章
指出实例中SGA可用的最大内存量。如果该参数未设置, 而memory_target或memory_max_target参数已设置,实 例将把sga_max_size设置为二者中值较大的一个
实例后台进程
实例的后台进程共同实现对Oracle数据库的管理功能,每 个后台进程只完成一项单一的任务,主要后台进程包括: 数据库写入进程(DBWR):负责将SGA数据库缓冲区 缓存中的脏数据块写入数据文件。DBWR在下面条件下执 行写入操作:服务器进程找不到足够数量的可用干净缓冲 区,或者数据库系统执行检查点时。一个实例可启动的 DBWR数量由初始化参数DB_WRITER_PROCESSES指 定; 日志写入进程(LGWR):负责把日志缓冲区内的重做 日志写入联机重做日志文件; 归档进程(ARCH):发生日志文件切换时,如果数据 库运行在归档模式下,归档进程将把填写过的联机重做日 志文件复制到指定位置进行归档 ;
Oracle数据库中的其它文件
除以上三种Oracle数据库文件之外,Oracle数据库管理系 统在管理数据库时还使用其它一些辅助文件,其中包括 : 参数文件:记录Oracle数据库的初始化参数设置,如实 例使用的内存量、控制文件的数量及其存储路径等。它相 当于实例的属性文件,实例启动时首先打开并读取它; 口令文件:用于存储被授予SYSDBA、SYSOPER和 SYSASM权限的数据库用户及口令,以便在数据库还未打 开时用于验证具有这些特殊权限的数据库管理员的身份 ; 警告日志文件:这是一个文本文件,其名称是 alertdb_name.log(db_name是数据库名),它相当于一 个数据库的“编年体”日志,按照时间的先后顺序完整记 录从数据库创建开始,直到删除之前发生的重大事项,如 可能出现的内部错误或警告,数据库的启动与关闭操作, 表空间的创建、联机和脱机操作等信息;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号:姓名:EMAIL: 学院:专业:《数据库应用实践》实验一:数据库管理系统及其应用开发环境的创建使用实验目的:了解数据库应用开发环境的建立与使用;掌握SQL 语言的使用;通过实践理解关系数据模型的相关概念;掌握数据库应用开发环境的使用;掌握创建、删除数据库的方法;掌握创建基本表、查看表属性、修改属性的方法;掌握向表中添加、删除以及修改数据的方法;掌握查询分析器的使用方法;掌握SELECT 语句在单表查询中的应用;掌握复杂查询、多表查询的方法;掌握视图的使用方法;巩固数据库的基础知识。

实验环境:操作系统: windows 8.1 64 bits数据库管理系统:Microsoft SQL Server 2008实验内容:1.应用背景及设计的数据库名。

a)应用背景:学生选课管理系统,一门课可以由多个老师教授,一个老师可以教多门课程,一个学生可以选修多门课程,一门可以有多个学生选修b)数据库名:mrsunday2. 所设计的各张表结构说明,各表之间关系图说明。

表结构说明:创建4张表,Student表存储学生信息,Teacher表存储教师信息,Course 表存储课程信息,SC表存储学生选课信息及选课成绩。

数据库各表之间关系图说明:3. 依据前面实验一实验内容(2),(3)的要求,写出实现相应操作的SQL 语句并给出运行结果的截图。

(2) 以下内容使用SQL 语句完成:1、设计一个应用场景,创建符合该应用需求的应用数据库。

代码:create database mrsudnay;截图:2、在该数据库中创建至少4 个相互关联的基本表,并设置主键、外键、自定义完整性约束(非空、唯一、默认值、check)。

代码:1)Student 表create table Student(Sno char(20)primary key,Sname char(20)not NULL,Ssex char(2)default'男',Sage smallint not NULL check(Sage between 0 and 90),Sdept char(20)not NULL );2)Teacher表create table Teacher (Tno char(10)primary key,Tname char(20)not NULL,Tsex char(2)default'男',Tage smallint not NULL check(Tage between 20 and 60),Sdept char(20)not NULL);3)Course表create table Course (Cno char(5)primary key,Cname char(20)not NULL,Cpno char(5)NULL,-- Cpno是先修课Ccredit smallint not NULL,foreign key (Cpno)references Course(Cno) );4)SC 表create table SC (Sno char(20),Cno char(5),Tno char(10),Grade smallint check(Grade between 0 and 100),primary key (Sno,Cno,Tno),foreign key (Sno)references Student(Sno),foreign key (Cno)references Course(Cno),foreign key (Tno)references Teacher(Tno) );截图:3、维护基本表的结构。

1)在Student表Ssex列增加完整性约束代码:alter table Student add constraint Ssex_ID check(Ssex in('男','女'));修改前为:修改后为:4、创建并查看索引对象。

代码:create unique index SCno on SC(Sno ASC,Cno ASC,Tno DESC);截图:5、向表中录入若干数据,并维护表中数据。

1) Student表insert into Student values('031302428','mrsunday','男',19,'CS');insert into Student values('031302427','XJ','男', 20,'CS');insert into Student values('031302429','ahaha','男', 20,'CS');insert into Student values('031302426','qdl','男', 21,'CS');2) Teacher表insert into Teacher values('00001','aaa','男','40','CS');insert into Teacher values('00002','bbb','男','41','CS');insert into Teacher values('00003','ccc','男','42','CS');3) Course表insert into Course values('001','Chinese',NULL,'2');insert into Course values('002','database',NULL','3');insert into Course values('003','C Language',NULL,'3');insert into Course values('004','data Struct','003','4');4) SC表insert into SC values('031302426','002','00002','89');insert into SC values('031302427','004','00003','78');insert into SC values('031302428','001','00001','70');insert into SC values('031302429','004','00003','97');5) 维护表中数据项:将Teacher表中所有老师的年龄都增加1岁update Teacherset Tage=Tage+ 1;(3)数据库查询,视图使用在创建的表中自行设计实现以下查询:1、单表查询。

1)查询学生姓名为‘mrsunday’学号,姓名,年龄,所属院系select Sno,Ssex,Sage,Sdept from Student where Sname='mrsunday';2)查询全体学生信息select*from Student;2、多表连接查询并排序输出。

1)查询大于19岁的学生及其选修课程的情况,以学号大小降序输出。

select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Tno,Grade from Student,SCwhere Student.Sno=SC.Sno and Sage> 19order by Sno DESC;2)查询每个学生的学号、姓名、选修课程以及选修成绩。

select Student.Sno,Sname,Cname,Gradefrom Student,SC,Coursewhere Student.Sno=SC.Sno and o=o;3、使用聚集函数的查询。

查询选修004号课程的学生成绩中的最高成绩。

select MAX(Grade) 最高成绩from SCwhere Cno='004';4、分组查询。

查询每门课程的课程编号及其选修人数。

select Cno,COUNT(Sno)选修人数from SCgroup by Cno;5、嵌套查询。

查询与mrsunday同系的所有学生的信息。

select*from Studentwhere Sdept in(select Sdeptfrom Studentwhere Sname='mrsunday');6、创建并查询视图。

1) 创建系为CS的学生视图。

create view CS_Studentasselect Sno,Sname,Ssex,Sagefrom Studentwhere Sdept='CS'with check option;2) 在系为CS的学生视图中查找年龄不小于20的学生学号、姓名、年龄。

select Sno,Sname,Sagefrom CS_Studentwhere Sage>= 20;4.实验小结:(对本次实验有何体会与收获)在这次实验中学会了使用创建数据库,为SQL Server 语言有了一定的了解,其中遇到不少困难,比如安装Microsoft SQL Server 2008 时无法连接本地数据库,在网上看了许多教程才搞好。

查看数据库关系图时,无法直接创建,需要一个授权指令ALTER AUTHORIZATION ON database:: mrsunday TO sa,其后才能创建。

此外创建数据库的时候肯定不可能考虑周全,在表的完整性约束总会有错误或者不合理,开始时不知道怎么搞,从开始的直接删除所有表再重新创建表格到后来可以直接用SQL语句来修改,也算是自己进步的体现。

相关文档
最新文档