十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
静轩图书信息管理系统---摘 要
泗水ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。其能够完成对图书的添加、删除、借阅、归还和对读者的管理等功能的操作。经过分析,使用 Microsoft�0�8
Visual Basic 6.0为开发工具,利用其提供的各种面向对象的可视化开发平台作为开发工具,采用面向对象技术,图形化的应用开发环境,尤其是它有一个功能极其强大的集成环境提供给开发人员,使得开发人员可通过菜单、界面、图形浏览工具、对话框以及嵌入的各种生成器来轻松地完成各种复杂的操作。并且,方便的界面制作,可以节省更多的时间来研发后台的程序代码及数据库。数据库选用Access,其存储方式单一,都存放在后缀为(.mdb)的数据库文件中,界面友好易于操作管理。开发过程中不断修正和改进,直到形成满意的可行系统。
关键词: VB程序设计、图书管理系统、信息管理系统(MIS)、数据库、Visual Basic6.0、面向对象(Object)、图书管理。
网络即时通信系统是为用户开发研制的,用户是系统的最终使用者和评价者,所以在网络通信系统的开发设计的过程中,我们树立了从用户的寻求出发,面向用户,一切为了用户的观念,在分析与设计系统的前期,为了保证系统的功能的完善多次寻求周围同学和老师的意见,了解他们的要求,依照功能完善,界面美观,操作简单的原则进行设计 。
严格按阶段进行
系统的开发设计是一项较大的工程,所以应该将整个系统的开发设计过程划分为若干阶段,相应的阶段又要分为若干个不同的步骤,每个阶段和步骤都要有明确的工作任务和目标。这种有序的组织安排,条例清楚、层次分明,便于计划的制定和控制,并且为后续工作的进行奠定了坚实的基础,提高了工作效率和质量。
采用系统的观点处理
在系统分析阶段,在对原系统进行全面调查和分析的基础上,构造系统的最佳逻辑模型,使用户对将来完整系统的轮廓有个初步的了解和认识,以便及时和用户进行交流和探讨,不断提高系统的完善性。在此基础上进行系统的物理实现和设计,切实完成逻辑模型的具体功能。逻辑设计和物理实现二者是相辅相成、密不可分的,这样使系统的设计更加稳妥合理。
整个系统的设计主要采用快速原形法
快速原形法是信息系统设计的一个重要方法。它是根据用户提出的需求,由用户和开发者共同确定系统的基本要求和主要功能,并在一个较短的时间内建立一个实验性的、简单的信息系统模型,通过用户不断提出的意见和建议,对模型进行不断的修改和完善,直到用户比较满意为止,以便形成一个相对稳定、较为理想的管理信息系统。该方法的主要优点。
1.脉络清楚,所有问题都围绕一个模型展开,使彼此之间联系紧密。
2.有助于发现用户需求,通过对原形和用户接触,能够启发开发人员去挖掘问题,从而不断的修正、完善,最终得到一个理想的系统。
3.系统开发效率高,此方法的开发周期短、使用灵活、容易修改,这对于管理体制不够稳定的系统更加适合。
4.系统的可扩展性好,由于此方法是在原型应用中不断发展完善和修改的,所以有较强的扩展性。
在进行代码设计时,遵循了以下原则。
唯一性:在本系统中,每一个代码都和系统中的每一个对象唯一确定。
标准性:主要体现在对程序文件名命名和对数据文件命名的标准化上,遵循简单扼要,方便适用的原则。一目了然,无重复现象。为了系统维护人员便于进行系统维护,使用了统一的标准。
合理性:系统中代码设计与编码对象的分类相适应,以使代码对编码对象的分类据有标志作用。
简单性:在设计过程中采用Code-Behind代码分离,使数据库操作代码和前端调用代码分离,页面修改容易。
适应性:在代码设计过程中,代码反映了编码对象的特点,便于识别和记忆,使系统维护人员容易了解和掌握,便于进行维护工作。
系统总体功能结构
网络通信系统包含以下主要功能。
用户注册;用户登录;
查找好友;查看好友资料;
添加好友;
删除好友;
发送消息;
发送文件.
数据库表主要用来存放用户的注册信息和用户的好友资料,可利用两张数据库表来 存放用户信息和用户好友的资料。包括用户的号码,昵称,密码,在线与否,ip地址,资料,头像号,性别,E-mail和籍贯等信息。其中,用户昵称和密码是必需的字段;在线与否是由系统自动设置的;其余的信息是可选的字段。
课题整体以JAVA为平台,采用Eclipse开发工具,并使用SQL Server 2000管理数据库数据开发而成的基于Socket的集中式网络通信系统,系统采用客户机/服务器(C/S)的模式设计,是一个三层C/S结构,数据库服务器、应用程序服务器端 、应用程序客户端。系统采用C/S结构,可以将任务合理分配到客户机端和服务器端 ,从而降低了系统的通信开销。
客户层。
客户层是应用程序的用户接口部分,它担负着用户与应用间的对话功能,用于检查用户的输入数据,显示应用的输出数据,为了直观的进行操作,客户层需要使用图形用户接口,若聊天用户变更,系统只需改写显示控制和数据检查程序即可,而不会影响其他两层。
服务层。(功能层)
服务层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。在应用设计中,必须避免在表示层和功能层之间进行多次的数据交换,这就需要尽可能进行一次性的业务处理达到优化整体设计的目的。
数据层
数据层是DBMS,本系统使用了Microsoft 公司的SQL Ssever2000数据库服务器来管理数据。SQL Ssever2000能迅速的执行大量数据的更新和检索,因此,从功能层传送到数
据层的要求一般都使用SQL语言。
2.2需求分析
(1)需求分析的任务
需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,用通俗的话来讲,就是分析了解用户关心什么,用户需要什么样的结果,然后在此基础上分析和设计新系统的数据库。
需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
信息要求
是指用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
处理要求
是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。
安全性与完整性要求
一是指用户对系统和数据有什么安全性要求,如不同级别的用户具有什么操作权限和使用哪些数据;二是对数据的输入和存储的什么要求,如数据的长度和范围、数据的有效性、一致性和唯一性等。
确定用户的最终需求其实是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。另一方面设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。因此设计人员必须与用户不断深入地进行沟通和交流,才能逐步得以确定用户的实际需求。
(2)需求分析的基本步骤
1.调查与初步分析用户的需求,确定系统的功能边界
⑴首先调查组织机构情况
⑵然后调查各部门的业务活动情况
⑶协助用户明确对新系统的各种要求
⑷确定新系统的结构和功能边界,确定哪些功能由计算机完成或将来由计算机完成,哪些活动由人工完成。
常用的调查方法有:
⑴跟班作业
⑵开调查会
⑶请专人介绍
⑷询问
⑸问卷调查
⑹查阅记录
2.生成数据字典
1)数据项条目:数据项是不可再分的数据单位,它直接反映事物的某一特征。
2)数据结构条目:反映了数据之间的组合关系。
3)数据流条目:数据流是数据结构在系统内传输的路径。
4)数据文件条目:数据文件是数据项停留或保存的地方,也是数据流的来源和去向之一。
5)处理过程条目。
(3) 案例分析:教学管理系统数据库的需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询上,这就要求数据库的结构能充分满足各种信息的输出和输入。需求分析阶段主要是收集基本数据,确定数据结构及数据处理的流程,组成一份详尽的数据字典,以便为后面的概念设计和逻辑设计打下基础。
2.3概念结构设计
概念结构设计是对收集来的信息和数据进行分析整理,确定实体、属性及联系,形成独立于计算机的反映用户观点的概念模型。概念设计的重点在于信息结构的设计,它是整个数据库系统设计的关键。
(1)概念结构设计的目标和任务
概念结构设计的目标是产生反映系统信息需求的数据库概念结构,即概念模式。概念结构是独立于DBMS和使用的硬件环境的。在这一阶段,设计人员要从用户的角度看待数据以及数据处理的要求和约束,产生一个反映用户观点的概念模式,然后再把概念模式转换为逻辑模式。
概念模型的表示方法很多,其中最著名、最常用的表示方法为实体-联系方法,这种方法也称为E-R模型方法,该方法采用E-R图描述概念模型。
E-R图提供了表示实体、属性和联系的方法,它由以下三个组件构成:
实体---用矩形表示,矩形框内写明实体名。
属性---用椭圆形表示,并用无向边将其与相应的实体连接起来。
联系---用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。
例如教学管理系统中的学生实体与课程实体的E-R图如下图表示:
(2)概念结构设计的过程
●数据抽象
概念结构是对现实世界的一种抽象,所谓抽象就是对实际的人、事、物和概念进行加工处理,抽取所关心的共同特性,用各种概念精确的加以描述,组成某种模型。
在需求分析中,已初步得到了有关各类实体、实体间的联系以及描述它们性质的数据元素,统称数据对象。
在这一阶段中,首先要从以上数据对象中找出:系统有哪些实体?每个实体有哪些属性?哪些实体间存在联系?每一种联系有哪些属性?然后就可以做出系统的局部E-R模型和全局E-R模型。
● 局部E-R模型设计
局部E-R模型设计是从数据流图出发确定实体和属性,并根据数据流图中表示的对数据的处理、确定实体之间的联系。
设计局部E-R图的步骤是:
1.确定实体类型和属性
实体和属性之间没有严格的区别界限,但对于属性来讲,可以用下面的两条准则作为依据:
1)作为属性必须是不可再分的数据项,也就是属性中不能再包含其他的属性。
2)属性不能与其他实体之间具有联系。
2.确定实体间的联系
依据需求分析结果,考察任意两个实体类型之间是否存在联系,若有,则确定其类型(一对一,一对多或多对多)。
3.画出局部E-R图
确定了实体及实体间的联系后,可用E-R图描述出来。形成局部E-R图之后,还必须返回去征求用户意见,使之如实地反映现实世界,同时还要进一步规范化,以求改进和完善。每个局部E-R图必须满足:
(1)对用户需求是完整的。
(2)所有实体、属性、联系都有惟一的名字。
(3)不允许有异名同义、同名异义的现象。
● 全局E-R模型的设计
各个局部E-R模型建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构,即总E-R图。在合并全局E-R模型时,应注意检查和消除属性、命名的冲突及数据冗余。
(3)案例分析:教学管理系统数据库的概念结构设计
通过上面的需求分析,就可以进行数据库的概念结构设计,先对现实当中的人、事、物和概念进行抽象的加工处理,抽取所关心的共同特性,用各种概念进行描述,从中找出能够满足用户需求的各种实体,以及它们之间的关系,并用实体-联系图表示出来(即画出E-R图),为后面的逻辑结构设计打下基础。
1、确定实体及其属性
经过对人工进行的教学管理系统的业务调查,得知系统主要涉及以下几个实体:
● 学生实体:属性主要包括班级名称、学号、姓名、性别、出生日期、民族、政治面貌、来源地、入学成绩、学生类别、电话、备注等。
● 教师实体:属性主要包括教师号、教师姓名、性别、出生日期、所在系、职称
● 班级实体:属性主要包括系部名称、班级号、班级名称、班主任、学生人数、备注等。
● 系部实体:属性主要包括系号、系部名称、班级数等。
● 课程实体:属性主要包括课程号、课程名、考核方式、学分、学时数等。
2、确定实体之间的联系
2.4 逻辑结构设计
(1)逻辑结构设计的目标和任务
逻辑结构设计的目标就是把概念结构设计阶段设计好的E-R图转换为特定的DBMS所支持的数据模型(即层次、网状、关系模型之一),并对其进行优化。
概念模型向逻辑模型的转换过程分为3步进行:
(1)把概念模型转换为一般的数据模型。
(2)将一般的数据模型转换成特定的DBMS所支持的数据模型。
(3)通过优化方法将其转化为优化的数据模型。
(2) 概念模型转换为一般的关系模型
1.实体的转换规则
将E-R图中的每一个常规实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。
2.实体间联系的转换规则
1)一个1:1联系可以转换为各自独立的关系模式,也可以与任意一端所对应的关系模式合并。
2)一个1 : n联系可以转换为各自独立的关系模式。
3)一个m : n联系转换为一个关系模式。转换的方法为:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合
(3) 案例分析:教学管理系统数据库的逻辑结构设计
逻辑结构设计的任务是把概念结构设计阶段设计好的E-R图转换为特定的DBMS所支持的数据模型(即层次、网状、关系模型之一),并对其进行优化,得到满足用户要求和系统功能需求的关系模式。
1、 E-R模型转换为关系模式
将E-R模型转换成初始关系模式的一般规则是:系统中各个实体转换为对应的关系模式;实体之间多对多的联系也转换为关系模式。
根据转换规则,可以将系部、班级、学生、教师、课程五个实体转换成与之对应的五个关系模式;而将学生与课程两者之间多对多的选修关系以及教师、班级和课程三者之间多对多的开课关系也转换为关系模式。
2、关系模式的设计
根据上述的转换结果,在对关系模式中数据进行规范化处理后,得到了符合第三范式的关系模式如下:
学生:{学号、姓名、性别、出生日期、民族、政治面貌、来源地、入学成绩、学生类别、班级名称、电话、备注}
班级:{班级号、班级名称、班主任、学生人数、系部名称、备注}
系部:{系号、系部名称、班级数}
教师:{教师号、教师姓名、性别、出生日期、所在系、职称}
课程:{课程号、课程名、考核方式、学分、学时数}
选修:{学号、课程号、成绩}
开课: {教师号、班级名称、课程号、开课学期、授课地点}
每个关系模式中带下划线的属性或属性的组合表示主键、带双波浪线的属性表示与之关联的表的外键。
根据系统功能需求,数据采用SQL Server 2000所支持的实际数据模型,也就是数据库的逻辑结构。启动SQL Server 2000,创建一个数据库命名为:jxgl。该数据库中各个数据表的结构如下面各个表格所示。每个表格对应于数据库中的一个表。
3、将关系模式转换为数据库中的表
按照关系数据模型的结构,将关系模式转换为关系数据库中的数据表,转换的规则是:一个关系模式转换为一个数据表,关系模式中的每个属性转换为数据表中的一个列。同时设置表中各个列的名称、数据类型、数据宽度以及数据规则,得到如下几个表:
学生表(student)
列名 类型 宽度 规则
班级名称 CHAR 20 内容取自班级信息表的班级名称
学号 CHAR 10 主键、长度为10个字符
姓名 CHAR 8
性别 CHAR 2 非空、只能取“男”或“女”
出生日期 DATETIME
民族 CHAR 4 假定只能取以下之一:汉、壮、白、回、苗、满、其它
政治面貌 CHAR 4 只能取以下之一:党员、团员、群众
来源地 CHAR 10
入学成绩 INT
学生类别 CHAR 10 假定只能取以下之一:本科、大专(普)、大专(业)、中专、技校、函授、其它
电话 CHAR 11
备注 CHAR 10
注:(1)该表存放全校所有学生的基本信息,每个学生产生一条记录。
(2)学号的前4位表示年级,第5--8位表示班级号(其中第5-6位表示系号, 第7-8位表示系内班级号),最后两位是班内的学生编号,在输入记录内容时应加以区分。
班级表(class)
列名 类型 宽度 规则
系部名称 CHAR 10 非空、内容取自系部信息表的系部名称
班级号 CHAR 4 非空、长度为4个字符
班级名称 CHAR 20 主键
班主任 CHAR 8
学生人数 INT
备注 CHAR 10
注:(1)该表存放全校所有班级的信息,每个班级产生一条记录。
(2)班级号的前2位表示系号,后两位为系内的班级编号,在输入记录内容时应加以区分。
系部表(department)
列名 类型 宽度 规则
系号 CHAR 2 非空、长度为2个字符
系部名称 CHAR 10 主键
班级数 INT
注:该表存放某校所有的系部信息,每个系部产生一条记录。
教师表(teacher)
列名 类型 宽度 规则
教师号 CHAR 4 主键、长度为4个字符
姓名 CHAR 8
性别 CHAR 2 非空、只能取“男”或“女”
出生日期 DATETIME
职称 CHAR 6 只能取以下之一:教授、副教授、讲师、助教、其他
所在系 CHAR 20 非空、外键(内容取自系部表的系部名称)
课程表(course)
列名 类型 宽度 规则
课程号 CHAR 4 主键、长度为4个字符
课程名 CHAR 20
考核方式 CHAR 4 假定只能取以下之一:考试、考查、其他
学分 INT 非空
学时数 INT
注:该表存放某校所有的课程信息,每门课产生一条记录。
成绩表(SC)
列名 类型 宽度 规则
学号 CHAR 8 主键、内容取自学生信息表的学生姓名
课程号 CHAR 20 主键、内容取自课程信息表的课程名称
成绩 INT
注:该表存放某校所有学生的成绩信息,每个学生学习每门课程产生一条记录。
开课信息表(tcc)
列名 类型 宽度 规则
教师号 CHAR 4 主键、内容取自教师信息表的教师号
课程号 CHAR 4 主键、内容取自课程信息表的课程号
班级号 CHAR 4 主键、内容取自班级信息表的班级号
开课学期 CHAR 20
授课地点 CHAR 20
注:该表存放某校开设课程的信息,每个教师教授某个班级的某门课产生一条记录。
2. 5 物理设计
数据库的物理设计目标是在选定的DBMS上建立起逻辑设计结构确立的数据库结构,这一过程也称为数据库的物理实现。它主要包括两项工作:
一是根据数据库的结构、系统的大小、系统需要完成的功能及对系统的性能要求,决定选用哪个数据库管理系统。目前,数据库产品市场上比较好的产品有:Microsoft SQL Server、Oracle、IBM DB/2,SYBASE等。
二是根据选用的数据库管理系统的数据库实现方法来建立用户数据库,即创建所需要的数据库、表及其他数据库对象。
本系统选用的DBMS是SQL Server 2000,并在该系统上创建用户数据库jxgl以及下属的7个用户表:student、class、department、teacher、course、sc、tcc,各个表的结构按2.4节第3点各表给出的具体内容设定。
2. 5 实训二
以小组讨论的形式,完成人事工资管理系统用户数据库的设计,要求个人写出用户数据库设计的文档(包括数据库的需求分析、概念设计、逻辑设计和物理设计,表达方法可参考本章相应内容的案例分析部分),每个小组上交一份本系统用户数据库包括的数据表。
第三章 数据库的数据完整性设计
3.1数据完整性的基本概念及内容
正确创建数据库后,需要考虑数据的完整性、数据的安全性等要求。数据的完整性主要指数据的正确性、有效性、相容性,强制实施数据完整性可以确保数据库中的数据的质量。
进行数据完整性设计主要考虑以下几个方面的内容:
1)表名惟一;
由系统强制实施控制。
2)列名惟一;()
由系统强制实施控制。
3)数据行惟一;
通过设置主键约束或触发器来实施控制。
4)列值非空;
通过设置非空约束来实施控制。
5)列值惟一性
通过设置惟一约束或惟一索引来实施控制。
6)列值满足一定的条件
通过设置检查约束或触发器来实施控制。
7)数据的一致性和有效性
通过设置外键约束或触发器来实施控制。
至于具体要对数据库的哪一个表的哪一项数据进行什么样的数据完整性设计,还应根据用户的需求来考虑和确定。
3.2 数据完整性的分类与实现方法
在SQL Server关系数据库中,数据完整性分为以下三类:
1. 域完整性
域完整性是指一个列的输入有效性,是否允许空值。实现域完整性的方法主要有:限制数据类型(通过设定列的数据类型)、限定格式(通过CHECK约束和规则)或可能值的范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT定义、NOT NULL定义和规则)以及程序控制。
2. 实体完整性
实体完整性是指保证表中所有的行唯一。实现实体完整性的方法主要有:索引、UNIQUE约束、PRIMARY KEY约束或 IDENTITY属性以及程序控制。
3. 参照完整性
参照完整性也叫引用完整性。参照完整性确保主键(被引用表)和外键(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。如student表(称为引用表、参照表或子表)的class_id列就是参照class表(称为被引用表、被参照表或父表)的外键。参照完整性可以实现以下两种控制:
(1)存在外键时,被参照表中的这一行不能被删除,主键值也不能改变 (以student和class表的“班级名称”列为例说明)。
(2)若在被参照表中不存在包含相应主键的行时,一个外键值不能插入参照表中(MsgBox "添加记录成功!", vbOKOnly + vbInformation, "提示"
End Sub
Private Sub Command5_Click()
rs.Close
Unload Me
End Sub
Private Sub Form_Load()
rs.CursorLocation = adUseClient ' 设置在客户端创建游标
rs.CursorType = adOpenKeyset '设置游标类型为键集类型
rs.LockType = adLockOptimistic '设置打开记录集时的锁定类型为乐观锁,在执行UPdate方法前不锁定编辑的数据
rs.Open "select * from teacher", cnn
'在表格上显示class表的记录内容
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
'将表格上的数据与文本框或下拉列表框绑定
Set Text1.DataSource = rs
Text1.DataField = "教师号"
Set Text2.DataSource = rs
Text2.DataField = "姓名"
Set Combo1.DataSource = rs
Combo1.DataField = "所在系"
Set Text3.DataSource = rs
Text3.DataField = "出生日期"
Set Text4.DataSource = rs
Text4.DataField = "从教日期"
Set Combo2.DataSource = rs
Combo2.DataField = "性别"
Set Combo3.DataSource = rs
Combo3.DataField = "职称"
Set Combo4.DataSource = rs
Combo4.DataField = "政治面貌"
Set Combo5.DataSource = rs
Combo5.DataField = "学历"
Set Text7.DataSource = rs
Text7.DataField = "家庭住址"
Set Text5.DataSource = rs
Text5.DataField = "联系电话"
Set Text6.DataSource = rs
Text6.DataField = "备注"
'下拉列表框提供班级名称
Combo1.Clear
rs1.Open "select 系部名称 from department", cnn
While Not rs1.EOF()
Combo1.AddItem Trim(rs1.Fields("系部名称"))
rs1.MoveNext
Wend
rs1.Close
End Sub
对其余几个表的数据进行增、删、改操作的窗体的设计方法与上述类拟。
这么多题目很少有人会去做
建议题主一是花钱买答案
二是把具体题目发出来看看是否有人愿意回答
祝好运,望采纳。
--一、
use master
go
create database jwgl
ON PRIMARY
(--主文件
name='jwgl1',
filename='D:\jwgl\jwgl1.mdf',
size=3MB,
maxsize=10MB,
filegrowth=1MB
),
FILEGROUP jwgl_group
(--次要文件1
name='jwgl2',
filename='D:\jwgl\jwgl2.ndf',
size=3MB,
maxsize=10MB
),
(
name='jwgl3',
filename='D:\jwgl\jwgl3.ndf'
)
log on
(
name='jwgllog1',
filename='D:\jwgl\jwgllog1.ldf',
size=1mb,
maxsize=10mb,
filegrowth=1mb
),
(
name='jwgllog2',
filename='D:\jwgl\jwgllog2.ldf',
size=1mb,
filegrowth=10%
)
--二、
use jwgl
go
--1、(1)
create table xsxx
(
xh char(10) primary key,
xm nvarchar(6),
xb char(2) default '女' check (xb='男' or xb='女'),
nl int,
xib nvarchar(20)
)
--(2)、
create table kcxx
(
kcbh char(10) primary key,
kcmc nvarchar(10),
xf tinyint check (xf0 and xf7)
)
--(3)、
create table xkxx
(
xh char(10),
kcbh char(10),
chj tinyint check(chj=0 and chj=100),
constraint pk_xh_kcbh primary key(xh,kcbh),
FOREIGN KEY(xh) references xsxx(xh),
Foreign key(kcbh) references kcxx(kcbh)
)
--2、
--insert into xsxx
insert into xsxx values('9952101','刘萱','男',23,'软件工程系')
insert into xsxx values('9952102','李宁佳','女',20,'信息系')
insert into xsxx values('9952103','窦洁丽','女',21,'数学系')
insert into xsxx values('9952104','汪紫薇','女',19,'网络系')
insert into xsxx values('9952105','张辉','男',25,'软件工程系')
insert into xsxx values('9952106','贾东','男',26,'信息系')
insert into xsxx values('9952107','周丹丹','女',24,'网络系')
--insert into kcxx
insert into kcxx values('1','网络基础',6)
insert into kcxx values('2','语言程序设计',6)
insert into kcxx values('3','数据库管理',6)
--insert into xkxx
insert into xkxx values('9952101','1',69)
insert into xkxx values('9952101','2',73)
insert into xkxx values('9952101','3',86)
insert into xkxx values('9952102','1',91)
insert into xkxx values('9952103','3',56)
insert into xkxx values('9952104','1',56)
insert into xkxx values('9952104','2',69)
insert into xkxx values('9952105','1',73)
insert into xkxx values('9952106','2',86)
--3、
--(1)
select * from xsxx where xib'软件工程系' and xib'网络系'
--(2)
select xsxx.xh,xm from xsxx inner join xkxx on xsxx.xh=xkxx.xh
where nl=25 and xkxx.chj=60
--(3)
select * from xsxx where xm like '李[^阳]%'
--(4)
select xsxx.xh,xsxx.xm,kcxx.kcmc,xkxx.chj from xkxx inner join xsxx on xkxx.xh=xsxx.xh inner join kcxx on xkxx.kcbh=kcxx.kcbh
where kcxx.kcbh='1' order by xkxx.chj desc
--(5)
select kcxx.kcmc,count(kcxx.kcmc)as 选课人数 from xkxx inner join kcxx on xkxx.kcbh=kcxx.kcbh
group by kcxx.kcmc
--(6)
select xh,xm,xib from xsxx where xh in(select xh from xkxx group by xh having count(xh)=3)
--三、
create unique index index_xm on xsxx(xm)
--四、
--使用表xsxx、xkxx、kcxx,创建视图view_ssc,包含的列为姓名、课程名称、成绩
if exists(select * from sysobjects where name='view_ssc')
drop view view_ssc
go
create view view_ssc
as
select xsxx.xm,kcxx.kcmc,xkxx.chj from xsxx inner join xkxx on xsxx.xh=xkxx.xh inner join kcxx on xkxx.kcbh=kcxx.kcbh
go
select * from view_ssc --测试查询视图
1.select 学号,姓名 from 学生 where 班级='软件041'
2.select * from 课程 where 课程名称 like '%语言%'
3.select 学生.学号,姓名,班级 from 学生 where 学号 in(
select top 5 学号 from 选课 where 课程号 in(
select 课程号 from 课程 where 课程名称='C语言'
) order by 成绩 desc
)
4.select 班级,count(1) 学生人数 from 学生 group by 班级
5.select 学号 from 选课 where 课程号=(
select 课程号 from 课程 where 课程名称='计算机应用基础'
) 成绩(select 成绩 from 选课 where 学号=(select 学号 from 学生 where 姓名='张三') and 课程号=(
select 课程号 from 课程 where 课程名称='计算机应用基础'
)
)