实 验 五 视图、索引与数据更新
- 格式:doc
- 大小:104.00 KB
- 文档页数:5
实验一数据定义操作●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 简单查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Teacher 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
学号:20164477 姓名:陈家凤实验五SQL语言一、目的与要求1.掌握SQL语言的查询功能;2.掌握SQL语言的数据操作功能;3.掌握对象资源管理器建立查询、索引和视图的方法;二、实验准备1.了解SQL语言的查改增删四大操作的语法;2.了解查询、索引和视图的概念;3.了解各类常用函数的含义。
三、实验内容(一)SQL查询功能使用提供的studentdb数据库文件,先附加到目录树中,再完成下列题目,SQL命令请保存到脚本文件中。
1.基本查询(1)查询所有姓王的学生的姓名、学号和性别Select St_Name,St_Sex,St_IDFrom st_infoWhere St_Name like'王%'图5-1(2)查询全体学生的情况,查询结构按班级降序排列,同一班级再按学号升序,并将结果存入新表new中select*into newfrom st_infoorder by Cl_Name desc,st_ID asc图5-2(3)对S_C_info表中选修了“体育”课的学生的平均成绩生成汇总行和明细行。
(提示:用compute汇总计算)因2014版本已不支持compute关键字,所以选择用其他方式。
Select c_no,scoreFrom s_c_infoWhere c_no=29000011group by c_no,score图5-32.嵌套查询(1)查询其他班级中比“材料科学0601班”的学生年龄都大的学生姓名和年龄select st_name,born_datefrom st_infowhere cl_name!='材料科学0601班'and born_date<(select min(born_date) from st_info where cl_name='材料科学0601班')图5-4(2)用exists查询选修了“9710041”课程的学生姓名select st_namefrom st_infowhere exists(select*from s_c_info where c_no=9710041 andst_id=st_info.st_id)图5-5(3)用in查询找出没有选修“9710041”课程的学生的姓名和所在班级。
实验一数据定义操作●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 简单查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Teacher 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
数据库视图和索引的创建及使用数据库是一个用于存储和管理数据的系统,它可以通过视图和索引来提高查询和访问数据的效率。
1.视图的创建和使用:视图是一个虚拟表,它是由一个或多个实际表的子集组成的。
可以将视图看作是从一个或多个表中选择出的行和列的集合。
创建视图可以简化复杂的查询操作,隐藏表的结构,方便用户对数据进行访问。
创建视图的语法如下:```CREATE VIEW view_name ASSELECT columnsFROM tablesWHERE conditions;```其中,view_name是视图的名称,columns是需要选择的列,tables 是需要选择列的表,conditions是筛选条件。
使用视图可以像使用实际表一样进行查询操作,例如:```SELECT*FROM view_name;```视图还支持更新操作,可以对视图进行插入、更新、删除等操作,数据库会将对视图的更新映射到实际的表上。
2.索引的创建和使用:索引是对数据库表中一列或多列的值进行排序的一种结构,它可以提高查询速度,加快数据的检索。
索引可以看作是一个目录,它包含有关表中数据的信息,使得数据库在执行查询时可以更快地找到需要的数据。
创建索引的语法如下:```CREATE INDEX index_nameON table_name (column1, column2, ...);```其中,index_name是索引的名称,table_name是需要创建索引的表名,column1、column2等是需要创建索引的列名。
使用索引可以加快查询速度,例如:```SELECT*FROM table_nameWHERE column_name = value;```如果没有索引,数据库会遍历整个表来找到与条件匹配的行,如果有索引,数据库可以利用索引的结构来快速定位符合条件的行。
需要注意的是,索引并不适合所有的列和表,创建索引会占用额外的磁盘空间,并且在插入、更新和删除操作时需要维护索引的结构,会影响到数据的修改速度。
(完整版)数据库技术与应用实验报告《数据库技术与应用》实验报告班级学号:姓名:实验日期:指导老师:实验名称一、实验一表的建立与维护实验目的与要求 1.初步掌握根据一个应用目标把现实问题抽象为关系数据模型的方法,从而为解决实际问题奠定数据基础。
2.掌握表的建立与维护的一般方法。
3.理解表的记录指针与当前记录的意义。
4.掌握表的打开、关闭、浏览、显示等操作方法。
5.掌握表结构的修改。
6.掌握记录的增加与删除等操作。
7.掌握数据复制方法。
8.二、实验准备 1、复习关系数据库的有关概念,深刻理解Virsual FoxPro中所采用的关系模型的实质及Virsual FoxPro所支持的数据模型。
2、复习表的建立、现实与维护等操作。
三、实验内容下表是某校学生花名册,根据该表完成以下操作,写出操作步骤。
学习成绩性学号姓名别学 009901 张小强男 98 85 否 20XX年获全数外语出生年月否少数民族受奖情况国数学奥林匹克竞赛二等奖。
009902 009903 009904 009905 陈斌李哲男男 88 56 75 88 75 82 72 81 否是否是20XX年获全国中学生田径运动会100米第三名009906 009907 009908 009909 张青松男封小莉女周晓钱倩女女 65 82 65 83 81 73 78 85 否否20XX年获广东省三好学生称号 009910 009911 孙力军男肖彬彬女 64 55 68 95 是否赵大明男冯珊女否否1.设计一个表的结构,使其能描述上表的信息,同时又符合关系模型的基本要求。
2.建立表,输入表中的数据,并将保存在自己盘中。
3.给全部女生的数学成绩加5分。
4.将记录指针定位到第5号记录。
5.将记录指针指向孙力军同学。
6.显示所有姓“张”学生的情况。
7.把表的姓名字段宽度修改为8。
8.浏览记录数据,且表头用汉字。
9.把少数民族学生的记录复制到中。
实验二数据定义一、实验目的1、掌握数据库引擎的使用方法,加深对SQL的语句的理解;2、使用SQL语句创建数据库、删除数据库3、熟练掌握DDL语言的数据定义操作,包括CREATE、ALTER、DROP。
二、实验内容在SQL查询分析器中用CREATE、DROP、ALTER语句创建、删除、修改基本表。
三、实验步骤1、根据课本中的说明,分析S表,P表,J表和SPJ表的主码和外码:(1) S表,P表,J表的主码分别是哪个属性,S表,P表,J表这三个表有没有外码?如果有,请写出。
S表的主码SNO P表的主码PNO J表的主码JNO没有外码(2) SPJ表的主码是由哪几个属性组成的属性组?SPJ表的外码有几个,分别是哪些属性?分别参照哪些表的哪个属性?SPJ主码(SNO,PNO,JNO)外码SNO参照S表的SNO,外码PNO参照P表的PNO,外码JNO参照J 表的JNO。
2. 新建数据库SPJ,并在数据库SPJ中创建S表,P表,J表和SPJ表。
(1)创建供应商表S的sql语句,要求设置主码:CREATE TABLE S (SNO CHAR(4) PRIMARY KEY,SNAME V ARCHAR(40),STATUS SMALLINT,CITY V ARCHAR(20));(2)创建零件表P的sql语句,要求设置主码并将该约束命名为P_PK:CREATE TABLE P(PNO CHAR(4) CONSTRAINT P_PK PRIMARY KEY,PNAME V ARCHAR(40),COLOR CHAR(2),WEIGHT SMALLINT);(3)创建工程项目表J的sql语句,要求设置主码并命名为J_PK:CREATE TABLE J (JNO CHAR(4) CONSTRAINT J_PK PRIMARY KEY,JNAME V ARCHAR(40),CITY V ARCHAR(20));(4)创建基本表供应情况表SPJ的sql语句,要求设置主码和外码:CREATE TABLE SPJ (SNO CHAR(4) REFERENCES S(SNO),PNO CHAR(4) REFERENCES P(PNO),JNO CHAR(4) REFERENCES J(JNO),QTY SMALLINT,PRIMARY KEY(SNO,PNO,JNO));3. 在窗口下键入DROP TABLE S命令,运行后观察结果。
对数据库的常见操作数据库是一种信息存储介质,可以存储大量结构化的数据,通过SQL语句实现对数据库进行查询、维护和操作,以满足各类信息管理需求。
数据库的常见操作主要包括以下几类:一、数据定义操作1. 建立数据库:在磁盘上建立一个新的数据库,用于存储数据。
2. 建立数据表:在数据库中建立一个新的表,用于存储数据。
3. 创建索引:创建一个索引,使查询数据更快捷。
4. 创建视图:创建一个虚拟表,使查询数据更加方便。
二、数据操作操作1. 插入数据:将数据添加到数据库中,使其能够被其他操作使用。
2. 更新数据:更新数据库中已有的数据,使其与新数据保持一致。
3. 删除数据:从数据库中删除已有的数据,以减少不必要的存储空间。
4. 查询数据:使用SQL语句查询数据库中的数据,以获得所需的信息。
三、数据权限操作1. 设置用户权限:为用户分配不同的权限,以管理数据库内容。
2. 设置角色权限:为不同的角色分配不同的权限,以控制数据库的使用。
3. 设置对象权限:为不同的对象分配不同的权限,以控制数据库中特定对象的使用。
4. 设置数据库安全:通过设置合理的权限,防止未经授权的用户访问数据库。
四、数据备份操作1. 备份数据库:使用备份工具将数据库的完整数据备份到磁盘上,以防止数据丢失。
2. 恢复数据库:使用恢复工具将备份的数据恢复到原始数据库,以恢复数据库之前的状态。
3. 日志备份:使用日志备份工具将数据库日志备份到磁盘上,以便检查数据库操作的历史记录。
4. 数据迁移:使用数据迁移工具将数据库从一个服务器迁移到另一个服务器,以改变数据库的位置。
五、数据优化操作1. 索引优化:使用索引优化工具检查并优化数据库中的索引,以改善查询性能。
2. SQL优化:检查并优化SQL语句,以改善查询性能。
3. 数据库结构优化:检查并优化数据库结构,以改善查询性能。
4. 缓存优化:检查并优化数据库缓存,以减少查询次数,提高查询性能。
以上就是关于“数据库的常见操作”的详细说明,数据库的操作可以很大程度上提高数据库的性能,以满足各类信息管理需求。
实验SQL数据更新语句一、实验目的本次实验了解SQL Server 2005的启动,熟悉如何使用SSMS和5@1.建立数据库和表,并加深对于完整性的理解。
一.二、背景知识在使用数据库的过程中,接触最多的就是数据库中的表。
表是数据存储的地方,是数据库中最重要的部分,管理好表也就管理好了数据库。
表是由行和列组成的。
创建表的过程主要就是定义表的列的过程。
表的列名在同一个表中具有唯一性,同一列的数据属于同一种数据类型。
除了用列名和数据类型来指定列的属性外,还可以定义其它属性:是否为空、默认值、标识符列、全局唯一标识符列等。
约束是SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。
在SQL Server中有5种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)x 检查约束(Check Constraint)和默认约束(Default Constraint) 0...三、实验目的加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌握掌握单个元组及多个元组的插入、修改及删除操作的实现过程加深对更新操作时数据库中数据一致性问题的了解加深对约束条件在数据更新操作执行中的作用问题的了解。
实验报告要求1、写出与上述任务相对应的SQL更新语句(实验报告上写出3、5、10的SQL语句)2、并记录在实验过程中遇到的问题、解决办法及心得体会。
五、实验内容方法一:在SSMS中插入、删除及修改数据,方法二:在查询编辑器中写SQL插入、删除及修改数据设有一个SPJ数据库,包括S, P, J, SPJ四个关系模式:S (SNO, SNAME, STATUS, CITY)dlim-S dbo. F dbo. JP (PNO, PNAME, COLOR, WEIGHT)PNAM;vardnar(2D)08L8Cbi3l(4)0WEIGm-int H□J (JNO, JNAME, CITY)列名数据类型允许空供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表1由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
实验五视图的创建和使用5.1概述5.1.1任务一理解视图的概念视图是一个虚拟表,其内容由查询定义。
同真实的表一样,视图包含一系列带有名称的列和行数据。
但是,视图并不在数据库中以存储的数据集合形式存在。
行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基表来说,视图的作用类似于筛选。
定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。
视图被定义后便存放在数据库中,对视图中的数据的操作与对表的操作一样,可以对其进行查询、修改和删除,但对数据的操作要满足一定的条件。
当对视图所看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。
5.1.2任务二理解视图的优点用户可以根据自己的实际需要创建视图,使用视图有很多优点,主要有以下几点:1、简单性视图可以屏蔽数据的复杂性,简化用户对数据库的操作。
使用视图,用户可以不必了解数据库的结构,就可以方便地使用和管理数据。
那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
2、逻辑数据独立性视图可以使应用程序和数据库表在一定程度上独立。
如果没有视图,应用一定是建立在表上的。
有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。
3、安全性通过视图用户只能查询和修改他们所能见到的数据。
数据库中的其他数据则既看不见也取不到。
5.2创建视图创建视图的方法有三种:在创建视图前请考虑如下原则:只能在当前数据库中创建视图.视图名称必须遵循标识符的规则,且对每个用户必须为唯一.此外,该名称不得与该用户拥有的任何表的名称相同.可在其他视图和引用视图的过程之上建立视图.SQLServer 2000允许嵌套多达32级视图若要创建视图,数据库所有者必须授予用户创建视图的权限,并且用户对视图定义中所引用的表或视图要有适当的权限5.2.1任务一使用企业管理器创建视图使用企业管理器创建视图的具体操作步骤如下:1、打开企业管理器窗口,打开“新建视图”对话框。
数据库索引的更新与维护方法1. 引言数据库索引是一种对数据库表中的数据进行快速访问和搜索的数据结构。
它可以加速数据的检索和查询操作,提高数据库的性能。
然而,随着数据库中数据的不断增加和修改,索引也需要进行更新和维护。
本文将介绍数据库索引的更新与维护方法,以帮助读者更好地理解和应用数据库索引。
2. 索引的作用与分类数据库索引可以加速数据的检索和查询操作,它通过构建一棵有序的数据结构,将表中的数据按照一定的规则进行分类和排序。
常用的索引类型有B树索引、哈希索引和全文索引等。
不同的索引类型适用于不同的场景,选择合适的索引类型可以提高查询的效率和性能。
3. 索引的更新索引的更新是指在数据库中对表的数据进行插入、删除和修改等操作时,对索引数据结构进行相应的更新。
索引的更新需要考虑以下几个方面:- 插入操作:当向数据库中插入一条新的记录时,需要在索引中添加相应的键值对。
插入操作的开销取决于索引类型的选择和数据规模的大小。
- 删除操作:当从数据库中删除一条记录时,需要在索引中删除相应的键值对。
删除操作的开销也与索引类型和数据规模有关。
- 修改操作:当对表中的记录进行修改时,可能会涉及到索引中的键值对的更新。
修改操作的开销取决于具体的更新需求和索引的规模。
4. 索引的维护索引的维护是指对索引数据结构进行定期的优化和重建,以保持索引的性能和效率。
索引的维护需要考虑以下几个方面:- 查找频率:根据索引的使用频率,可以判断是否需要对索引进行重建或优化。
如果某个索引被频繁地访问,那么可能需要重建或优化该索引。
- 索引的碎片:索引的插入、删除和修改等操作可能导致索引数据结构的碎片化。
定期对索引进行碎片整理,可以提高索引的性能和效率。
- 统计信息的更新:索引的优化和重建需要依赖于表中数据的统计信息。
定期更新表中的统计信息,可以为索引的优化和重建提供准确的数据支持。
5. 索引的调优索引的调优是指通过对索引进行合理的设计和规划,提高查询的效率和性能。
实验五视图、索引及数据更新一、实验目的:熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,熟练掌握数据插入、修改和删除的使用,为后继学习作准备。
二、实验属性(验证性)1.了解并掌握SQL查询分析器及企业管理器的使用;2.掌握基本表的定义、删除与修改。
三、实验原理SQL语言应用。
四、实验步骤:(1) 启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查询分析器;(2) 对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。
1 建立索引建立唯一索引:例3.1 为学生选课数据库中的Students,Courses,SC三个表建立索引。
其中Students表按Sname升序建唯一索引,Courses表按Cname升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
查看自己建立的索引:2 删除索引例3.2 删除基本表SC上的Rep_SCno索引。
然后查询看索引是否还存在。
理解索引的意义。
例3.3 删除基本表student上的Rep_Sno索引。
3 建立视图例3.4 建立数学系学生的视图C_Student,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。
例3.5 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图Student_CR。
例 3.6定义一个反映学生出生年份的视图student_birth(sno,sname,s_birth,ssex,sdept)。
视图建立后,使用命令查询自己创建的视图:4 查询视图例3.7 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。
例3.8 在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称(Cname)。
实验名称:实验五视图、索引与数据库关系图班级学号姓名日期所在院系指导老师成绩一、试验目的使学生掌握SQL Server中的视图创建、查看、修改和删除的方法;索引的创建和删除的方法;数据库关系图的实现方法。
加深对视图和SQL Server数据库关系图的理解。
二、实验内容(1)创建、查看、修改和删除视图。
(2)创建、删除索引文件。
(3)创建数据库关系图。
三、试验步骤1)视图操作(1)创建视图。
使用SQL Server Management Studio直接创建,步骤如下:1.单击数据库前面的+号,然后再单击“学生选课”数据库前面的+号,右击“视图”,在弹出的快捷菜单中选择“新建视图”命令,弹出“添加表”对话框。
如图5.1所示图5.1 “添加表”对话框2.在“添加表”对话框中,添加视图数据来源的表,这里添加三张表,分别是student、course和sc表。
添加表后,单击添加表对话框中的“关闭”按钮,出现创建视图界面。
如图5.2所示图5.2添加字段前的效果图3.如果要在视图中显示某些表的某个字段,只需单击其字段前的复选框即可,同时在中间列中会显示该字段,在代码区中会看到具体实现的代码。
4.如果要查看视图,单击常用工具栏中的“执行”按钮,就可以看到视图的数据显示,如由字段student.sno、sname、cname、grade生成的视图效果。
如图5.3所示图5.3 生成视图效果图5.在创建视图中还可以为字段添加列名、进行排序、添加多个筛选条件。
6.单击常用工具栏中的“保存”按钮,就可以弹出保存视图提示对话框,输入视图名字即可,为view_stu_grade。
(2)修改视图。
视图创建好后,就可以利用它进行查询信息了。
如果发现视图的结构不能很好的满足要求,还可以对它进行修改。
使用SQL Server Management Studio直接修改,步骤如下:1.在SQL Server Management Studio中,选择服务器、数据库、并使数据库展开,再单击“视图”前面的+,就可以看到已存在的视图了。
数据库技术与应用第二版课后答案【篇一:数据库技术与应用sql习题答案】class=txt>4. 启动查询分析器,在查询分析器中使用transact-sql 语句create database创建studb数据库。
然后通过系统存储过程sp_helpdb查看系统中的数据库信息create database studbsp_helpdb5. 在查询分析器中使用transact-sql语句alter database修改studb数据库的设置,指定数据文件大小为5mb,最大文件大小为20mb,自动递增大小文1mb。
alter database studbmodify file(name=studb,size=5mb,maxsize=20mb,filegrowth=1mb)7. 使用企业管理器将studb数据库的名称更改为student_db。
alter database studbmodify name=student_db8. 使用transact-sql语句drop database删除student_db数据库。
drop database student_db实验3 sql server 数据表的管理5. 使用transact-sql语句create table在studentsdb数据库中创建grade表。
create table grade(学号 char(4),课程编号 char(4),分数 decimal(5))8. 使用transact_sql语句insert into...values向studentsdb数据库的grade表插入以下数据:学号课程编号分数0004 0001 80use studentsdbgoinsert into gradevalues(0004,0001,80)9. 使用transact_sql语句alter table修改curriculum表的“课程编号”列,使之为非空。
实验五视图1实验目的(1)掌握SQL视图语句的基本使用方法,如CREATE VIEW、DROP VIEW。
(2)掌握视图更新、WITH CHECK OPTION等高级功能的使用。
2实验内容2.1 掌握SQL视图语句的基本使用方法(1)创建视图(省略视图列名)。
(2)创建视图(不能省略列名的情况)。
(3)删除视图(RESTRICT / CASCADE)。
2.2 掌握视图更新和WITH CHECK OPTION的高级使用方法(1)创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。
(2)创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。
(3)创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。
3实验要求(1)深入复习教材第三章SQL有关视图语句。
(2)根据书上的例子,针对TPCH数据库模式设计各种视图语句,每种类型视图语句至少要设计一个,描述清楚视图要求,运行你所设计的视图语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。
也可以按照附1所列示例做实验。
(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。
(4)思考题:KingbaseES把视图的定义存储在那个系统表中?如何查看某个视图的定义?4实验步骤4.1 掌握SQL视图语句的基本使用方法(1)创建视图(省略视图列名)。
(2)创建视图(不能省略列名的情况)。
(3)删除视图(RESTRICT / CASCADE)。
4.2 掌握视图更新和WITH CHECK OPTION的高级使用方法(4)创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。
(5)创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。
(6)创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。
《数据库原理与应用》课程学习指导书何小卫编2005年5月于浙江师范大学教学大纲 (2)第一章绪论 31. 知识点与重点 (3)2.重要问题 (6)第二章关系数据库 61.知识点与重点 (6)2.重要题型 (9)第三章SQL 91. 知识点与重点 (9)2.重要题型 (13)3.问题 (17)第四章关系系统与查询优化181.知识点与重点 (18)2.重要题型 (20)第五章关系数据理论211. 知识点与重点 (21)2.重要题型 (23)第六章数据库设计241.知识点与重点 (24)2.重要题型 (29)第七章数据库恢复301. 知识点与重点 (30)2.重要题型 (33)第八章并发控制331. 知识点与重点 (33)2.重要题型 (37)第九章数据库安全371. 知识点与重点 (37)2.重要题型 (39)第十章数据库完整性391. 知识点与重点 (39)2.重要题型 (41)实验一Sql Server 数据库、表的管理 42实验二基本表的定义、删除、修改,建立和删除索引 43 实验三查询、数据更新、视图 44实验四嵌入式SQL的使用 45实验五数据库设计 46《数据库原理与应用》教学大纲一、课程概述数据库原理与应用是一门专业技术基础课,是计算机领域中最重要的技术之一,是软件学科的一个独立分支,包括数据库系统理论与数据库设计与应用两大部分。
通过对本课程的学习,可以获得有关数据库系统的基本理论知识,提高计算机理论水平;另一方面,通过对数据库系统理论的分析以及对数据库设计理论的学习,并结合相关学科的理论与实践知识,可以培养解决信息管理与工程设计中的实际问题的能力。
二、教学目的和要求本课程是计算机专业高年级学生的一门专业课,本课程在介绍数据库的基本知识、基本理论原理、方法技术的基础上,通过实验使学生掌握数据库创建、维护、查询等操作,并能在嵌入式环境中实现对数据库的操作,并能运用数据库的基本知识和软件工程的基本思想进行数据库的设计与实现。
实验报告课程名称___________ ______________ 实验名称视图及索引系别___________ ___ ____ 专业班级___________ _______ 指导教师________________学号___________ _ 姓名_______ ____实验日期_______ ______实验成绩________ __一、实验目的1.了解视图和索引的含义。
2.掌握创建视图和索引的方法。
二、实验环境1.硬件环境:微机2.软件环境:Windows,Sql server2000或更高版本三、实验内容及步骤题目根据要求编写以下SQL查询语句,并对运行结果截图第一题视图1.1.打开Test数据库,创建一个视图test_orders,要求统计病人表中每个年龄的病人数,显示的信息有病人年龄,每个年龄段的病人数。
1.2.利用test_orders视图,查看的每个年龄段的病人年龄,每个年龄段的病人数。
1.3.用sp_helptext命令或从系统表syscomments查看视图的内容。
2.打开Test数据库,创建一个视图test_orders1,要求从病历表中,查询住院日期在2008年期间的所有病人编号与病人姓名。
3.打开Test数据库,创建一个视图test_orders2,要求统计每个病人的病人编号,病人姓名以及结算总金额。
4.打开Test数据库,创建一个视图test_order3,要求从病历表中,显示结算总金额最大的前2名病人的病人编号和结算总金额。
5.将视图test_order3进行修改,进行加密处理。
步骤1.2.第二题索引1.2.。
3.在医生备份表上建立一个关于“年龄”升序的唯一非簇集索引,索引名为Index_DocOld。
4.查看医生备份表上创建的所有索引信息。
5.删除已创建的名为Index_DocOld索引。
步骤1.2.五、实验小结1.完成情况2.实验遇到的问题情况及解决办法。
数据库实验五:视图的应用一、实验目的与要求:1.实验目的(1)理解视图的概念;(2)掌握视图的使用方法。
(3)理解视图和基本表的异同之处。
2.实验要求(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。
2)基于单个表按选择操作定义视图。
3)基于单个表按选择和投影操作定义视图。
4)基于多个表根据连接操作定义视图。
5)基于多个表根据嵌套操作定义视图。
6)定义含有虚字段的视图。
(2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。
(3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。
(4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。
二、实验内容1、实验原理(1)视图是用SQL SELECT查询定义的,创建视图命令格式如下:CREATE VIEW <视图名> AS <SELECT-查询块>(2)删除视图的命令格式如下:DROP VIEW <视图名>2、实验步骤与结果(1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。
(2)输入自己编好的程序。
(3)检查已输入的程序正确与否。
(4)运行程序,并分析运行结果是否合理和正确。
在运行时要注意当输入不同的数据时所得到的结果是否正确。
(5)输出程序清单和运行结果。
(1)参照实验五中完成的查询,按如下要求设计和建立视图:1)基于单个表按投影操作定义视图。
create view v asselect教师编号,姓名from教师create view v_order asselect*from教师where职称='教授'3)基于单个表按选择和投影操作定义视图。
create view v_cuss asselect教师编号,姓名,职称from教师where职称='教授'4)基于多个表根据连接操作定义视图。
实验五视图、索引及数据更新
一、实验目的:
熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,
熟练掌握数据插
入、修改和删除的使用,为后继学习作准备。
二、实验属性(验证性)
1.了解并掌握SQL查询分析器及企业管理器的使用;
2.掌握基本表的定义、删除与修改。
三、实验原理 :SQL语言应用。
四、实验步骤:
(1) 启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查询分析器;
(2) 对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。
1 建立索引
建立唯一索引:
例3.1 为学生选课数据库中的Students,Courses,SC三个表建立索引。
其中Students表按Sname升序建唯一索引,Courses表按Cname升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
查看自己建立的索引:
2 删除索引
例3.2 删除基本表SC上的Rep_SCno索引。
然后查询看索引是否还存在。
理解索引的意义。
例3.3 删除基本表student上的Rep_Sno索引。
3 建立视图
例3.4 建立数学系学生的视图C_Student,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。
例 3.5 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图Student_CR。
例 3.6定义一个反映学生出生年份的视图student_birth(sno,sname,s_birth,ssex,sdept)。
视图建立后,使用命令查询自己创建的视图:
4 查询视图
例3.7 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。
例3.8 在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称(Cname)。
例 3.在视图student_birth(sno,sname,s_birth,ssex,sdept)中查询1990年以后出生的学生信息。
5 更新视图
例3.9 将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海”。
例3.10 向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“2002814568”,姓名为“李海”,年龄为20岁。
例3.11 删除数学系学生视图C_Student中学号为“S09”的记录。
Delete From c_student
Where sno='20028145371';
6 删除视图
例3.12 删除视图Student_CR。
7 插入数据
例 3.13 设数据库中已有一个关系History_Student,其关系模式与Students完全一样,试将关系Students中的所有元组插入到关系History_Student中去。
Insert into History_Student
Select * from student;
例3.14 在SC表中插入一条新记录,学号为“200400812145”,选的课程号为“C01123”,成绩为89。
首先在student 表中添加学生200400812145
然后在sc表中添加记录
8 修改数据
例3.14 将学号为“S03”的学生年龄改为22岁,即要修改满足条件的一个元组的属性值。
Update student
Set sage=22 where sno='S03';
例3.15 将所有学生的年龄增加1岁。
即要修改多个元组的值。
例3.16 将数学系所有学生的成绩都加5分。
9 删除数据
例3.17 删除学号为“S04”的学生选修的课号为“C02”的记录。
Delete from sc
Where sno='S04' and cno='C02';
例3.18 删除所有计科系学生的选课记录。