实 验 五 视图、索引与数据更新
数据库SQL实验题目(14-15-1)

实验一数据定义操作●实验目的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.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
实验5实验报告

学号: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”课程的学生的姓名和所在班级。
数据库SQL实验题目(14-15-1)解析

实验一数据定义操作●实验目的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.把少数民族学生的记录复制到中。
2013《数据库原理及应用》实验报告答案

实验二数据定义一、实验目的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数据更新语句一、实验目的本次实验了解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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五视图、索引及数据更新
一、实验目的:
熟练掌握索引的建立与删除的方法,熟练掌握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 删除所有计科系学生的选课记录。