南昌大学数据库实验3
数据库实验三
南昌大学实验报告学生姓名:学号:专业班级:信息管理实验类型:□验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称:表的查询二、实验目的:1.了解查询的概念和方法,掌握查询分析器的使用方法2.掌握select语句的语法和作用3.掌握多表连接的方法,能熟练进行多表操作的复杂检索三、实验基本原理这里写原理或知识背景四、主要仪器设备及耗材相互连成LAN的计算机2台以上,安装有SQL Server 2000软件。
五、实验步骤1.单表查询(1)了解select语句的语法答:select语句一般格式为Select all | distinct 目标列表达式,目标列表达式……From 表名或视图名,表名或视图名……Where 条件表达式Group by 列名1 having 条件表达式Order by 列名2 asc | desc;如果有group by子句,将结果按照列名1 的值进行分组,该属性列值相等的元组为一个组。
如果有group by子句带有having短语,则只有满足条件的组才予以输出。
如果有order by子句,则结果还要按照列名2 的升序降序排列。
(2)输入一些检索数据,进行简单的检索,并使用top,distinct等关键字top关键字Distinct 关键字2.多表查询(1)连接查询等值连接自然连接自身连接多表连接(2)嵌套查询3.视图的建立及使用视图进行检索未完成六、实验数据及处理结果如上七、思考讨论题或体会或对改进实验的建议1.说明多表连接属于自然连接还是等值连接?多表连接既可以是自然连接也可以是等值连接,但是为了结果的简介美观,在设置查询列名的时候会对重复的列明进行制定以防止显示重复,这样就达到了自然连接的效果。
2.遇到的问题及解决的方法3.体会或建议八、参考资料1.《数据库系统实验指导》,单建魁等著,清华大学出版社。
南昌大学操作系统实验报告
南昌大学实验报告---(3)存储管理的模拟实现学生姓名:张晨欣学号:61004011132 专业班级:电Ⅲ114班实验类型:□验证■综合□设计□创新实验日期:实验成绩:一、实验目的存储管理的主要功能之一是合理地分配空间。
请求页式管理是一种常用的虚拟存储管理技术。
本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。
二、实验内容1.过随机数产生一个指令序列,共320条指令。
其地址按下述原则生成:①50%的指令是顺序执行的;②25%的指令是均匀分布在前地址部分;③25%的指令是均匀分布在后地址部分;具体的实施方法是:A.在[0,319]的指令地址之间随机选区一起点M;B.顺序执行一条指令,即执行地址为M+1的指令;C.在前地址[0,M+1]中随机选取一条指令并执行,该指令的地址为M’;D.顺序执行一条指令,其地址为M’+1;E.在后地址[M’+2,319]中随机选取一条指令并执行;F.重复A—E,直到执行320次指令。
2.指令序列变换成页地址流,设:(1)页面大小为1K;(2)用户内存容量为4页到32页;(3)用户虚存容量为32K。
在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条—第9条指令为第0页(对应虚存地址为[0,9]);第10条—第19条指令为第1页(对应虚存地址为[10,19]);。
第310条—第319条指令为第31页(对应虚存地址为[310,319]);按以上方式,用户指令可组成32页。
3.计算并输出下述各种算法在不同内存容量下的命中率。
A.FIFO先进先出的算法B.LRU最近最少使用算法C.LFU最少访问页面算法三、实验要求1、需写出设计说明;2、设计实现代码及说明3、运行结果;四、主要实验步骤1、分析算法结构;2、画出算法的流程图,即设计说明;3、根据画出的流程图使用C语言编写相应的代码(代码过长,放到最后);程序主要由main函数和以下几个函数组成:void initialization();初始化内存数据void FIFO();FIFO先进先出算法;void LRU();LRU最久未使用算法;void LFU();LFU最近最久未使用算法;4、检查代码,将编出的代码编译、链接,验证其正确性。
南昌大学数据库实验报告(5)
一、实验项目名称数据库查询二、实验目的通过实验熟悉掌握数据库查询三、实验基本原理和内容1.查询全部学生的学号,姓名,性别,年龄, 所在系2查询全部学生的学号,姓名3查询全部的系4查询全部课程号,课程名,先行课程号,学分数5查询全部课程号,课程名6查询全部学生学号,课程号,成绩7查询‘CS’的学生的学号,姓名,性别,所在系。
8查询‘男’同学的学生的学号,姓名,性别,所在系。
9查询学分为4的课程号,课程名,先行课程号,学分数10. 查询学号为’6103103011’学生选修的课程的课程号,成绩四、主要仪器设备及耗材PC机一台五、实验步骤创建数据库,分别创建表:CREATE TABLE Student(Sno CHAR(10)PRIMARY KEY,/*主码*/Sname CHAR(20),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,);CREATE TABLE SC(Sno CHAR(10),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),/*主码由两个属性构成*/FOREIGN KEY(Sno)REFERENCES Student(Sno), FOREIGN KEY(Cno)REFERENCES Course(Cno));1.查询全部学生的学号,姓名,性别,年龄, 所在系SELECT Sno,Sname,Ssex,Sage,SdeptFROM Student2查询全部学生的学号,姓名SELECT Sno,SnameFROM Student3查询全部的系SELECT DISTINCT SdeptFROM Student4查询全部课程号,课程名,先行课程号,学分数SELECT Cno,Cname,Cpno,CcreditFROM Course5查询全部课程号,课程名SELECT Cno,CnameFROM Course6查询全部学生学号,课程号,成绩SELECT Sno,Cno,GradeFROM SC7查询‘CS’的学生的学号,姓名,性别,所在系。
南昌大学数据库实验4
南昌大学实验报告学生姓名:王维学号:6100212202 专业班级:网工121班实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验名称实验5 创建和使用视图二、实验目的(1)掌握视图的创建、修改和删除。
(2)掌握使用视图来查询数据。
三、实验内容(1)创建一个仅包含北京客户信息的视图customer_beijing。
(2)通过查询customer_beijing 视图获得北京客户的信息。
(3)修改customer_beijing 视图为仅包含北京客户的信誉等级为1的视图。
(4)删除customer_beijing 视图。
(5)创建一个视图ordersum_goods,其中的内容是每种商品的名称和每种商品的订单金额的总和。
(6)通过查询ordersum_goods 视图,获得每种商品的名称和每种商品的订单金额的总和。
四、实验环境(1)个人计算机。
(2)Windows 7操作系统。
(3)SQL Server 2012数据库管理系统。
五、实验步骤(1)启动企业管理器,在视图设计窗口中建立customer_beijing 视图。
(2)执行customer_beijing 视图并观察结果。
(3)在视图设计窗口中修改customer_beijing 视图。
(4)删除customer_beijing 视图。
(5)创建ordersum_goods 视图。
(6)执行ordersum_goods 视图并观察结果六、实验结果(1)创建一个仅包含北京客户信息的视图customer_beijing。
CREATE VIEW customer_beijing ASSELECT*FROM customerWHERE address='北京'WITH CHECK OPTION(2)通过查询customer_beijing 视图获得北京客户的信息SELECT*FROM customer_beijing(3)修改customer_beijing 视图为仅包含北京客户的信誉等级为1的视图ALTER VIEW customer_beijing ASSELECT*FROM customerWHERE address='北京'AND creditgradeid=1此时再次查询视图customer_beijing(4)删除customer_beijing 视图DROP VIEW customer_beijing此时查询视图customer_beijing会报错(5)创建一个视图ordersum_goods,其中的内容是每种商品的名称和每种商品的订单金额的总和CREATE VIEW ordersum_sum ASSELECT goodsname'商品名称',Sum(orders.ordersum)'总金额'FROM goods,ordersWHERE goods.goodsid=orders.goodsidGROUP BY goodsname(6)通过查询ordersum_goods 视图,获得每种商品的名称和每种商品的订单金额的总和SELECT*FROM ordersum_sum七、总结和感想这个实验比较简单,熟悉了查询语句,再实现视图操作会很容易。
南昌大学数值分析实验报告
实验报告实验课程:数值分析学生名称:学号:专业班级:2012年 6月1日目录一.用样条插值法插值的方法生成字体T、5的轮廓 (3)二.原子弹爆炸的能量估计 (14)三.PageRank算法 (17)南昌大学实验报告一姓名:学号:专业班级:实验类型:□验证□综合■设计□创新实验日期:实验成绩:一、实验目的1、用样条插值的方法生成字体T的轮廓2、C或C++语言用Bezier曲线生成并编写程序二、实验要求1、熟悉三次样条插值有关理论,并能将其运用到实际中,加深对理论知识的理解;2、要求会编程实现Bezier样条曲线,并根据所给数据绘制‘T’的轮廓。
三、主要仪器设备及耗材PC微机Windows 操作系统VS集成开发环境VS0集成开发环境的MSDN四、实验基本原理和内容Times-Roman T的数据X0 Y0 X1 Y1 X2 Y2 X3 Y3 237 620 237 620 237 120 237 120 237 120 237 35 226 24 143 19 143 19 143 19 143 0 143 0 143 0 143 0 435 0 435 0 435 0 435 0 435 19 435 19 435 19 353 23 339 36 339 109 339 109 339 108 339 620 339 620 339 620 507 620 529 602 552 492 552 492 552 492 576 492 576 492 576 492 576 492 570 662 570 662 570 662 570 662 6 662 6 662 6 662 6 662 0 492 0 492 0 492 0 492 24 492 24 492 24 492 48 602 71 620 183 620 183 620 183 620 237 620 237 620Times-Roman 5的数据X0 Y0 X1 Y1 X2 Y2 X3 Y3 149 597 149 597 149 597 345 597 345 597 761 597 365 599 368 606 368 606 406 695 368 606 406 695 406 695 397 702 406 695 397 702 397 702 382 681 372 676 351 676 351 676 351 676 351 676 142 676 142 676 33 439 142 676 33 439 33 439 32 438 32 436 32 434 32 434 32 428 35 426 44 426 44 426 74 426 109 420 149 408 149 408 269 372 324 310 324 208 324 208 324 112 264 37 185 37 185 37 165 37 149 44 119 66 119 66 86 90 65 99 42 99 42 99 14 99 0 87 0 62 0 62 0 24 46 0 121 0 121 0 205 0 282 27 333 78 333 78 378 123 399 180 399 256 399 256 399 327 381 372 333 422 333 422 288 468 232 491 112 512 112 512 112 512 149 597 149 597实验原理:所谓Bezier 曲线,是应用于二维应用程序的数学曲线。
南昌大学数据库实验报告
实验报告实验课程:数据库原理与应用学生姓名:**学号:**********专业班级:信息管理与信息系统131班2015年06月 20 日目录一、实验一实验环境的建立 (3)二、实验二数据库及表的建立 (9)三、实验三表的查询 (12)四、实验四数据操纵 (19)五、实验五数据库完整性、安全性研究 (22)六、实验六简单系统的设计……………………………………南昌大学实验报告学生姓名:学号:专业班级:信息管理实验类型:□验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称:实验环境的建立二、实验目的:1.了解SQL Server 2000常用版本和对操作系统的不同要求2.熟悉SQL Server 2000的基本性能3.正确安装和配置SQL Server 2000三、实验基本原理SQL是结构化查询语言(Structured Query Language)的简称,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
自SQL成为国际标准语言之后,各个数据库厂家纷纷推出各自的SQL软件或与SQL 的接口软件。
这就使大多数数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。
SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate 三家公司共同开发的,于1988 年推出了第一个OS/2 版本。
在Windows NT 推出后,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。
数据库实验报告3
实验名称实验三数据完整性试验,更新数据
一.实验目的
1理解实体完整性、参照完整性、用户自定义完整性的作用
2 特别掌握外码的作用。
掌握insert,update ,delete 语句的使用
二.实验内容
1.实体完整性
2.用户自定义完整性约束
表student 有用户自定义约束:
性别不能为空且取值范围为{男,女}
年龄大于16岁
表course 的自定义约束:
Ccredit 取值范围{ 0 ,1,2,3,4,5 }
课程表的每一行的Cno 与cpno 不可相同
3.参照完整性约束
1.insert
2.update
3.delete
三.实验步骤和结果
create database school
use school
create table Student(
Sno nvarchar (6)primary key,
Sname varchar(8),
Ssex nvarchar(2),
Sage int,
Sdept varchar(15)
)
create table SC(
Sno nvarchar(4)primary key,
Cno nvarchar (6),
Grade decimal (12,1)
)
create table Course(。
【2018最新】数据库、实验报告三 (4000字)-实用word文档 (9页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==数据库、实验报告三 (4000字)云南大学数学与统计学院实验教学中心实验报告(三)一、实验目的1. 学习使用VFP中的“查询/视图设计器”来建立查询和视图,并注意它们的同异。
2. 熟悉VFP中的SQL的查询语句(select—from—where)、与理论课上SQL查询语言的学习相结合并巩固之。
3. 通过练习题(各章末的实习题)为今后数据库应用系统的设计打好基础。
二、实验内容配合教材第四、五章的内容,要求:1.学习和了解第四、五章的基本概念:什么是查询、什么是视图,查询和视图的区别;与原理课上的相关内容(SQL的select语句、视图)进行比较对比,以加深理解。
2.查询的设计与建立? 利用查询向导的方法设计查询;? 利用查询设计器的方法建立查询;? 学会根据问题需要设置查询设计其中的各选卡(字段,筛选,连接,排序,分组等);? 体会查询设计其中的各选卡与SQL的select语句中各短语间的关系。
3.视图的设计与建立? 利用视图向导方法建立视图;? 利用视图设计器方法建立视图;? 学会使用视图设计器中的“更新”选卡进行基本表中的数据更新,并确认实验所作的更新的结果是否进入到基本表;? 体会查询设计器与更新设计器的区别;4.学习VFP中SQL语句,认真思考并理解第五章中的各查询例,并结合理论课内容,掌握好SQL语句的使用,完成第四章和第五章末的实习题要求。
三、实验环境Windows XPVisual Foxpro 6.0四、实验过程(一)实验步骤:1.创建查询① 例4.1 在“世界杯.doc”中查询所有亚洲球队的参赛成绩,并按参赛队名升序输出结果;通过试验初步了解设计器中各选卡的使用。
② 例4.2 “世界杯.doc”中统计各地区球队的夺冠次数;③ 试验查询结果的去向。
南昌大学实验报告火车订票系统数据字典与实体关系图
南昌大学实验报告
学生姓名: 丁金芝 学 号: 6100511080 专业班级: 电子商务111班 实验类型:□验证 □综合 □设计 □创新 实验日期: 2014-4-24实验成绩:
实验三 数据字典与实体关系图
一、数据字典
实验二中已经对火车票售票系统进行了可行性分析和需求分析,并且绘制了
数据流程图,现继续进行分析,实现数据字典的定义,并绘制实体关系图(E-R 图)。
数据字典定义如下:
表1 车次信息数据字典
表2订票信息数据字典
表3用户信息数据字典
二、实体关系图
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据
库结构能充分满足各种信息的输出和输入。
针对火车站网上订票系统,通过对网上订票工作的过程、内容以及数据流程分析,设计如下所示的数据项和数据结构:
1.车次信息包括:车号、出发地、目的地、发车日期、开出时刻、剩余座位数、票价。
2.订票记录包括:订单号、身份证号、车号、订购日期、订购票数、总价。
3.用户信息包括:用户名、身份证号、性别、电话。
E-R图如下图所示:。
南昌大学计算机数据库实验二 数据库和表的操作
SQL Server2005实验指导书实验二数据库和表的操作一.实验目的:1.了解数据库的结构特点、领会数据库中三种类型的文件特点2.学会创建和管理数据库的方法3.了解SQL SERVER的基本数据类型4.了解表结构的特点,学会创建和管理表的方法5.学会使用T-SQL语句创建和管理表二、实验学时2学时三、实验要求1.了解SQL Server数据库结构;2.熟练使用Management Studio或者2000系统下的企业管理器多种方式设计和创建及编辑数据库;3.熟练进行数据库分离附加操作;4.独立完成实验内容,并提交书面实验报告。
四、实验内容1.设计和创建数据库,及管理数据库2.设计和创建数据表,及表基本操作一插入数据。
五、实验步骤内容一:数据库的设计与创建数据库分析1.创建用于学生信息分析的数据库,名称为“学生信息”。
2.主数据文件“学生信息_data”,物理存储路径为”e:\个人目录\学生信息_data.mdf”,初始大小为3mb,最大容量为10mb,递增量为1mb,文件组为primary 文件组。
3.事物日志文件“学生信息_log”,物理存储路径为”e:\个人目录\学生信息_log.ldf”,初始大小为2mb,最大容量为5mb,递增量为10%。
内容二:数据库的管理1.利用sp_helpdb查看数据库“学生信息”的信息。
2.将创建的数据库改名为“学生情况”。
3.通过sql语句做如下修改:(1)主数据文件的容量为4mb,最大容量为20mb,递增量为2mb (2)事务日志文件容量为2mb,最大容量为10mb,递增量为1mb. 4.收缩数据库“学生情况”的容量内容三:设计与管理表1.通过sql语句创建表1“学生”,并保存结果。
表结构如下:2.通过sql语句创建表2“学期成绩”,标结构如下:3.创建表3“课程注册”,表结构如下:4.用sql语句在“学生”表中添加一格“备注”字段并保存结果5. 用sql语句将“学生”表中“专业”字段数据类型改为varchar,长度为30并保存结果6. 用sql语句删除“学生成绩”表中的“备注”字段并保存结果内容四:表的基本操作1.向学生表中添加信息。
南昌大学计算机数据库实验五 数据完整性
实验五数据完整性(2学时)学号:6100410235 姓名:郑俊班级:计科103班实验日期:2012-11-22 1.实验目的(1)掌握SQL Server管理平台和Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。
(2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。
(3)掌握SQL Server管理平台和Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。
(4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。
(5)掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。
2.实验内容(1)为学生情况数据库中学生表的创建一个规则stu_s_rule,限制“学号”列所输入的数据为4位0~9的数字。
use[学生情况]gocreate rule stu_s_ruleas@学号between 0000 and 9999(2)创建一个规则stusex_rule,将其绑定到学生表的“性别”列上,保证输入的性别值只能是“男”或“女”。
use[学生情况]gocreate rule stusex_ruleas@性别in('男','女')(3)使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。
sp_help stusex_rulesp_helptext stusex_ruleuse[学生情况]gosp_rename'stusex_rule','stu_s_rule'(4)删除stu_s_rule规则。
南昌大学数据结构实验报告(队列)
PC 微机 DOS 操作系统或 Windows 操作系统 Turbo C 程序集成环境或 Visual C++ 程序集成环境
五、实验步骤
//建立一个队列的功能 1.输入的形式和输入值的范围:输入若干正整数,用空格分隔,用 0 来表示 结束。 2.输出的形式:按输入顺序输出。 3.测试数据:输入 5 2 3 6 9 0 后,输出 5 2 3 6 9
③从队列中删除元素。 ④输出队列中的所有元素。 注意 每完成一个步骤就必须及时输出队列中元素,以便观察操作结果。 (3)编写环型队列的基本操作函数。 #define MAXSIZE 100 //最大队列长度,最多只能插入 MAXSIZE-1 个数据 typedef struct {
int *base; //初始化的动态分配存储空间 int front; //头指针,若队列不为空,指向队列头元素 int rear; //为指针,若队列不为空,指向队列尾元素的下一个位置 }SqQueue; ①进队操作,返回 1 为队满 EnQueue(SqQueue &Q, int e) ②出队操作,返回 1 为队空 DeQueue(SqQueue &Q, int &e) ③输出队列中元素 OutputQueue(SqQueue &Q) (4)调用上述函数实现下列操作,操作步骤如下: ①调用进队函数建立一个队列。 ②读取队列中的第一个元素。 ③从队列中删除元素。 ④输出队列中的所有元素。 注意 每完成一个步骤就必须及时输出队列中元素,以便观察操作号:6103115017 专业班级: 计科 151 班
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2017.4.26 实验成绩:
一、实验目的
南昌大学数据结构实验
目录实验1:线性表及其应用............................................................................................... 实验2:栈....................................................................................................................... 实验3:队列................................................................................................................... 实验4:稀疏矩阵...........................................................................................................实验1:线性表及其应用一、实验目的帮助学生掌握线性表的基本操作在顺序和链表这两种存储结构上的实现,尤以链表的操作和应用作为重点。
二、问题描述1. 构造一个空的线性表L。
2.在线性表L的第i个元素之前插入新的元素e;3.在线性表L中删除第i个元素,并用e返回其值。
三、实验要求1、分别利用顺序和链表存储结构实现线性表的存储,并设计出在不同的存储结构中线性表的基本操作算法。
2、在实验过程中,对相同的操作在不同的存储结构下的时间复杂度和空间复杂度进行分析。
四、实验环境PC微机DOS操作系统或Windows 操作系统Turbo C 程序集成环境或Visual C++ 程序集成环境五、实验代码#ifndef SQLIST_H#define SQLIST_H#include"D:\李雪刚\非循环单链表\SqList.h"#endiftemplate<typename ElemType>class MySqList:public SqList<ElemType>{public:void Random();void display();void kai_1(MySqList<ElemType>& Sql);void kai_2(MySqList<ElemType>& Sql);void kai_3(MySqList<ElemType>& Sql);MySqList(ElemType *p,int nsize);};//输出线性表template <typename ElemType>void MySqList<ElemType>::display(){int i;int n=getLength();printf("此时的线性表为\n");for(i=1;i<=n;i++)cout<<" "<<"["<<" "<<i<<"]";cout<<endl;for(i=0;i<n;i++)cout<<" "<<elem[i];cout<<endl;}//删除第i个元素template <typename ElemType>void kai_1(MySqList<ElemType>& Sql){cout<<"************* 删除第i个元素*****************"<<endl;int i;int e;cout<<"请输入要删去的序号:";cin>>i;Sql.deleteElem(i,e);Sql.display();}//取第i个元素template <typename ElemType>void kai_2(MySqList<ElemType>& Sql){cout<<"***************** 取第i个元素*******************"<<endl;int i;int e;cout<<"请输入要取的数的序号:";cin>>i;Sql.getElem(i,e);cout<<"["<<i<<"]"<<endl;cout<<e<<endl;}//在第i个元素前插入一个元素template <typename ElemType>void kai_3(MySqList<ElemType>& Sql){cout<<"***** 在第i个元素前插入一个元素*****"<<endl;int i;int e;cout<<"插入前一个元素的序号:";cin>>i;cout<<"要插入的元素:";cin>>e;Sql.insert(i,e);Sql.display();}template <typename ElemType>MySqList<ElemType>::MySqList(ElemType *p,int nsize){elem=new ElemType[LIST_MAX_SIZE];assert(elem!=0);n=nsize;for(int i=0;i<n;i++)elem[i]=p[i];}#include <iostream>using namespace std;#ifndef MYSQLIST_H#define MYSQLIST_H#include"D:\李雪刚\非循环单链表\MySqList.h"#endifvoid main(){int data1[]={36,45,23,11};MySqList<int>Sql(data1,sizeof(data1)/sizeof(int));Sql.display();kai_1(Sql);kai_2(Sql);kai_3(Sql);}六、实验结果七、实验感想由于这个线性表是第一个实验,刚开始的时候,就只是输入书上面的基类程序,后面觉得摸不着头脑,特别是派生类和主程序的编写,感觉一头雾水的。
南昌大学数据结构C++实验报告(任燕)
实验报告实验课程:数据结构C++语言的描述学生姓名:学号:专业班级:年月日目录实验一顺序表 (2)实验二非循环单链表 (17)实验三链队 (33)实验四排序 (43)南昌大学实验报告---(1)顺序表学生姓名:学号:专业班级:实验类型:□验证□综合■设计□创新实验日期:实验成绩:一. 实验目的掌握顺序表的逻辑结构、存储结构、操作,并通过C++编程实现。
二. 问题描述线性表是由n(n≥0)个元素(结点)a1, a2, …, a n组成的有限序列,其中a i中的i称为该数据元素的位置(序号),n为数据元素的个数(表的长度),当n等于0时称为空表。
按逻辑次序依次把数据元素存放在一组连续的地址存储单元里的线性表称为顺序表。
在这里,我们通过C++中的动态数组来实现顺序表的存放,并通过建立顺序表类实现它的各种操作。
三. 实验要求实现顺序表的三个框架操作:随机生成,用已有顺序表初始化另一个顺序表,输入顺序表。
以及十个基本操作:在第i个元素之前插入元素,判断是否为空,求元素个数,取第i个元素,查找第一个与e满足compare()关系的元素,返回元素的前驱,返回后继,删除第i个元素,把一个顺序表赋值给另一个顺序表,置空顺序表。
四. 实验环境PC微机,Windows操作系统,Visual Studio 2010。
五.实验代码基类:SqList.h//myhead.h包含自己设定的一些常量和类型#ifndef MYHEAD_H#define MYHEAD_H//#include"D:\数据结构C++\实验2\myhead.h"#include"D:\Users\fclz\Documents\Visual Studio 2010\Projects\数据结构C++\实验2\myhead.h"#endif//顺序表的一些常量说明#define LIST_MAX_SIZE 100#define LISTINCERMENT 10//随机数生成必须#define _CRT_RAND_S#include<stdlib.h>#include<stdio.h>#include<limits.h>//顺序表数据结构的C++类的声明(基类)template <typename ElemType>class SqList{protected:ElemType *elem;int listSize;int n;public://构造函数,析构函数,拷贝构造函数的声明SqList();virtual ~SqList();SqList(const SqList<ElemType>& otherL);//顺序表的方法//有序顺序表的折半查找int bin_Search(ElemType key);//把顺序表置空void clear();//删除第i个元素Status deleteElem(int i,ElemType& e);//取第i个元素int getElem(int i,ElemType& e);//求顺序表中元素的个数int getLength();//求顺序表存储空间的大小int getListSize();//在第i个元素之前插入一个元素Status insert(int i,ElemType e);//判断顺序表是否为空bool isEmpty();//查找第1个与e满足compare关系的元素的序号int locateElem(ElemType e,Status(*compare)(ElemType,ElemType));//返回某个元素的后继Status nextElem(ElemType e,ElemType& next_e);//重载复制运算符SqList<ElemType> operator =(SqList<ElemType> rightL);//返回某个元素的前驱Status priorElem(ElemType e,ElemType& prior_e);//在顺序表中顺序查找某个元素、int sequentialSearch(ElemType e);};//顺序表的方法//有序顺序表的折半查找template <typename ElemType>int SqList<ElemType>::bin_Search(ElemType key){int low,mid,high;//查找区域的起始、中间以及最后一个元素的下标low=0,high= n-1;while(low<=high){mid=(low+high)/2;if(elem[mid]==key)return mid+1;else if(elem[mid]<key)low=mid+1;else high=mid-1;}return 0;}//把顺序表置空template <typename ElemType>void SqList<ElemType>::clear(){n=0;}//删除第i个元素template <typename ElemType>Status SqList<ElemType>::deleteElem(int i,ElemType& e){if(i<1||i>n) return ERROR;e=elem[i-1];for(int j=i+1;j<=n;++j)elem[j-2]=elem[j-1];--n;return OK;}//取第i个元素template <typename ElemType>Status SqList<ElemType>::getElem(int i,ElemType& e){if(i<1||i>n) return ERROR;e=elem[i-1];return OK;}//求顺序表中元素的个数template <typename ElemType>int SqList<ElemType>::getLength(){return n;}//取顺序表存储空间的大小template <typename ElemType>int SqList<ElemType>::getListSize(){return listSize;}//在第i元素之前插入一个元素template <typename ElemType>Status SqList<ElemType>::insert(int i,ElemType e){ElemType *newbase;if(i<1||i>n+1)return ERROR;if(n>=listSize){newbase =new ElemType[listSize+LISTINCERMENT];assert(newbase!=0);for(int j=1;j<n;++j)newbase[j-1]=elem[j-1];delete[] elem;elem = newbase;listSize+=LISTINCERMENT;}for(int j=n;j>=i;--j)elem[j]=elem[j-1];elem[i-1]=e;++n;return OK;}//判断顺序表是否为空template <typename ElemType>bool SqList<ElemType>::isEmpty(){return n?false:true;}//查找第1个与某元素e满足compare()关系元素template <typename ElemType>int SqList<ElemType>::locateElem(ElemType e,Status(*compare)(ElemType,ElemType)){int i;for(i=1;i<=n&&!(*compare)(elem[i-1],e);++i);if(i<=n)return i;elsereturn 0;}//返回某个元素的后继template <typename ElemType>Status SqList<ElemType>::nextElem(ElemType e,ElemType& next_e){int i=locateElem(e,equal);if(i<1||i==n)return ERROR;elsegetElem(i+1,next_e);return OK;}//重载运算符的定义template <typename ElemType>SqList<ElemType> SqList<ElemType>::operator=(SqList<ElemType>rightL) {if(this!=&rightL){if(listSize<rightL.listSize){delete[] elem;elem=new ElemType[rightL.listSize];assert(elem!=0);listSize=rightL.listSize;}n=rightL.n;for(int i=1;i<=n;++i)elem[i-1]=rightL.elem[i-1];}return *this;}//返回某个元素的前驱template <typename ElemType>Status SqList<ElemType>::priorElem(ElemType e,ElemType& prior_e) {int i=locateElem(e,equal);if(i<=1)return ERROR;elsegetElem(i-1,prior_e);return OK;}//在顺序表中顺序查找某个元素template <typename ElemType>int SqList<ElemType>::sequentialSearch(ElemType key){for(int i=1;i<n&& key!=elem[i-1];i++);if(i<=n)return i;elsereturn 0;}//构造函数的实现template <typename ElemType>SqList<ElemType>::SqList(){elem =new ElemType[LIST_MAX_SIZE];assert(elem!=0);listSize=LIST_MAX_SIZE;n=0;}//析构函数的实现template <typename ElemType>SqList<ElemType>::~SqList(){delete[] elem;}//拷贝构造函数的实现template <typename ElemType>SqList<ElemType>::SqList(const SqList<ElemType>& otherL){elem=new ElemType[otherL.listSize];assert(elem!=0);listSize=otherL.listSize;n=otherL.n;for(int i=1;i<=n;i++)elem[i-1]=otherL.elem[i-1];}派生类MySqList.h#ifndef SQLIST_H#define SQLIST_H#include"SqList.h"#endif#include<iosfwd>template <typename ElemType>class MySqList:public SqList<ElemType>{public://读输入数据void read(istream& in);//显示数据void display(ostream& out)const;//生成随机顺序表Status randSql(int n,MySqList<ElemType>& otherS); };//派生类的实现//输入template <typename ElemType>void MySqList<ElemType>::read(istream& in){cout<<"请输入要建立的顺序表的元素个数:";cin>>n;for(int i=0;i<n;i++){//cout<<n<<endl;cout<<"请输入顺序表的第"<<i+1<<"个元素:";in>>elem[i];//n++;}cout<<endl;}template <typename ElemType>istream& operator >>(istream& in,MySqList<ElemType>& iL) {iL.read(in);return in;}//输出template <typename ElemType>void MySqList<ElemType>::display(ostream& out) const{for(int i=0;i<n;i++)out<<"["<<i+1<<"]"<<"\t";out<<endl;for(int i=0;i<n;i++)out<<elem[i]<<"\t";out<<endl<<endl;}template <typename ElemType>ostream& /*MySqList<ElemType>::*/operator <<(ostream& out,constMySqList<ElemType>& oL){oL.display(out);return out;}//生成随机数顺序表template <typename ElemType>Status MySqList<ElemType>::randSql(int n,MySqList<ElemType>& otherS){errno_t err;unsigned int number;int max=100;if(n<1||n>otherS.listSize) return ERROR;else{for(int i=0;i<n;i++){err = rand_s(&number);if (err != 0){printf_s("The rand_s function failed!\n");}otherS.elem[i]=(unsigned int)((double)number /((double) UINT_MAX + 1 ) * 100.0) + 1;}otherS.n=n;}return OK;}六. 运行结果程序开始界面框架操作:1.随机生成顺序表(元素值为0到99之间的整数)2. 用已有的顺序表初始化另一个顺序表3. 输入顺序表基本操作:1.在第i个元素之前插入一个元素2. 判断顺序表是否为空3. 求顺序表中元素的个数4. 取第i个元素5. 查找第一个与之满足compare()关系的元素序号6. 返回某元素的前驱7. 返回某元素的后继8. 删除第i个元素9. 把一个顺序表复制给另一个顺序表10. 把顺序表置空11.顺序表的运用七.实验小结熟悉最基本的数据类型——顺序表,同时我们让我们熟练C++的基本操作,模板的使用,以及模块化的设计思想。
数据库实验三_查询
南昌大学实验报告---实验三查询学生姓名:丁金芝学号:6100511080 专业班级:管理科学与工程类112班实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验目的1.掌握select语句的基本语法2.了解select语句中各子句的作用和特点3.掌握select语句的统计函数的作用和用法4.掌握子查询的用法5.掌握连接查询的用法二、实验内容与结果(一).简单查询1.select 选择列--1、选择所有列(*),查询学生表中的所有纪录。
--2、选择特定列,查询学生表中全体学生的学号,姓名,性别。
--3、计算列,查询选课表中给每个学生加了20分后的所有课号和成绩末分数显示出来。
重复。
--6、限制返回行数--top n 关键字;只显示表中前面n条记录。
--top n percent 关键字;只显示前n%条记录。
--显示学生表中的前3条记录。
--显示学生表中的前3%条记录2 .where 子句--1、比较运算符:(1)查询分数<80分学生的学号、成绩、课号。
(2)查询学号001学生的情况。
--2、范围运算符:查询学生分数在70-80之间的学生的学号、课号。
(包括70分、80分)--3、列表运算符: (1)查询学号为'001' 、'005'、'007' 、'008'的学生学号。
(2)查询学生成绩不在60-70之间的学生的学号、课号、成绩。
--4、匹配运算符: (1)查询姓刘学生的信息。
(2)查询姓刘单名的学生信息。
(3)查询01-03年级学生的信息。
--5、空值运算符,查询变动情况为空的学生--查询学生课程编号为'05'的课程的成绩,并按成绩的降序进行排列。
4.使用函数:--1、计算学号为001的学生总分数、平均分。
--2、集合函数 avg()、count()、count(*)、max()、min()、sum()(1)查询学期成绩表中的平均分,最大分数,最小分数,总和(前面四项为查询出的相应字段)(2)统计课程表中所有记录数和各个列中值的个数,要求不能重复。
实验3查询数据库
南昌大学实验报告学生姓名:华国平学号: 6100411092 专业班级:计算机科学与技术112班实验类型:□验证□综合□设计□创新实验日期: 2013.11.5 实验成绩:实验三查询数据库一、实验目的(1)掌握基本的SELECT查询及其相关子句的使用。
(2)掌握复杂的SELECT查询,如多表查询、子查询、连接和嵌套查询。
二、实验内容(1)从customer表中查询所有客户的姓名和电话。
(2)查询库存量大于1000的商品,结果按库存量从大到小排序。
(3)查询每个客户的订单金额的总和。
(4)查询2005年上半年(1月1日到6月30日)订货总数大于5000的商品。
(5)查询所有北京客户的订单信息,包括订单的序号、客户的姓名、商品名、数量。
(6)查询所有商品在什么时间卖出了多少。
(7)查询没有订单的商品信息。
(8)查询每种商品的销售总数量和总金额。
三、实验环境(1)个人计算机或局域网。
(2)Windows 2000操作系统。
(3)SQL Server 2000数据库管理系统。
四、实验步骤(1)启动查询分析器,选择market数据库。
(2)在查询编辑窗口中分别输入SQL语句并执行。
五、实验报告5.1 使用查询分析器查询数据使用查询分析器查询数据的操作步骤如下:(1)打开查询分析器。
执行“开始”︱“程序”︱“Microsoft SQL Server”︱“查询分析器”命令,即可启动查询分析器。
如果是在企业管理器界面下,执行菜单中的“工具”︱“查询分析器”命令,也可启动查询分析器。
在启动查询分析器后,会出现如图所示的“连接到SQL Server”对话框。
如果使用Windows身份验证,可单击“Windows身份验证”单选按钮,然后单击“确定”按钮,即可使用Windows的当前用户账户连接到SQL Server服务器。
如果选中“SQL Server 身份验证”单选项,则需要输入登录名和密码。
然后单击“确定”按钮,即使用SQL Server 账户连接到SQL Server服务器。
南昌大学数据库实验报告(1)
一、实验项目名称数据库创建和单表查询二、实验目的熟悉基本表的建立和单表查询操作三、实验基本原理和内容1.创建SPJ数据库2.找出所有供应商的姓名和所在城市3.找出所有零件的名称、颜色、重量4.找出使用供应商S1所供应零件的工程号码四、主要仪器设备及耗材PC机一台五、实验步骤1.创建SPJ数据库2.创建SPJ表:3.为表输入数据:六、实验数据及处理结果CREATE TABLE S //创建S表(SON CHAR(10) PRIMARY KEY,SNAME CHAR,STATUS INT,CITY CHAR);CREATE TABLE P //创建P表(PNO CHAR,PNAME CHAR,COLOR CHAR,WEIGHT INT);CREATE TABLE J //创建J表(JNO CHAR,JNAME CHAR,CITY CHAR);CREATE TABLE SPJ //创建SPJ表(SNO CHAR(10),PNO CHAR(10),JNO CHAR(10),QTY INT);SELECT SNAME,CITY //找出所有供应商的姓名和所在城市FROM S;SELECT PNAME,COLOR,WEIGHT //找出所有零件的名称、颜色、重量FROM P;SELECT JNO 找出使用供应商S1所供应零件的工程号码FROM SPJWHERE SNO='S1';1.找出所有供应商的姓名和所在城市2.找出所有零件的名称、颜色、重量3.找出使用供应商S1所供应零件的工程号码七、思考讨论题或体会或对改进实验的建议(1)在调试时,遇到什么问题?是怎样解决的?调试时有时会显示数据超出范围,应该在设计表时把数据长度设置足够。
(2)通过实验,获得哪些收获、体会?通过本次试验,对SQL server基本界面和模块进行操作,熟悉了基本表的建立和单表查询操作,为以后深入了解SQL打下基础。
八、参考资料《数据库系统概论》。
南昌大学数据结构实验报告(C++)
实验报告实验课程:数据结构学生姓名:学号:专业班级:网络工程班2014年 6月 30日目录一、实验一长方形-------------------------3二、实验二循序表------------------13三、实验三链表--------------------29四、实验四循环双链表---------------51南昌大学实验报告---(1)长方形数据结构C++类学生姓名:学号:专业班级:实验类型:□验证■综合□设计□创新实验日期:2014-6-25 实验成绩:【实验题目】长方形数据结构C++类【实验步骤】1.需求分析为实现长方形的输入输出和其他操作,我们进行如下需求分析:●长方形相关数据的输出●重载赋值运算符的定义●输出长方形的面积●测试数据2.概要设计为了实现上述功能,需要设定以下模块:主程序模块↓测试长方形模块↓派生长方形模块↓抽象长方形模块设置长设置宽.......各模块之间调用关系如图3.详细设计①长方形数据结构基类template <typename ElemType>class Rectangle{public:class RectangleNo{public:int no;};Rectangle operator=(Rectangle rightR);void setLength(ElemType l);void setWidth(ElemType z);void setNo(int i);ElemType Area(ElemType);Rectangle();Rectangle(const Rectangle& otherD);virtual~Rectangle();protected:ElemType length;ElemType width;RectangleNo myNo;};template <typename ElemType>Rectangle<ElemType> Rectangle<ElemType>::operator = (Rectangle<ElemType> rightR) {if(this!=&rightR){length=rightR.length;width=rightR.width;myNo=rightR.myNo;cout<<" 赋值后,当前的长方形为("<<length<<","<<width<<")"<<endl;}return *this;}template <typename ElemType>void Rectangle<ElemType>::setLength(ElemType l){length=1;}template <typename ElemType>void Rectangle<ElemType>::setWidth(ElemType z){width=z;}template <typename ElemType>ElemType Rectangle<ElemType>::Area(ElemType){return length*width;}template <typename ElemType>void Rectangle<ElemType>::setNo(int i){myNo.no=i;}template<typename ElemType>Rectangle <ElemType>::Rectangle(){length=width=0;cout<< " 自动调用构造函数"<<endl;}template<typename ElemType>Rectangle<ElemType>::Rectangle(const Rectangle<ElemType>& otherD){length = otherD.length;width =otherD.width;myNo = otherD.myNo;cout<<" 自动调用拷贝初始化构造函数初始化为(";cout<<length<<","<<width<<")"<<endl;}template<typename ElemType>Rectangle<ElemType>:: ~Rectangle(){cout<<"\n 第"<<myNo.no<< "长方形对象("<<length<<","<<width<<")生存期结束!"<<endl;}②循环单链表派生类template<typename ElemType>class MyRectangle: public Rectangle<ElemType>{public:void read(istream& in);void diaplay(ostream& out) const;};template<typename ElemType>void MyRectangle<ElemType>::read(istream& in){cout<<" 请输入第"<<myNo.no<<"个长方形对象"<<endl;cout<<" 长方形中的长";in>>length;cout<<" 长方形中的宽";in>>width;}template<typename ElemType>istream& operator>>(istream& in, MyRectangle<ElemType>& iD){iD.read(in);return in;}template<typename ElemType>void MyRectangle<ElemType>::diaplay(ostream& out) const{out<<" 第"<<myNo.no<<"个长方形对象长="<<length<<"\t 宽="<<width<<"\t 面积="<<length*width<<endl;}template<typename ElemType>ostream&operator<<(ostream& out, const MyRectangle<ElemType>& oD){oD.diaplay(out);return out;}③主程序模块void main(){MyRectangle<float> rec;int choose;char continueYesNo='N';while(1){choose=0;system("cls");cout<<endl;cout<<"*****************测试长方形的操作******************"<<endl<<endl;cout<<"\t 1.设置长方形的序号"<<endl;cout<<"\t 2.设置长方形的长"<<endl;cout<<"\t 3.设置长方形的宽"<<endl;cout<<"\t 4.重载赋值运算符的定义"<<endl;cout<<"\t 5.求长方形的面积"<<endl;cout<<" 其他,结束"<<endl<<endl;cout<<" by网工121 吴垂优"<<endl;cout<<"/////////////////////////////////////////////////////////////"<<endl;displayCurrentObject(rec);cout<<"/////////////////////////////////////////////////////////////"<<endl;cout<<" 请选择你要操作的代码(-)号码:";cin>>choose;if(choose>0 && choose<6){system("cls");displayCurrentObject(rec);}switch(choose){case 1: ex2_1_1(rec,continueYesNo);break;case 2:ex2_1_2(rec,continueYesNo) ;break;case 3:ex2_1_3(rec,continueYesNo) ;break;case 4:ex2_1_4(rec,continueYesNo) ;break;case 5:ex_2_1_5(rec,continueYesNo) ;break;default: cout<<"\n 你选择了结束。
南昌大学web实验三
}
if(erform.article.value.length<1){
alert("请输入文章标题,不少于七个字");
erform.article.focus();
return false;
}
if(erform.content.value=="" ){
4.会用JavaScript来对表单进行验证。
三、实验内容
1.用JavaScript完成对登录表单的验证
2.设计一个新闻发布的页面,并用JavaScript对新闻发布表单进行验证。
四、实验仪器及耗材
计算机,Dreamweaver 8,Photoshop,MyEclipse等软件。
五、实验步骤
登陆表单
alert("请输入用户名,有效长度范围为:5~20!");
ername.focus();
return false;
}
if(document.loginform.password.value==""){
alert("密码不能为空!");
document.loginform.password.focus();
alert("请输入文章作者,不少于两个字");
ername.focus();
return false;
}
if(erform.article.value==""){
alert("请输入文章标题");
erform.article.focus();
南昌大学实验报告
学生姓名:学号:专业班级:
实验类型:□验证□综合 ■ 设计□创新实验日期:实验成绩:
南昌大学计算机网络实验(全)
实验报告实验课程:学生姓名:学号:专业班级:2013年 06月 08日目录实验1 网线制作及对等网配置 (3)实验2 安装与管理Windows 2000 Server (12)实验3:虚拟局域网(VLAN)综合实验 (25)实验4:广域网综合实验 (29)实验5:访问控制列表ACL配置实验 (36)南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:2013-3-24 实验成绩实验1 网线制作及对等网配置1、实验目的以实验1组建的小型局域网为基础熟悉和掌握:(1)组建一个基于IP协议的对等网及其测试方法。
(2)在对等网中实现共享硬、软件资源的配置、管理与使用。
2、实验设备每实验组PC机2台,集线器1台,打印机1台。
3、实验要求(1)实验任务:①规划IP参数,完成基于Windows98的模拟IP对等网的组建和参数设置。
②模拟进行网络环境下软、硬件资源共享的设置与使用。
③进行IP网络连接和IP参数的测试。
(2)实验预习①认真预习实验指导书,深入理解实验的目的与任务,熟悉实验步骤和基本环节。
②复习IP协议及其基本工作参数的概念。
③复习对等网的概念。
(3)实验报告①简要描述组成IP对等网的主要方法,需要哪些条件,实验中遇到了什么问题,如何解决的,以及本人的收获与感想。
②回答后面的实验思考题。
4、基础知识与实验原理对等网络(Peer to Peer)也称工作组模式,其特点是对等性,即网络中各计算机功的能相似,地位相同,不存在专用的服务器,每台计算机对网络中其他的计算机而言,既是服务器又是客户端,相互可以共享各自管理的软、硬件资源。
本实验是在实验室的环境下构建一个基于IP协议和Windows98的对等网,每一实验组的计算机组成一个工作组网络,同时也是一个独立的IP子网,其中的用户可以相互共享硬盘、打印机和应用程序等。
5、实验步骤(1)规划网络工作参数①各实验组的工作组名、计算机名、用户名的格式与实验1相同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验课程:数据库原理与应用
学生姓名:
学号:
专业班级:电子商务121班
2014 年 5 月 16 日
南昌大学实验报告
学生姓名:学号:专业班级:电子商务121班
实验类型:□验证□综合□设计□创新实验日期:2014-5-16 实验成绩:
实验3 索引和视图
一、实验目的
1、掌握创建视图的T-SQL语句的用法
2、掌握使用SQL Server Management Studio 创建视图和索引的方法
3、掌握查看视图和索引的系统存储过程的用法
4、掌握修改视图的方法
5、掌握创建索引的命令
二、实验内容
1、建立计算机系学生视图,该视图包含学生的学号、姓名和出生日期信息并查看视图定义
2、建立学生表中全体学生年龄的视图,该视图包含学生的学号、姓名、和年龄信息
3、建立选修“数据库”的学生的视图,该视图包含学生的学号和姓名信息
4、建立学生成绩视图,该视图包含学生的学号、姓名、课程名称和成绩信息,并进行加密
5、修改题目4中的学生成绩视图,该视图包含学生的学号、姓名、课程名称、成绩和班级信息
6、在数据库中,为“课程”表创建一个基于“课程号,课程名称”组合列的非聚集、复合索引khh_kcmc_index
7、查看学生表的索引
8、建立学生表的姓名唯一性索引,并且填充因子为60%
三、实验代码、数据处理及结果
1、
CREATE VIEW 计算机系学生
AS
SELECT 学号,姓名,出生日期
FROM 学生
WHERE 系别='计算机系';
select * from 计算机系学生;
2、由于年龄无此列,故无效运行,所以利用出生日期代替create view 出生日期
as
select 学号,姓名,出生日期
from 学生;
3、
create view 选修数据库学生
as
select 学生.学号,姓名
from 学生,课程注册,学期成绩
where 学生.学号=学期成绩.学号 and
学期成绩.课程编号=课程注册.课程编号 and
课程名称='数据库';
4、
create view 学生成绩
with encryption
as
select 学生.学号,姓名,课程名称,成绩
from 学生,学期成绩,课程注册
where 学生.学号=学期成绩.学号 and 学期成绩.课程编号=课程注册.课程编号;
5、
Create view 学生成绩
with encryption
as
select 学生.学号,姓名,课程名称,成绩,班别
from 学生,学期成绩,课程注册
where 学生.学号=学期成绩.学号 and 学期成绩.课程编号=课程注册.课程编号;
6、
create nonclustered index khh_kcmc_index
on 课程注册(课程编号 asc,课程名称 desc)
go
7、
sp_helpindex 学生
8、
四、实验总结
视图是从一个或几个基本表(或视图)导出的表,所以语句执行过程中经常需要用到表与表的链接。
但是视图又与基本表不同,它是一个虚表,数据字典中,其实只是储存了视图的定义,因此,对于视图的更新,需要转换为对基本表的更新。
在修改这一个内容中,由于过程短,我采用的是先删除前一个视图4,而后再重新创造了一个加密视图5,由此进行修改。
当视图是行列子集的时候,系统才能允许更新。
索引是对数据库中一列或者多列的值进行排序的一种结构,我们可以在视图上创建索引。