实验四 索引与关联操作
数据库原理实验报告-实验四-视图与索引
一、实验内容、步骤以及结果1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。
(5分)2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。
--第一种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qty FROM SPJWHERE jno=(SELECT jno FROM JWHERE jname ='三建');GO--删除建好的视图DROP VIEW V_SPJ;GO--第二种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qtyFROM SPJ,JWHERE J.jno=SPJ.jno AND J.jname='三建';3.用SQL语句完成第五版教材第三章第11题中的视图查询(10分,每小题5分)。
11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
针对该视图VSP完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
4.用SQL语句完成视图的数据更新。
(15分,每题5分)(1)给视图V_SPJ中增加一条数据。
提示:-SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO 为NULL,所以视图中没有该条数据。
-SPJ表中JNO不能为空时,可以使用instead of触发器实现。
(2)修改视图V_SPJ中的任意一条数据的供应数量。
(3)删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用instead of触发器实现)。
5.用图形用户界面对Student数据库中C表的Cno字段创建一个降序排列的唯一索引,索引名称IX_CNo。
数据库实验4 索引、数据完整性与安全性
实验四索引、数据完整性与安全性一、实验目的(1) 掌握利用SQL Server Management Studio和SQL语言建立、删除索引的方法;(2) 掌握利用SQL Server Management Studio和SQL语言实现数据完整性的方法;(3) 掌握在SQL Server Management Studio中实现数据安全性管理的方法。
二、实验原理1.索引在关系型数据库中,索引是一种可以加快数据检索的数据库结构。
SQL Server系统中主要有两种类型的索引,即聚集索引、非聚集索引。
(1)聚集索引聚集索引定义了数据在表中存储的物理顺序。
一个表只能定义一个聚集索引。
(2)非聚集索引非聚集索引并不存储表数据本身。
相反,非聚集索引只存储指向表数据的指针,该指针作为索引键的一部分,因此,在一个表中同时可以存在多个非聚集索引。
(3)利用SQL命令建立索引简化语法格式:CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]INDEX index_name ON {table|view}(column|ASC|DESC][,…n])其中:UNIQUE。
可选。
该选项用于通知SQL Server索引中列出的列的值是每行唯一的。
如果试图插入重复的行,则该选项会强制SQL Server返回一个错误信息。
CLUSTERED或NONCLUSTERED。
可选。
如果这两个选项都没有被明确列出,则默认将索引创建为NONCLUSTERED(非聚集索引)。
(4)通过SQL命令删除索引语法格式:DROP INDEX ‘table.index|view.index’[,…n]2.表主键和UNIQUE约束表主键通过表数据中一个列或者多个列组合的数据来唯一标识表中的每一行数据。
即表主键就是用来约束数据表中不能存在相同的两行数据。
在SQL Server系统中,定义表的主键可以在创建表的同时定义,也可以给已有的表添加主键。
计算机信息检索实验报告(6个)
实验一网上中文搜索引擎及其使用一、实验心得在电脑已经成为生活必备品的现在,日常搜索是一件很平常的事情。
俗话说,天天百度知识丰富。
当然,我国国内主要的搜索引擎除了百度,还有谷歌、雅虎、搜狗、网易、新浪。
一般来说,百度和谷歌是最多人用的。
不同的搜索引擎,不同的搜索方法,得到搜索结果的速度和准确度也不一样。
所以我觉得学习计算机信息检索的主要目的就是更好地提高自己搜索的速度和准确度。
在这次实验当中,我们主要学习和掌握以下搜索技巧的运用。
「“”」的基本用法、「+」或「空格」的基本用法、「+」的基本用法、「-」的基本用法、「OR」的基本用法、「site」的基本用法、「inurl」的基本用法、「intitle」的基本用法、「filetype」的基本用法。
比起以前直接把整个问题打上去然后从网页中寻找满意的答案,灵活使用这些搜索技巧可以更快地找到准确率高的答案。
这些技巧在现实生活中具有高度的可操作性和便捷性。
二、实验结果(一)请使用Google或百度搜索引擎完成以下知识测验:(请将检索结果复制到题干之后,并把所有有关的网页都下载到你的作业文件夹中,以作为本作业评分的依据。
)1.谁根据小仲马的《茶花女》改编了同名歌剧( B )/b/7602599.htmlA.奥斯汀 B.威尔第 C.福楼拜2."生存还是死亡,这是一个问题。
"出自莎士比亚的哪部作品?( A )/question/25934693.htmlA.《哈姆雷特》 B.《李尔王》 C.《麦克白》3."侦探福尔摩斯"第一次出现是在下列哪部作品中: ( A )/question/1306083005651.htmlA.《血字的研究》B.《东方快车谋杀案》C.《尼罗河上的惨案》D.《难逃一生》4.李清照词中名句"寻寻觅觅,冷冷清清,凄凄惨惨戚戚"的词牌名是: ( D ) /wenda/thread?tid=7c29ad4f072df739&hl=cnA.醉花阴B.一剪梅C.如梦令D.声声慢(二)请在网上寻找如下列图片。
重要资料VFP表操作索引、统计、关联、连接等讲解
查询、统计和多表操作表文件中记录的顺序通常是人们在输入数据时按输入的先后次序存储的,并以记录号表示,这个顺序只反映了存放数据的先后顺序。
但在数据处理实际应用中,由于数据库十分庞大,为了高效方便地处理数据,常常需要对记录位置进行重新整理,并按某种指定的顺序对表记录进行处理。
例如,对学生成绩表按学号为序显示输出记录,以便查找;或按总分高低为序输出记录,以便进行比较等等。
对记录位置进行重新整理通常有排序和索引两种方法。
排序是对表文件进行物理位置的整理;索引是对表文件进行逻辑位置的整理。
一、排序表文件的排序操作就是根据表的某个关键字或关键字表达式重新排列表记录的位置。
执行排序操作后将生成一个新的表文件(称为:排序文件)。
新文件的结构和数据可以与源文件完全相同,也可以只取源文件的部分字段。
新文件不改变源文件内容和记录顺序。
【命令】 SORT TO<新文件名>ON <字段名1>[/A] [/D] [/C] [,<字段名2> [/A] [/D] [/C]…] [ASCENDING|DESCENDING][<范围>][FOR<条件>|WHILE<条件>][FIELDS<字段名表>| FIELDS LIKE<通配符>|FIELDS EXCEPT<通配符>]【功能】对当前表中指定范围内、满足条件的记录按指定字段升序或降序重新排序,并将排序结果存入新文件名中。
【说明】①排序结果存入由TO <新文件名>指定的表文件中,系统默认文件扩展名为.DBF。
②在ON子句中的字段名表示排序的关键字段。
当使用一个关键字时,叫“单重排序”;使用多个关键字时,叫“多重排序”。
在多重排序中,关键字有主次之分。
主关键字是指能够唯一标识某个记录的关键字;次关键字是指标识具有某种相同属性的某些记录的关键字。
在关键字表达式中,主关键字排在前面,次关键字排在后面。
数据库原理及应用实验指导书答案
数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。
它允许用户创建,读取,更新和删除数据库中的数据。
常见的数据库管理系统有MySQL,Oracle,SQL Server等。
问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。
以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。
2. 运行安装程序,按照向导的指示进行安装。
3. 选择是否要安装MySQL 服务器和MySQL工具。
4. 设置密码以保护数据库的安全。
5. 完成安装程序并启动MySQL服务。
数据库是一个组织和存储数据的容器。
在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。
每行代表一个记录,每列代表一个字段。
问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。
常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。
问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。
ODBC驱动程序充当应用程序和数据库之间的翻译器。
问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。
在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。
在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。
具体步骤如下: 1. 加载ODBC接口库。
2. 初始化ODBC环境。
3. 建立数据库连接。
4. 执行SQL语句。
5. 关闭数据库连接。
6. 释放ODBC环境。
问题九ODBC接口库是一组API函数,用于连接和操作数据库。
实验四视图和索引的使用
实验四视图和索引的使用
实验四视图和索引的使用
一、实验目的
1.掌握视图的创建、修改和删除
2.掌握通过视图修改表中的记录
3.掌握索引的创建、修改和删除
二、实验内容
根据实验二创建的表进行如下的操作:
1、对表S,创建一个专业为“计算机应用”的视图,视图名为STUDENT_SDEPT1。
2、对表S,创建一个专业为“计算机软件”的视图,视图名为STUDENT_SDEPT2。
3、建立一个视图名S_C_SC,视图里包括每个学生每一门课的成绩(学号、
姓名、课程名和成绩)。
4、删除视图STUDENT_SDEPT2。
5、通过视图STUDENT_SDEPT1,往S表中插入一条记录,内容为(“9901”,
“王套”,22“男”,“计算机应用”)。
6、对表S,按SNAME字段创建一个惟一非聚集索引,索引名为INDEX_SNO。
7、对表C,按CNAME创建一个惟一聚集索引,索引名COURSE_INDEXCNO。
8、对表S,按SEX和SNAME字段创建一个复合索引,索引名为INDEX_SEX_SNAME。
9、删除索引INDEX_SEX_SNAME、COURSE_INDEXCNO。
三、思考题:
1、视图与表的区别是什么?
2、视图的作用是什么?
3、索引的作用?
4、惟一索引的含义是什么?。
实验训练4:视图和索引的构建与使用
实验训练4:视图和索引的构建与使用1. 简介在数据库中,视图是一种虚拟表,它是基于查询结果动态生成的。
视图可以看作是一个预定义的查询,通过视图可以方便地访问和组织数据。
本文将介绍在数据库中如何创建和使用视图,以及如何构建索引来提高查询性能。
2. 创建视图在数据库中,可以使用CREATE VIEW语句来创建一个视图。
视图的创建需要满足以下条件:•视图的名字必须唯一。
•视图的定义必须是一个有效的SELECT语句。
下面是一个创建视图的示例:CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;其中,view_name是视图的名称,column1和column2是视图所包含的列名,table_name是数据来自的表名,condition是过滤条件。
创建视图之后,可以使用SELECT语句来查询视图的内容,就像查询表一样。
3. 修改视图在数据库中,可以使用ALTER VIEW语句来修改一个已经存在的视图。
修改视图可以包括添加、删除和修改列。
下面是一个修改视图的示例:ALTER VIEW view_name ADD column_name datatype;其中,view_name是要修改的视图的名称,column_name 是要添加的列名,datatype是列的数据类型。
4. 删除视图在数据库中,可以使用DROP VIEW语句来删除一个已经存在的视图。
下面是一个删除视图的示例:DROP VIEW view_name;其中,view_name是要删除的视图的名称。
5. 索引的构建与使用索引是一种数据结构,可以提高数据库的查询性能。
数据库中的索引可以分为以下几种类型:•B-Tree索引:适用于等值查询和范围查询。
•哈希索引:适用于等值查询。
•全文索引:适用于关键词搜索。
在数据库中,可以使用CREATE INDEX语句来创建索引。
实验训练4:视图和索引的构建与使用
实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立,视图的查询,视图的更新,视图的删除,体会视图带来的方便;练习索引的创建和删除,对比有索引和无索引的基本表查询速度,体会索引的优势。
实验内容:【实验4-1】创建视图(1)单源视图:建立今年新增的会员的视图;建立“奔驰”品牌的汽车配件视图,并要求进行修改和插入操作时仍需保证该视图只能是“奔驰”品牌。
(2)多源视图:建立每个会员的订单视图(包含会员编号、会员名称、订单编号、下单日期、货品总价)。
(3)在已有视图上定义的新视图:建立价格小于1000元的‘奔驰’品牌的汽车配件视图。
(4)表达式的视图:建立每个会员的购物信息视图(包含会员编号、会员名称、创建时间、汽车配件编号、汽车配件名称、单价、数量、金额)。
(5)分组视图:定义一个视图可以看出每天的销售数量和销售收入;定义一个视图可以看出每天每一种汽车配件的销售数量和销售收入。
【实验4-2】查询视图:在实验4-1中定义的视图或者与基表上共同完成查询:(1)检索采购了‘奔驰’品牌的汽车配件的会员编号、会员名称。
(2)查询今年新增会员的订单信息。
(3)查询会员名称为‘李广’的购物信息(包含会员编号、会员名称、创建时间、汽车配件编号、汽车配件名称、单价、数量、金额)。
(4)查看本月的销售数量和销售收入,查看本月的每一种汽车配件的销售数量和销售收入【实验4-3】更新视图(1)将‘奔驰’品牌的价格下调5%,用Select查询更新前后结果。
(2)在今年新增会员视图中,插入一个新会员的记录,其中会员名称为‘张飞’,密码为999999,邮箱为123456@。
用Select查询更新前后结果。
(3)在今年新增会员视图中,删除会员名称为‘张飞’的会员信息。
用Select查询更新前后结果。
【实验4-4】删除视图:删除今年新增会员视图。
【实验4-5】创建索引(1)创建汽车配件表上的汽车配件编号的索引(聚簇索引)。
数据库实验四 视图与索引
实验4 视图与索引一、实验目的1.本实验的目的是使学生掌握视图与索引的使用方法,加深对视图与索引作用的的理解。
2.通过自行设计视图与索引,加强学生的数据库设计能力。
二、实验内容1.索引的定义和维护1)建立唯一索引,测试插入、修改记录时所受的影响。
2)建立聚簇索引,比较建立前后的记录顺序变化。
3)建立多重索引,观察执行select语句查询的结果记录顺序。
4)删除相关索引。
2.视图的定义、查询和更新1)为学生选课系统从不同用户角度出发设计相应的视图。
2)利用视图进行相关查询。
3)利用视图进行更新,注意哪些视图是不可更新的。
三、实验原理1.建立索引语句CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);⏹用<表名>指定要建索引的基本表名字⏹索引可以建立在该表的一列或多列上,各列名之间用逗号分隔⏹用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。
缺省值:ASC⏹UNIQUE表明此索引的每一个索引值只对应唯一的数据记录⏹CLUSTER表示要建立的索引是聚簇索引(CLUSTERED)HAVING短语:筛选出只有满足指定条件的组⏹ORDER BY子句:对查询结果表按指定列值的升序或降序排序2.建立视图语句CREATE VIEW <视图名> [(<列名> [,<列名>]…)]AS <子查询> [WITH CHECK OPTION]四、实验步骤按实验目的和内容自行设计。
五、实验报告要求1)写出本实验中用到的SQL语句的使用说明;2)对每一实验结果进行分析;3)记录在查询实验中遇到的典型问题及你所采取的解决方法;。
数据库原理及应用.实验4.视图和索引的创建和使用
数据库原理及应⽤.实验4.视图和索引的创建和使⽤实验报告 课程名称:数据库原理及应⽤ 实验项⽬名称:视图和索引的创建和使⽤ 实验时间:2021年5⽉10⽇实验⽬的: (1)掌握创建视图的SQL语句的⽤法。
(2)掌握修改视图的⽅法。
(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作⽤。
(4)熟悉索引的作⽤,以及不同类型索引的区别。
(5)掌握SQL语句对索引的创建使⽤和删除索引实验环境: MySQL、SQLyog实验内容及过程:⼀、创建课本P79页的学⽣-课程数据库,完成以下实验内容:复制DROP DATABASE STCREATE DATABASE STUSE STCREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREATE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40) NOT NULL,Cpno CHAR(4),Ccredit SMALLINT#FOREIGN KEY (Cpno) REFERENCES Course(Cno));CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY (Sno,Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (Cno) REFERENCES Course(Cno));INSERT Student(Sno, Sname, Ssex, Sage, Sdept)VALUES (201215121,'李勇','男',20,'CS'),(201215122,'刘晨','⼥',19,'CS'),(201215123,'王敏','⼥',18,'MA'),(201215125,'张⽴','男',19,'IS')INSERT Course(Cno,Cname,Cpno,Ccredit)VALUES ('1','数据库','5',4),('2','数学',' ',2),('3','信息系统','1',4),('4','操作系统','6',3),('5','数据结构','7',4),('6','数据处理',' ',2),('7','PASCAL语⾔','6',4)INSERT SC(Sno, Cno, Grade)VALUES (201215121,1,92),(201215121,2,85),(201215121,3,88),(201215122,2,90),(201215122,3,80)定义信息系学⽣基本情况视图V_IS,并查看视图结构,通过该视图可以将其他系学⽣信息屏蔽掉。
实验四索引与视图
实验4 数据库的索引与视图定义实验一、实验目的本实验的目的是使学生掌握索引与视图的定义与维护操作,加深对索引与视图在关系数据库中的作用的理解。
二、实验时数2学时[相关知识]建立索引是加快查询速度的有效手段。
用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多个存取路径,加快查找速度。
视图是根据子模式建立的虚拟表。
一个视图可以由一个表构造,也可以由多个表构造。
查看和修改视图就如同对表的操作一样,非常容易。
三、实验内容㈠索引1.创建索引1)为PROJ表的PNAME列创建非聚集索引Pindex。
2)为DEPA表的DNAME(降序),ADDR两列创建唯一非聚集索引Dindex。
3)在PROJ表的PNAME列上创建唯一非聚集索引Pindex,若该索引已存在则删除后重建。
2.查看索引1)查看DEPA表的索引信息。
2)查看数据库COMPANY索引使用的空间信息3.索引更名1)将DEPA表的索引Dindex名更改为Dindex1。
4.删除索引1)删除DEPA表的索引Dindex1。
㈡视图1.创建视图1)创建14号部门员工的视图EMPL_14(ENO,ENAME,SALARY)。
2) 创建包含项目名与员工名及工作天数的视图Prjemp。
3)在视图EMPL_14上创建工资在3000以上的员工的视图EMPL_14H3。
4)创建每个部门的平均工资的视图E_AVG(DNO,SAVG)。
2.查询视图1)根据视图Prjemp查询做'设计系统'项目的所有员工及工作天数。
2)根据视图E_AVG查询‘客户中心’的平均工资。
3.更新视图1)在视图EMPL_14中将1042号员工的姓名改为‘李立春’。
2)向视图EMPL_14中插入一条新记录(1050,‘赵英’,3500)。
3)删除视图EMPL_14中1042号员工的记录。
4.删除视图1)删除视图Prjemp。
实验训练4视图和索引的构建与使用
实验训练4:视图和索引的构建与使用实验目的:1. 了解视图和索引的概念和作用;2. 掌握创建视图和索引的语法和方法;3. 掌握使用视图和索引进行数据查询的方法。
实验环境:MySQL数据库。
实验内容:1. 创建视图视图是一种虚拟表,它是根据SQL 查询语句所定义的结果集生成的。
视图并不存储数据,而是根据需要从基本表中获取数据。
视图的作用是简化常用查询操作,使查询语句更加简洁明了。
创建视图的语法如下:```CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;```例如,我们可以创建一个视图来显示学生的姓名和成绩:```CREATE VIEW student_score ASSELECT name, scoreFROM students;```2. 使用视图查询数据使用视图进行查询时,可以像查询普通表一样进行查询操作。
例如,我们可以查询学生的姓名和成绩:```SELECT * FROM student_score;```3. 创建索引索引是一种数据结构,用于提高数据的查询效率。
索引可以加快查询操作的速度,但会降低插入和更新操作的速度。
通常,我们会在经常使用的列上创建索引,以提高查询效率。
创建索引的语法如下:```CREATE INDEX index_nameON table_name (column1, column2, ...);```例如,我们可以在学生表的姓名列上创建索引:```CREATE INDEX idx_nameON students (name);```4. 使用索引查询数据使用索引进行查询时,可以通过查询计划来查看是否使用了索引。
例如,我们可以查询姓名为张三的学生:```SELECT * FROM students WHERE name = '张三';```可以通过EXPLAIN 命令查看查询计划:```EXPLAIN SELECT * FROM students WHERE name = '张三';```如果查询计划中出现了Using index,则表示使用了索引。
实验四表的索引与数据统计
实验四表的索引与数据统计一、实验目的1.掌握建立索引和使用索引的操作。
2.掌握数据的定位查询。
3.掌握数据统计命令。
二、实验要求1.对表操作前必须先打开表文件,要求掌握打开和关闭表的几种方法。
2.熟练掌握创建索引、使用索引、表记录的顺序查询和索引查询方法。
3.要求掌握统计记录数、求和与求平均值等命令。
三、实验内容1.对学生信息表的出生日期字段按降序建普通索引。
2.显示按出生日期降序排列的学生信息表。
3.将记录指针定位到性别是男的第2条记录上。
4.查找姓名是马小宁的记录并显示该条记录。
四、实验步骤1.打开学生信息表选择【文件】|【打开】,在弹出的“打开”对话框中选择E:\STUDENT下的学生信息表.dbf 文件,单击【确定】按钮,如图4-1所示。
图4-1 打开学生信息表2.设置索引选择【显示】|【表设计器】,在表设计器窗口中将学号字段的索引属性设置为升序,出生日期索引设为降序,如图4-2所示。
3.选择索引类型在表设计器中选择“索引”选项卡,设置出生日期字段的索引类型为“普通索引”如图4-3所示。
图4-2 在表设计器中设置索引图4-3 设置索引类型4.将出生日期设为主控索引,并显示表的索引顺序在命令窗口输入命令:SET ORDER TO 出生日期LIST显示结果如图4-4所示。
图4-4 按“出生日期”的降序显示学生信息表5.关闭索引在命令窗口输入命令:SET ORDER TO6.使用查询命令定位记录指针在命令窗口输入命令:LOCATE FOR 性别=”男”CONTINUEDISP此时,记录指针定位到了性别是男的第2条记录上,显示结果为:记录号专业编号学号姓名性别出生日期毕业学校备注3 C02 200302005 李进程男11//12/88 株洲市一中memo7.在建立了索引的前提下快速查询记录在命令窗口中输入命令:INDEX ON 姓名TO XMSEEK “马小宁”&&或FIND马小宁DISP显示结果为:记录号专业编号学号姓名性别出生日期毕业学校备注2 C01 200201018 马小宁男03/09/86 长沙市三中memo五、上机练习1.对成绩表中总评成绩字段按升序建立普通索引。
实验四 建立索引及表间关系
实验四建立索引及表间关系一、实验目的:1.掌握索引的建立和使用;2.掌握索引查找及索引的删除;3.掌握表间关系的设置;4.掌握字段有效性规则的设置及作用;二、实验内容:1.利用表设计器创建索引实验要求:利用表设计器分别为学生档案表的“学号”字段和“出生年月”建立索引,并显示按索引排序的结果。
实验步骤:(1)在xsgl数据库中打开学生档案表,打开表设计器;(2)在“字段”选项卡中,将“学号”字段和“出生年月”字段右边的“索引”均设置为升序;(3)切换至表设计器的“索引”选项卡,按图4-1所示进行设置,最后点击“确定”按钮,至此索引建立完毕;图4-1 学生档案表的索引设置图4-2 设置当前索引(4)在“D:\学生信息管理系统”目录下可观察到生成的结构复合索引文件“学生档案.cdx”;(5)打开学生档案表的浏览窗口,选择“表”→“属性”命令,打开“工作区属性”窗口,如图4-2所示,将其中的“索引顺序”设置为学生档案:Csny,单击“确定”;(6)观察浏览窗口中记录的顺序,此时表记录已按出生年月字段升序排列;(7)再次单击“表”菜单→“属性”,打开“工作区属性”窗口,将其中的“索引顺序”设置为学生档案:Xh,单击“确定”;(8)观察浏览窗口中记录的顺序,此时表记录已按学号字段升序排列;(9)关闭学生档案表。
2.利用命令创建索引实验要求:利用命令方式分别为成绩表的“学号”、“课程代码”字段和“学号+课程代码”建立索引,并显示索引排序后的结果。
实验步骤:(1)在项目中打开成绩表,先建立关于“学号”字段的索引,并显示索引排序的结果,执行下列命令:index on 学号tag xh ascending //建立关于学号字段的索引,索引名为xhbrowse↙//使用index on命令建立的索引直接成为当前索引,直接浏览即可看到结果(2)建立关于“课程代码”字段的索引,并显示索引排序的结果,执行下列命令:index on 课程代码tag kcdm ascending //建立关于课程代码字段的索引,索引名为kcdm。
实验3:设置索引、建立关联、创建视图操作要求
实验3:设置索引、建立关联、创建视图操作要求实验3:索引与排序、建立关联、创建视图设置默认路径:菜单:工具——选项——文件位置——默认目录——修改——找到自己的文件夹——确认——设为默认路径一、设置数据库表的索引1、索引的建立“索引”只能在数据库表中建立,其方法是:在“表设计器”窗口中,单击某个字段中“索引”下拉列表框,再选择此列表框中的“升序”或“降序”,即可按此字段建立索引。
(1)打开数据库“学籍”,将数据库表“学生成绩”按学号降序排列建立索引。
操作方法:打开数据库“学籍”及“学生成绩”表,并打开“表设计器”窗口,单击学号字段中“索引”下拉列表框,再选择此列表框中的“降序”,即可按学号字段建立了降序索引。
2、浏览建立索引后已重新排序的表在上述“学生成绩”表对学号字段建立了降序索引后,(1)打开“学生成绩”表,选择“显示”菜单→“浏览”,(2)再由“表”菜单→“属性”,弹出“工作区属性”对话框,在“索引顺序”下选择索引名“学号”(3)单击“确定”,将会按降序的学号显示表记录。
自行练习:对“学生情况”表按性别字段建“升序”索引,并检查性别排序情况。
二、建立表之间的永久关联1、对“学生情况”表的“学号”建立主索引,对“姓名”和“性别”两个字段分别建立“普通索引”和“唯一索引”2、对“学生成绩”表的“学号”也建立主索引,对“总分”和“平均分”两个字段分别建立“唯一索引”和“普通索引”3、选定“学生情况”表的“学号”主索引标识,拖动鼠标到与之关联的“学生成绩”表的索引标识上释放,连线所示即建立了两个表的永久关联。
用同样方法创建其他关联。
4、关联的删除在关联的连线上鼠标右击“删除关系”三、创建视图视图只能依托数据库而存在,是一种特殊形式的表。
(1)将“学籍”数据库中的“学生成绩”表建立视图,显示总分在300以上且电算在80分以上的学号、姓名、总分、电算,按总分降序,电算升序排序,视图文件名为“成绩优秀学生”。
索引、数据库关系图等的基本操作
数据库原理与应用
实验报告
实验项目名称:索引、数据库关系图等的基本操作成绩:
(1)创建与删除索引
(2)创建与使用数据库关系图
3.实验预备知识
索引是与表或视图关联的文件组织结构,通过索引可以加快从表或试图中检索行的速度。
表或视图的索引可以粗分为以下两大类:聚集索引与非聚集索引。
数据库关系图是SQL Server中一类特殊的数据库对象,它提供给用户直观的管理数据库表的方法。
通过图表,用户可以直观地创建、编辑数据库表之间的关系,也可以编辑表与其列的属性。
实验内容
1、实验内容与关键SQL语句、实验结果等
(1)、对DingBao数据库中PAPER表的pna字段降序建立非聚集索引pna_index
(2)修改非聚集索引pna_index,使其对pna字段升序建立
(3)删除索引pna_index
(1)、创建含CUSTOMER、CP、PAPER三表的数据库关系图,取名DB_Diagram (2)、在关系图DB_Diagram中,通过快捷菜单实现对三表的多项操作
(3)、删除不需要的数据库关系图
1.疑难与未解决的问题
使用ALTER INDEX语句无法修改索引
2.实验体会(含已碰到的问题和解决方法)改用对象资源管理器执行
教师评语及成绩。
实验四 单表、连接查询实验(报告)
实验四单表、连接查询实验一、实验目的使学生掌握SQL Server查询分析器的使用方法,加深对SQL语言的查询语句的理解。
熟练掌握单表查询、连接查询、数据排序。
二、实验内容该实验包括1)单表查询操作包括投影、选择、排序等。
2)连接查询操作包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
三、实验方法1.将查询需求用SQL语言表示。
2.在SQL Server查询分析器的输入区中输入SQL查询语句。
3.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。
4.查询分析器的进一步说明查询分析功能主要通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。
对于TSQL语句的执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示在结果区;网格执行将结果以表格形式显示在结果区;计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。
上述输出形式,可以通过菜单或按钮选择。
四、实验步骤(1) 单表查询实验用SQL语句实现学生选课库中的下列查询:①查询全体学生的学号和姓名。
//SELECT Sno,SnameFROM Student;②求数学系学生的学号和姓名。
//SELECT Sno,SnameFROM StudentWHERE Sdept=’MA’;③求选修了课程的学生学号。
//SELECT DISTINCT SnoFROM ScWHERE Cno IS NOT NULL;④求选修1号课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
//SELECT Sno,GradeFROM ScWHERE Cno=1 ORDER BY Grade ,Sage DESC⑤求选修1号课程且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。
SELECT Sno,(Grade*0.8)系数FROM ScWHERE Cno=1 AND Grade BETWEEN 80 AND 90;⑥求数学系或计算机系姓张的学生的信息。
索引的使用实验报告
一、实验目的1. 理解索引的概念和作用。
2. 掌握创建、删除和管理索引的方法。
3. 通过实际操作,验证索引对数据库查询性能的影响。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 实验数据:模拟学生信息表(包含学生ID、姓名、年龄、性别、班级ID等字段)三、实验内容1. 创建索引2. 查询性能测试3. 删除索引4. 索引重建与优化四、实验步骤1. 创建索引(1)创建学生信息表```sqlCREATE TABLE student (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(20),age INT,gender ENUM('男', '女'),class_id INT);```(2)创建索引```sql-- 创建学生ID索引CREATE INDEX idx_student_id ON student(id);-- 创建学生姓名索引CREATE INDEX idx_student_name ON student(name);-- 创建学生年龄索引CREATE INDEX idx_student_age ON student(age);-- 创建学生性别索引CREATE INDEX idx_student_gender ON student(gender);-- 创建学生班级ID索引CREATE INDEX idx_student_class_id ON student(class_id); ```2. 查询性能测试(1)测试创建索引前的查询性能```sql-- 查询学生信息表中所有学生信息SELECT FROM student;-- 查询年龄大于18岁的学生信息SELECT FROM student WHERE age > 18;-- 查询班级ID为1的学生信息SELECT FROM student WHERE class_id = 1;```(2)测试创建索引后的查询性能```sql-- 查询学生信息表中所有学生信息SELECT FROM student;-- 查询年龄大于18岁的学生信息SELECT FROM student WHERE age > 18;-- 查询班级ID为1的学生信息SELECT FROM student WHERE class_id = 1;```3. 删除索引```sql-- 删除学生ID索引DROP INDEX idx_student_id ON student;-- 删除学生姓名索引DROP INDEX idx_student_name ON student;-- 删除学生年龄索引DROP INDEX idx_student_age ON student;-- 删除学生性别索引DROP INDEX idx_student_gender ON student; -- 删除学生班级ID索引DROP INDEX idx_student_class_id ON student;```4. 索引重建与优化(1)重建索引```sql-- 重建学生ID索引ALTER TABLE student DROP INDEX idx_student_id;ALTER TABLE student ADD INDEX idx_student_id(id);-- 重建学生姓名索引ALTER TABLE student DROP INDEX idx_student_name;ALTER TABLE student ADD INDEX idx_student_name(name);-- 重建学生年龄索引ALTER TABLE student DROP INDEX idx_student_age;ALTER TABLE student ADD INDEX idx_student_age(age);-- 重建学生性别索引ALTER TABLE student DROP INDEX idx_student_gender;ALTER TABLE student ADD INDEX idx_student_gender(gender);-- 重建学生班级ID索引ALTER TABLE student DROP INDEX idx_student_class_id;ALTER TABLE student ADD INDEX idx_student_class_id(class_id); ```(2)优化索引```sql-- 优化学生ID索引OPTIMIZE TABLE student;```五、实验结果与分析1. 实验结果(1)创建索引前后的查询性能对比通过实验可以发现,创建索引后,查询性能得到了显著提升。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告(四)
班级:学号:姓名:日期:
【实验课程名称】数据库应用
【实验项目名称】索引与关联操作
【实验目的】通过上机掌握索引、关联的创建及使用
【实验仪器及环境】V isual FoxPro6.0软件
【实验内容及步骤】
一、数据库的基本操作
1.在本文件夹下新建名为STUD.PJX的项目,将自由表COUSE.DBF添加到项目中,并在项目中建立
一个名为STUD.TXT的文本文件,文本内容不限。
2.在本项目下新建数据库文件“学生成绩.DBC”,并在此数据库中建立具有如下结构的表文件
Grade.dbf.
字段字段名类型宽度小数
1 学号字符型 5
2 课程号字符型 4
3 成绩数值型 6 2
按“学号”字段降序建立名为“xuehao”的普通索引,并输入以下记录:
3、将本文件夹下的自由表student.dbf添加到数据库中
4、在Student表中为字段设置有效性规则,要求学号字段不能为空,当输入的学号违反规则时,显示的“信息”为“学号不能为空值”。
5、在Student表和Grade表中按“学号”字段建立一对多永久关系。
6、在Student表中为记录设置有效性规则,要求“课时>=学分*18”, 当输入的记录违反规则时,显示的“信息”为“每学分应在18课时以上“。
二、打开学生成绩.DBC创建索引
1、为course表创建一个主索引,索引名为cno、索引表达式为“课程号”。
2、为student表创建一个主索引(升序),索引名和索引表达式均是“学号”。
3、为grade表创建一个普通索引(升序),索引名和索引表达式均是“学号”。
三、建立表间关联
1、打开“学生管理数据库”数据库,建立学生表(student.dbf)和成绩表(grade.dbf)之间的永久关系。
2、建立课程表(course.dbf)和成绩表(sc.dbf)之间的永久关系。
【实验记录】
【实验小结】
通过本次实验··············。