大数据库-第四次实验报告材料-视图-t-sql语句
数据库SQL语句实验报告
数据库SQL语句实验报告《数据库原理及应⽤》实验报告SQL语句部分总成绩:实验⼀熟悉SQL SERVER,数据定义实验实验⼀成绩:⼀、实验⽬的1、利⽤查询分析器创建数据库2、利⽤查询分析器⽤SQL语⾔定义基本表、索引并进⾏相关操作⼆、实验步骤及内容在以下实验中,使⽤学⽣-课程数据库,它描述了学⽣的基本信息、课程的基本信息及学⽣选修课程的信息。
1.创建学⽣课程数据库5.将以上创建表S、C、SC的SQL命令以.SQL⽂件的形式保存在磁盘上。
6、在表S上增加“出⽣⽇期”属性列。
7、删除表S的“年龄”属性列。
8、删除S姓名列的唯⼀值约束。
9、修改SC表成绩属性列为精确数字型。
10、在表S上,按“Sno”属性列的唯⼀值⽅式建⽴索引。
11、删除表SC,利⽤磁盘上保存的.SQL⽂件重新创建表SC。
12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。
三、实验结果:1.创建学⽣课程数据库create database Studend;(Sno CHAR(9)PRIMARY KEY,Sname CHAR(20)UNIQUE,Ssex CHAR(2),Sage smallint,Sdept char(20),);3.创建课程关系表C :(Cno char(4)primary key,Cname CHAR(40),Cpno char(4),Ccredit SMALLINT,);(Sno char(9),Cno char(4),Grade smallint,);5.将以上创建表S、C、SC的SQL命令以.SQL⽂件的形式保存在磁盘上。
6、在表S上增加“出⽣⽇期”属性列。
alter table S add Sbirthday datetime;7、删除表S的“年龄”属性列。
alter table S drop column Sage;8、删除S姓名列的唯⼀值约束。
alter table S drop UQ__S__7D78A4E7;9、修改SC表成绩属性列为精确数字型。
数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)
数据库T-SQL语⾔操作(T-SQL语句、数据库、表、视图、索引)T-SQL语⾔按⽤途分四部分1. 数据定义语⾔(CREATE,DROP,ALTER)2. 数据操作语⾔(INSERT,DELETE,UPDATE)3. 数据查询语⾔(SELECT)4. 数据控制语⾔(GRANT,REVOKE,DENY)数据类型1. 系统数据类型2. ⽤户⾃定义数据类型(建⽴⽅式:a.图形化⽅式 b.命令⽅式)1use TEST2EXEC sp_addtype sno,'varchar(10)','nonull'3EXEC sp_droptype sno变量命名规则:字母、下划线、@或#开头,但不能全为下划线、@或#不能为“关键字”,不能嵌⼊空格及其他特殊字符,如需使⽤则需要双引号或⽅括号括起1.局部变量:由⽤户声明,必须以@开头,只在定义该变量的过程中有效,局部变量必须先声明后使⽤注意:第⼀次声明变量时,其值设置为NULL。
局部变量不能使⽤“变量=变量值”的格式进⾏初始化,必须使⽤SELECT或SET语句来设置其初始值。
如果声明字符型的局部变量,⼀定要在变量类型中指明其最⼤长度,否则系统默认其长度为1。
若要声明多个局部变量,请在定义的第⼀个局部变量后使⽤⼀个逗号,然后指定下⼀个局部变量名称和数据类型。
1USE student2DECLARE@var1char(10),@var2int3SET@var1='number'4select@var2=cgrade5from sc6where sno='201810010'78print@var1+"s"2.全局变量:由系统定义,供SQL server系统内部使⽤的变量,任何程序任何时间都可以调⽤。
通常以“@@”开头。
T-SQL语句1.注释语句(1) --(2) /*……*/2.批处理--GO3.控制流程语句(1) begin...end语句(相当于C语⾔中的{} )(2) if...else语句(可嵌套)(3)case语句(多条件选择语句)(4)print语句(屏幕输出语句)(5)while语句(有条件的循环语句)(6)goto语句(⽆条件跳转语句)(7)break语句(8)continue语句4.常⽤函数(系统函数、⽤户⾃定义函数)⼀些系统函数:(1)字符串函数(2)数学函数(3)⽇期和时间函数(4)聚合函数注意:⽤户⾃定义函数:1.分类:标量值函数:返回单个值内联表值函数:返回可更新的表多语句表值函数:返回不可更新的表2.标量值函数命令⽅式创建1CREATE FUNCTION f2(@a real,@b real) 2RETURNS real3AS4BEGIN5IF@a>=@b6RETURN@a7RETURN@b8END910PRINT'最⼤值为'11PRINT dbo.f2(77,56)1CREATE FUNCTION f3(@n real)2RETURNS real3AS4BEGIN5DECLARE@i real,@sum real6SET@i=07SET@sum=08WHILE@i<@n9BEGIN10SET@i=@i+111SET@sum=@sum+@i12END13RETURN@sum14END1516PRINT dbo.f3(10)3.⾃定义函数的调⽤(1)标量值函数可以使⽤select、print、exec调⽤(2)表值函数只能⽤select调⽤4.删除⽅式drop function 函数名数据库数据库概述1.数据库常⽤对象:表、数据类型、视图、索引、存储过程、触发器系统数据库:master、model、tempdb、msdb2.数据库存储结构(数据库⽂件、数据库⽂件组):数据库⽂件:存放数据库数据和数据库对象的⽂件。
数据库实验4_数据库查询与视图
数据库实验4_数据库查询与视图在学⽣选课数据库中完成规定查询,并创建视图。
1.查询线性代数不及格的同学的学号和姓名;SQL语句为:SELECT名单$.学号,姓名FROM名单$,学⽣选课信息和成绩$,课程$WHERE名单$.学号=学⽣选课信息和成绩$.学号AND课程$.课号=学⽣选课信息和成绩$.课号AND 课程$.课程名='线性代数'AND学⽣选课信息和成绩$.成绩<60;执⾏后结果为:2.查询没有选课记录的同学的所有基本信息;SQL语句为:SELECT*FROM名单$WHERE NOTEXISTS(SELECT*FROM学⽣选课信息和成绩$WHERE学号=名单$.学号);执⾏后结果为:3.查询具有简介先修课的课程信息及对应的先修课名;SQL语句为:SELECTFIRST.课号,SECOND.课程名FROM课程$FIRST,课程$SECONDWHEREFIRST.先修课号=SECOND.课号;执⾏后结果如下:4.统计⾼等数学(1)的平均成绩;SQL语句为:SELECT AVG(成绩)FROM学⽣选课信息和成绩$,课程$WHERE学⽣选课信息和成绩$.课号=课程$.课号AND课程$.课程名='⾼等数学(1)'; 执⾏后结果如下:5.统计各门课的选课⼈数;SQL语句为:SELECT课号,COUNT(学号)FROM学⽣选课信息和成绩$GROUPBY课号;执⾏后结果为:6.查询选修5门课以上的学⽣的学号;SQL语句为:SELECT学号FROM学⽣选课信息和成绩$GROUPBY学号HAVING COUNT(*)>5;执⾏后结果为:7.⽤你的学号查询和你⼀个班的同学的学号和姓名;SQL语句为:SELECT学号,姓名FROM名单$WHERE班级IN(SELECT班级FROM名单$WHERE学号='201000800145');执⾏后结果如下:8.查询⾼等数学(1)成绩⽐你⾼出10分以上的同学的姓名和对应成绩;SQL语句为:SELECT姓名,成绩FROM名单$,学⽣选课信息和成绩$WHERE名单$.学号=学⽣选课信息和成绩$.学号AND学⽣选课信息和成绩$.课号='82006010'AND成绩>(SELECT成绩+10FROM学⽣选课信息和成绩$,课程$WHERE学⽣选课信息和成绩$.课号=课程$.课号AND课程$.课程名='⾼等数学(1)' AND学⽣选课信息和成绩$.学号='201000800145')执⾏后结果为:9.找到每门课获得最⾼成绩的同学的学号、姓名、课名和成绩;选做。
数据库实验报告sql语句
合肥工业大学实验报告一课程名称:数据库系统原理及应用学号: 20095406 姓名:刘晓雷专业班级:电子商务09-1班指导教师:马华伟二零一一年十月一、实验目的:(1)熟练掌握数据更新语句,灵活地操作插入数据、修改数据和删除数据;(2)熟练掌握关系数据库中的完整性概念的应用;(3)了解数据录入的方法和过程。
(4)掌握单表查询的基本方法;(5)掌握连接查询的基本方法;(6)熟练掌握以下练习,并进行以下各类查询:①选择表中的若干列、查询全部列、查询经过计算的值;②选择表中的若干元组,即消除取值重复的行与查询满足指定条件的元组(包括:比较大小、确定范围、确定集合、字符匹配、涉及空值和多种条件查询);③对查询结果排序;④使用集函数;⑤对查询结果分组(7)熟练掌握以下练习,并进行下列各类连接查询:①等值与非等值连接查询;②自身连接;③外连接;④复合条件连接;(8)掌握嵌套查询的基本方法;(9)掌握集合查询的基本方法;(10)熟练掌握查询视图操作(11)熟练掌握更新视图操作(12)熟练关系的完整性概念,领会视图的用途(13)练习以下各类查询:①带有IN谓词的子查询;②带有比较运算符的子查询;③带有ANY或ALL谓词的子查询;④带有EXISTS谓词的子查询;⑤视图查询与更新操作;二、实验要求:(1)为了便于程序正确性测试,需要对自己建立起来的数据表录入一些模拟数据(模拟数据是指符合数据格式要求的假数据),然后按照教材中结构化查询语言SQL章节例题和习题自己组织SQL语句:(2)设计的SQL程序应该涵盖数据更新操作的全部内容不,包括插入、修改、删除;(3)综合运用SQL语句实现数据插入、修改、删除等操作的综合运用能力。
(4)按照SQL语言编程要求,实现各类查询和检索操作;(5)利用后台的SQL平台环境,编程验证数据库的控制保护功能。
(6)将查询视图命令等价改写为对数据表的查询操作命令,利用SQL编程设计完成并进行效率分析。
数据库 T-SQL程序设计 实验报告
实验报告课程名称:数据库原理与应用上机实验名称:T-SQL程序设计专业班级:计算机科学与技术1103 指导教师:卫凡学生姓名:贾梦洁学期:2013-2014学年第一学期实验报告课程名称数据库原理与应用实验名称T-SQL程序设计姓名贾梦洁学号 201107010330专业班级计1103实验日期2013年12月12日成绩指导教师卫凡一、实验目的1.熟练掌握变量的定义和赋值。
2. 掌握各种运算符。
3. 掌握流程控制语句,尤其是条件语句和循环预语句。
二、实验环境硬件环境:PC机软件环境:操作系统为Microsoft Windows 2000或以上版本。
数据库管理系统为Microsoft SQL Server 2000标准版或企业版。
三、实验内容1. 变量的定义与输出。
2. 条件结构的使用。
四、实验步骤1.创建一名为Student_name的局部变量,并在select语句中使用该变量查找“张强”同学所选课程的成绩情况,给出相应的语句段和运行结果。
2.将选修课程号为720的同学的成绩增加3分,同时使用全局变量@@rowcount检查获得更新的数据行数目。
修改前:修改后:4.利用学生_课程数据库中的SC表查找学生的成绩信息并判断是否有某学生的某门课程的成绩在90分以上的信息,若有,则显示学号、姓名、课程名和成绩,否则输出信息,说明“不存在成绩大于90分的学生!”。
5.从学生_课程数据库中查询所有学生选课成绩情况:姓名、课程名、成绩。
要求:将学生的百分制转换为5级评分制,成绩大于等于90显示为“优秀”,成绩在80-89分显示为“良好”,“70-79”分显示为“中等”,成绩在60-69显示为“及格”,60以下显示为“不及格”,没成绩的显示为“未考”。
并且输出记录按下列要求排序:先按学号升序,再按课程号升序,最后按成绩降序。
按学号升序排序:按课程号升序排序:order by SC.课程号按成绩降序排序:order by 成绩 desc6.利用学生_课程数据库中的SC表,编程实现:如果所有学生所有课程的平均成绩高于80分,使用while循环就将每门成绩减5分,然后查找所有学生所有课程中的最高分,如果最高分大于或等于85分,while循环重新启动并再次将每门成绩减5分并继续查找所有学生所有课程中的最高分,一直循环到最高分低于85分循环停止,然后退出。
数据库实验四
《数据库管理系统》实验报告2011/2012学年第2学期实验项目:数据库班级:学生:(学号********* )地点:经管院A 实验室机器号:指导教师:时间:2012 年 6 月 3 日经济管理学院信息管理教研室实验四:数据库综合实验一、实验目的1.了解DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握查询条件表达式和使用方法;2.掌握Windows NT认证模式下数据库用户帐号的建立与取消方法;3.掌握混合模式下数据库用户帐号的建立与取消方法;4.掌握数据库用户权限的设置方法;5.熟悉数据库数据库用户帐号的权限分配、回收等方法;6.了解数据库角色的分类、作用及使用方法。
7.掌握主键约束、外键约束及及check约束的用法;8.掌握默认值约束的应用;9.了解规则、触发器的使用。
10.熟悉数据库备份及恢复机制;11.了解SQL Server的数据备份和恢复机制;12.掌握SQL-Server中数据库备份和恢复的方法。
二、实验环境已安装SQL Server 2005的计算机;具有局域网网络环境,有ip地址;三、实验要求1.学会用DDL语言进行对表、索引、视图的增加、删除和改动;2.了解SQL Server 2005系统安全;3.熟悉数据库用户、服务器角色及数据库角色的用法;4.熟悉数据库完整性相关概念及约束;5.了解约束、默认值及规则;6.了解创建备份设备和进行数据库完全备份操作的方法;7.了解进行数据库恢复的步骤;8.完成实验报告;四、实验内容及步骤(一)用T-SQL语句操作索引、视图1.建立计算机科学系学生的视图2.由学生、课程和选修课三个表,定义一个计算机科学系的学生成绩视图,其属性包括学号、姓名、课程名和成绩3.将学生的学号、总成绩、平均成绩定义成一个视图4.对student表按学号降序建唯一索引,索引名stunods。
5.删除索引stunods。
(二)数据库的安全性以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现以下操作,并独立写出部分题目的程序代码;1.在当前计算机中增加一个用户zhang和cheng,密码为secret。
SQL实验四-数据库的查询和视图
学校代码:10128学号:************《数据库原理及应用》实验报告题目:数据库的查询和视图****:**学院:理学院系别:数学系专业:信息与计算科学班级:信计12-2****:**二〇一五年四月一、练习目的1、数据库的查询(1)掌握SELECT语句的基本语法;(2)掌握子查询的表示;(3)掌握连接查询的表示;(4)掌握SELECT语句的GROUP BY子句的作用与使用方法;(5)掌握SELECT语句的ORDER BY子句的作用与使用方法;2、视图的使用(1)熟悉视图的概念和作用;(2)熟悉视图的创建方法;(3)熟悉如何查询和修改视图。
二、练习准备1、数据库的查询(1)了解SELECT语句的基本语法格式;(2)了解SELECT语句的执行方法;(3)了解子查询的表示方法;(4)了解连接查询的表示;(5)了解SELECT语句的GROUP BY子句的作用与使用方法;(6)了解SELECT语句的ORDER BY子句的作用;2、视图的使用(1)了解视图的概念;(2)了解创建视图的方法;(3)了解并掌握对视图的操作。
三、实验程序实验4.1 数据库的查询1、(1)对于实验2给出的数据库结构,查询每个雇员的所有数据. USE YGGLGOSELECT*FROM Employees(2)用SELECT语句查询Employees表中每个雇员的地址和电话. SELECT Address,PhoneNumberFROM Employees(3)查询EmployeeID为000001的雇员的地址和电话.SELECT Address,PhoneNumberFROM EmployeesWHERE EmployeeID='000001'GO(4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别制定地址和电话. SELECT Address AS地址,PhoneNumber AS电话FROM EmployeesWHERE Sex=0(5)查询Employees表中员工姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”. SELECT Name AS姓名,CASEWHEN Sex=1 THEN'男'WHEN Sex=0 THEN'女'END AS性别FROM Employees(6)计算每个员工的实际收入.SELECT EmployeeID,实际收入=InCome-OutComeFROM Salary(7)获得员工总数.SELECT COUNT(*)FROM Employees(8)找出所有姓王的雇员的部门号.SELECT DepartmentIDFROM EmployeesWHERE Name LIKE'王%'(9)找出所有收入在2000~3000之间的员工号码.SELECT EmployeeIDFROM SalaryWHERE InCome BETWEEN 2000 AND 3000(10)使用INTO子句,由表Salary创建“收入在1500以上的员工表”,包括编号和收入. SELECT EmployeeID as编号,InCome as收入INTO收入在以上的员工FROM SalaryWHERE InCome>15002、子查询的使用.(1)查询在财务部工作的雇员的情况.SELECT*FROM EmployeesWHERE DepartmentID=(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName='财务部')(2)查询财务部年龄不低于研究部雇员年龄的雇员的姓名.SELECT NameFROM EmployeesWHERE DepartmentID IN(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName='财务部')ANDBirthday!>ALL(SELECT BirthdayFROM EmployeesWHERE DepartmentID IN(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName='研发部' ))(3)查找比所有财务部的雇员收入都高的雇员的姓名. SELECT NameFROM EmployeesWHERE EmployeeID IN(SELECT EmployeeIDFROM SalaryWHERE InCome>ALL(SELECT InComeFROM SalaryWHERE EmployeeID IN(SELECT EmployeeIDFROM EmployeesWHERE DepartmentID=(SELECT EmployeeIDFROM DepartmentsWHERE DepartmentName='财务部')))))3、连接查询的使用(1)查询每个雇员的情况及其薪水的情况SELECT Employees.*,Salary.*FROM Employees,SalaryWHERE Employees.EmployeeID=Salary.EmployeeID(2)使用内连接的方法查询名字为“王林”的员工所在的部门SELECT DepartmentNameFROM Departments JOIN EmployeesON Departments.DepartmentID=Employees.DepartmentID WHERE ='王林'(3)查询财务部收入在2000以上的雇员姓名及其薪水详情. SELECT Name,InCome,OutComeFROM Employees,Salary,DepartmentsWHERE Employees.EmployeeID=Salary.EmployeeIDAND Employees.DepartmentID=Departments.DepartmentID AND DepartmentName='财务部'AND InCome>20004、聚合函数的使用.(1)求财务部雇员的平均收入.SELECT AVG(InCome)AS'财务部平均收入'FROM SalaryWHERE EmployeeID IN(SELECT EmployeeIDFROM EmployeesWHERE DepartmentID=(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName='财务部'))(2)财务部雇员的平均实际收入.SELECT AVG(InCome-OutCome)AS'财务部平均实际收入' FROM SalaryWHERE EmployeeID IN(SELECT EmployeeIDFROM EmployeesWHERE DepartmentID=(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName='财务部'))(3)求财务部雇员的总人数SELECT COUNT(EmployeeID)FROM EmployeesWHERE DepartmentID=(SELECT DepartmentIDFROM DepartmentsWHERE DepartmentName='财务部')5、GROUP BY\ORDER BY子句的使用.(1)Emyees表中的男性和女性的人数SELECT Sex,COUNT(Sex)FROM EmployeesGROUP BY Sex;(2)查找员工数超过2人的部门名称和员工数量.SELECT(Employees.DepartmentID),COUNT(*)AS人数FROM Employees,DepartmentsWHERE Employees.DepartmentID=Department.DepartmentID GROUP BY Employees.DepartmentIDHAVING COUNT(*)>2(3)将各雇员的情况按收入由低到高排列.SELECT Employees.*,Salary.*FROM Employees,SalaryWHERE Employees.EmployeeID=Salary.EmployeeIDORDER BY InCome实验4.2 视图的使用1、创建视图①创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列。
sql视图实验报告
sql视图实验报告SQL视图实验报告引言:在数据库管理系统中,SQL视图是一种虚拟表,它是由一个或多个基本表的行和列组成的。
视图是基于查询的结果集,可以被视为一个表,但实际上并不存储数据。
本实验旨在探索SQL视图的概念、创建和使用方法,并通过实际案例来展示其在数据库管理中的应用。
一、SQL视图的概念SQL视图是一种虚拟表,它是由一个或多个基本表的行和列组成的。
视图是基于查询的结果集,可以被视为一个表,但实际上并不存储数据。
视图可以隐藏基本表的复杂性,简化用户的查询操作,并提供数据安全性和数据独立性。
二、创建SQL视图在SQL中,我们可以使用CREATE VIEW语句来创建视图。
CREATE VIEW语句的基本语法如下:CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;三、使用SQL视图1. 查询视图:通过SELECT语句可以查询视图,就像查询普通表一样。
例如,我们可以使用SELECT * FROM view_name来查询视图的所有数据。
2. 更新视图:视图也可以通过UPDATE、INSERT和DELETE语句进行数据的更新操作。
但需要注意的是,视图的更新操作可能会影响到基本表的数据,因此在进行更新操作时需要谨慎。
四、SQL视图的应用案例下面以一个学生信息管理系统为例,来展示SQL视图的应用。
假设我们有两个基本表:学生表(student)和课程表(course)。
学生表包含学生的学号、姓名和年龄等信息;课程表包含课程的编号、名称和学分等信息。
现在我们需要查询每个学生所选课程的信息,并计算每个学生的总学分。
首先,我们可以创建一个视图来查询学生选课的信息:CREATE VIEW student_course ASSELECT student.student_id, student.student_name, course.course_name, course.creditFROM studentJOIN course ON student.student_id = course.student_id;然后,我们可以使用SELECT语句查询视图的数据:SELECT * FROM student_course;接下来,我们可以通过对视图进行分组和聚合操作,计算每个学生的总学分:SELECT student_id, student_name, SUM(credit) AS total_creditFROM student_courseGROUP BY student_id, student_name;通过以上操作,我们可以方便地查询每个学生所选课程的信息,并计算每个学生的总学分。
数据库-第四次实验报告-视图-t-sql语句
数据库-第四次实验报告-视图-t-sql语句第一篇:数据库-第四次实验报告-视图-t-sql语句实验十报告创建视图实验目的1.掌握创建视图的SQL语句的用法。
2.掌握使用企业管管理器创建视图的方法。
3.掌握使用创建视图向导创建视图的方法。
4.掌握查看视图的系统存储过程的用法。
5.掌握修改视图的方法。
一.实验准备1.了解创建视图方法。
2.了解修改视图的SQL语句的语法格式。
3.了解视图更名的系统存储过程的用法。
4.了解删除视图的SQL语句的用法。
二.实验要求1.用不同的方法创建视图。
2.提交实验报告,并验收实验结果。
三.实验内容 1.创建视图(1)使用企业管理器创建视图① 在EDUC库中以“student”表为基础,建立一个名为“V_计算机系学生”的视图。
在使用该视图时,将显示“student”表中的所有字段.兰州大学数据库实验报告视图如下:(2)使用SQL语句创建视图① 在查询分析器中建立一个每个学生的学号、姓名、选修的课名及成绩的视图S_C_GRADE;Create VIEW S_C_GRADE ASSELECT student.sno,sname,cname,score FROM student,course,student_course WHERE student.sno=student_course.sno AND o=student_o;视图如下:②建立一个所有计算机系学生的学号、选修课程号以及平均成绩的视图COMPUTE_AVG_GRADE;Create VIEWCOMPUTE_AVG_GRADE ASSELECT student.sno,o,AVG(score)'平均成绩' FROM student,course,student_course WHERE student.sno=student_course.snoAND o=student_o AND student.dno='CS' GROUP BY student.sno,o;视图如下:2.修改视图(1)使用企业管理器修改视图在企业管理器中将视图COMPUTE_AVG_GRADE中改成建立在数学系的学生学号、选修课程号以及平均成绩的视图。
数据库实验报告 (4)
一实验题目1.索引的建立和删除操作2.视图的创建、修改、更新和查询操作二实验目的1.掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。
2.掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。
三实验内容1.索引的建立和删除操作(1)在S表中,建立按照sno升序的惟一性索引snoIDX。
(2)在SC表中,建立按照学号升序和课程号降序的唯一性索引scIDX。
(3)在S表中,按照生日建立一个非聚簇索引birthdayIDX。
(4)在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。
(5)删除索引cnameIDX。
2.视图的创建、修改、更新和查询操作(1)建立一个关于所有女生信息的视图S_GIRL。
(2)将各系学生人数,平均年龄定义为视图V_NUM_A VG(3)建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。
(4)建立一个所有学生课程成绩的视图S_GRADE,包括基本学生信息,课程信息和成绩。
(5)在视图S_GRADE基础之上,建立一个两门课以上成绩不及格的学生情况视图FAIL_GRADE。
(6)建立一个至少选修了4门课及4门课以上的学生信息的视图SC_FOUR。
(7)修改视图S_GIRL,要求只显示1997年以前出生的女生信息。
(8)在视图FAIL_GRADE查询不及格超过2门课的学生信息。
(9)删除视图S_GRADE。
(10)通过视图S_GIRL,将“王丹”的名字修改为“汪丹”,并查询结果。
(11)通过视图S_GIRL,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,1996-8-8),并查询结果。
(12)通过视图S_GIRL,删除1995年出生的女生信息,并查询结果。
(13)通过视图S_GRADE,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。
(14)通过视图COMPUTE_A VG_GRADE,将“4121090301”学生的平均分改为90分,是否可以实现,请说明原因。
数据库-实验四-数据更新与视图
实验四数据更新与视图北京师范大学珠海分校信息技术学院12计算机1班一、数据更新使用相应SQL语句,完成如下操作:(1)根据订单信息更新order表中的payment(订单总金额)字段的值。
update"order"set"order".payment=a.totalfrom(select orderid,sum(price*quantity)as totalfrom book,orderbookwhere bookid=bidgroup by orderid)awhere"order".oid=a.orderidselect oid,paymentfrom"order"(2)新建图书订购情况统计表bookstas(包含图书编号、图书名称、图书类别、图书价格和订购册数,数据类型自定),并根据数据库的订单情况将社科类图书的订购情况插入表中。
图书订购情况统计表bookstas表bsid btitle bcategory bprice ordersell 图书编号图书名称图书类别图书价格订购册数int varchar(50)int float int Primary keycreate table bookstas(bsid int primary key,btitle varchar(50),bcategory int,bprice float,ordersell int);insertinto bookstas(bsid,btitle,bcategory,bprice,ordersell)select bid,title,category,price,sum(quantity)from orderbook,bookwhere category='2'and bookid=bidgroup by bid,title,category,price;select bookstas.*from bookstas;(3)新建用户订购统计表userstas(包含用户编号、用户名、订单数量、总金额,数据类型自定),并根据数据库的订单情况将活跃用户(正常使用、锁定)的情况插入表中。
数据库实验报告:视图 和索引
一、实验步骤(一)附加上次实验所创建的数据库“db_Library”,并回顾该数据库的数据表信息。
(二)练习创建和管理视图1、使用管理控制台创建一个名为“计算机系借阅信息_VIEW”的视图,要求显示计算机系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段。
打开sql server管理控制台窗口,打开新建视图对话框。
在添加表中添加tb_borrow和tb_reader表,在选中输出复选框中选中:读者编号,图书编号,借阅日期。
use db_library goselect * from 读者借阅信息_VIEWwhere 所在系='计算机'and 借阅日期>'2011_1_1'2、使用T-SQL语句创建一个名为“读者借阅信息_VIEW”的视图,要求显示所有的读者借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段。
use db_library gocreate view 读者借阅信息_VIEW asselect tb_readder.读者编号,tb_reader.姓名,tb_reader所在系,tb_book.图书编号,tb_book.书名,tb_borrow.借阅日期 from tb_reader,tb_borrow,tb_bookwhere tb_reader.读者编号=tb_borrow.读者编号and tb_book.图书编号=tb_borrow.图书编号Select * from读者借阅信息_VIEW3、使用管理控制台查看“读者借阅信息_VIEW”视图的定义信息和依赖的对象。
打开管理控制台,在数据库“db_Library”下的“视图”对象;在左边窗口右击“读者借阅息_VIEW”该视图,在在窗口中选中“查看依赖关系”选项。
4、使用系统存储过程查看“计算机系续借阅信息_VIEW”视图的定义信息和依赖的对象。
实验4 SQL的聚集函数查询与创建视图
实验4 SQL的聚集函数查询与创建视图一、实验目的学习掌握使用SQL的SELECT语句的聚集函数查询对表进行查询操作和创建视图。
二、实验准备1. 环境操作系统:Windows 7或Windows 200X Server数据库管理系统:SQL Server 20082. 准备工作⑴本次实验使用超市的商品销售关系数据库CRM。
从ftp服务器上该数据库拷贝到D:盘的自己建立存储数据库文件的文件夹下。
在SQL Server 2008中利用数据库附加功能将数据库附加到系统中。
(2)复习SELECT语句的基本语法格式,学习SQL的集函数,在SELECT语句中使用集函数进行查询的方法,学习使用CREATE VIEW语句创建视图。
三、实验内容使用SQL语句完成如下操作:①在SELECT语句中使用聚集函数进行查询;②创建视图。
四、实验要求在SQL Server 2008的对象资源管理器中,在关系数据库CRM中,使用SQL语句完成下面的操作:1. 聚集函数查询与分组查询(1)查询产地为“广东深圳”、按供货商号, 供货商名分类汇总当前库存中供货商所供货的商品金额合计、商品种类合计、商品最高单价与最低单价的差价。
SELECT Inventory.Supno AS供货商号,Supplier.Supname AS供货商名,SUM(Num*Price) AS金额总和,COUNT(*)AS商品种类合计,(MAX(Price)-MIN(Price))AS最大值与最小值差价FROM Inventory JOIN Supplier ON Inventory.Supno = Supplier.SupnoWHERE Inventory.Address ='广东深圳'GROUP BY Inventory.Supno,Supplier.Supname(2)在销售记录表中,查询按月、分商品汇总销售的商品号,商品名,数量合计、金额合计。
数据库实验报告(完整版)
数据库实验报告班级:07111103学号:**********姓名:***实验一:[实验内容1 创建和修改数据库]分别使用SQL Server Management Studio和Transact-SQL语句,按下列要求创建和修改用户数据库。
1.创建一个数据库,要求如下:(1)数据库名"testDB"。
(2)数据库中包含一个数据文件,逻辑文件名为testDB_data,磁盘文件名为testDB_data.mdf,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB。
(3)事务日志文件,逻辑文件名为TestDB_log, 磁盘文件名为TestDB_log.ldf,文件初始容量为5MB, 最大容量为10MB,文件容量递增值为1MB。
2.对该数据库做如下修改:(1)添加一个数据文件,逻辑文件名为TestDB2_data,实际文件为TestDB2_data.ndf,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB。
(2)将日志文件的最大容量增加为15MB,递增值改为2MB。
方法一:使用SQL Server Management Studio创建和修改数据库TestDB方法二:使用Transact-SQL语句创建和修改数据库TestDB方法一过于简单,暂不做讨论。
下面学习方法二。
首先,在sql sever 2008中单击新建查询。
然后键入下面的代码。
建立新的数据库。
1. 创建一个数据库,要求如下:2.对该数据库做如下修改:对刚刚的操作进行验证数据均已更新完毕。
[实验内容2 数据表的创建、修改和查询]1.熟悉有关数据表的创建和修改等工作,并了解主键、外键以及约束的创建和应用,熟练掌握使用SQL Server Management Studio和CREATE TABLE、ALTER TABLE等Transact-SQL语句对数据表的操作方法字段名数据类型字段长度注释项目编码char 10 主键名称varchar负责人编码char 10客户int开始日期datetime结束日期datetime员工数据表(Employee)字段名数据类型字段长度注释方法一:使用SQL Server Management Studio创建数据表并添加约束方法二:使用Transact-SQL语句创建数据表并添加约束2.向数据库TestDB中的两个数据表"项目数据表"和"员工数据表"中添加记录3.在查询分析器中书写Transact-SQL语句完成数据查询。
视图和索引的创建和使用实验报告
信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图和索引的创建和使用一、实验目的:(1)掌握创建视图的SQL语句的用法。
(2)掌握修改视图的方法。
(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作用。
(4)熟悉索引的作用,以及不同类型索引的区别。
(5)学会用T-SQL语句对表创建和删除索引二、实验设备与器件Win7 +Sql server 2008三、实验内容与步骤利用备份文件school,还原数据库,然后完成以下实验内容:(1)用T-SQL语句,定义信息系学生基本情况视图V_IS。
(2)用T-SQL语句,将Student,Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。
(3)用T-SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。
(4)用T-SQL语句,定义一个反映学生出生年份的视图V_YEAR。
(5)用T-SQL语句,将各位学生学号、选修课程的门数及平均成绩定义为视图V_AVG_S_G。
(6)用T-SQL语句,将各门课程的课程号、选修人数及平均成绩定义为视图V_AVG_C_G。
(7)用T-SQL语句完成以下视图操作,查看结果,并分析原因。
①通过视图V_IS,将学号为“200215125”的学生姓名更改为“张小立”,并查看结果;②通过视图V_IS,新增加一个学生记录 ('200215126','黄笑',19, '男','IS'),并查看结果。
③通过视图V_IS,新增加一个学生记录 ('200215127','李霞',19, '女','MA'),并查看结果。
④通过视图V_IS,删除学号为“200215126”的学生信息,并查看结果。
⑤通过视图V_S_C_G,将学号“200215122”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。
实验报告四 索引和视图
实验四索引和视图一、实验学时2学时二、实验目的(1)理解索引的概念与类型。
(2)掌握使用企业管理器创建与维护索引的方法。
(3)掌握T-SQL语句创建与维护索引的方法。
(4)理解视图的概念。
(5)掌握视图创建、更改的方法。
(6)掌握用视图管理数据的方法。
三、实验要求(1)硬件设备:奔腾II或奔腾II以上计算机,局域网。
SERVER、WINDOWS7、XP、WINDOWS9X/NT、WINDOWS(2)软件环境:WINDOWSSQL SERVER 2000/2005/2008中文版企业版或标准版。
(3)实验课前预习,课后及时完成实验内容。
(4)实验过程及记录按题目格式要求填写代码清单。
四、实验内容(一)索引索引分为两种:聚簇索引和非聚簇索引。
每张表只能有一个聚簇索引。
创建索引时的缺省设置是非聚簇索引。
1.使用企业管理器创建、管理索引(1)创建索引1)为Student表创建一个以Sno为索引关键字的惟一聚簇索引。
(若原已有,请删除,索引名为Sno_index)(提示:选择表后点击鼠标右键,选“设计”,窗口空白区域点击鼠标右键,选“索引/键”)基本步骤:2)为Student表创建以Sname,Sex为索引关键字的非聚簇索引(对Sname 以升序来排列,Sex以降序排列,并设置填充因子为70%)。
索引名为:SS_index。
(提示:填充因子为索引创建时索引里的数据页被填充的数量)基本步骤:(2)重命名索引将索引文件Sno_index重新命名为Sno_index1。
基本步骤:(3)删除索引将索引文件Sno_index1删除。
基本步骤:2.使用T-SQL语句创建、管理索引(1)创建索引1)为SC表创建一个非聚集索引Grade_index,索引关键字为Grade,升序,填充因子为80%。
(提示:with fillfactor=)T-SQL语句:create nonclustered index Grade_indexon SC(Grade)with fillfactor=80;2)为SC表创建一个唯一性聚集索引SC_index,索引关键字为Sno,Cno。
数据库实验报告 SQL语言
数据库原理及实验报告实验6 视图实验目的:1)掌握交互式创建、删除视图的方法2)掌握使用SQL创建、删除视图的方法3)掌握交互式更新视图的方法4)掌握使用SQL更新视图的方法实验内容6.1实验题目:创建视图实验过程:1)交互式创建视图VIEW_S2)交互式创建成绩视图VIEW_SCORETABLE3)使用SQL创建课程表视图VIEW_CTABLE 实验结果:6.2实验题目:修改视图实验过程:1)使用交互式方法把视图VIEW_S 中的字段SNO 删掉2)使用SQL 为视图VIEW_CTABLE 增加一个课时字段CT tiny int 实验结果:6.3实验题目:通过视图修改数据库数据实验过程:1)交互式通过修改视图VIEW_S中的数据来实现对其基本表S中数据的修改2)对视图VIEW_S执行INSERT语句,查看此视图的基本表S中数据的变化3)修改视图VIEW_S的定义,使其包含表S中的主键,再执行插入操作4)用SQL语句对视图VIEW_S执行DELETE操作,查看此视图的基本表S中数据的变化实验结果:6.4实验题目:删除视图实验过程:1)交互式删除视图VIEW_S2)使用SQL删除视图VIEW_CTABLE实验结果:实验7 数据查询实验目的:1,掌握从简单到复杂的各种数据查询。
包括,单表查询、多表连接查询、嵌套查询、集合查询。
2,掌握用条件表达式表示检索结果。
3,掌握用聚合函数计算统计检索结果。
实验7.1 单表查询实验目的:1,掌握指定列或全部列查询。
2,掌握按条件查询。
3,掌握对查询结果排序。
4,掌握使用聚集函数的查询。
5,掌握分组统计查询。
实验内容:1,指定或全部列查询。
2,按条件查询及模糊查询。
3,对查询结果排序。
4,使用聚集函数的查询。
5,分组统计查询。
实验7.2 连接查询实验目的:掌握设计一个以上数据表的查询方法。
多表之间的连接包括等值连接、自然连接、非等值连接、自身连接、自身连接、外连接和复合连接。
数据库实验4-实验报告
数据库实验4-实验报告数据库实验 4 实验报告一、实验目的本次数据库实验 4 的主要目的是深入理解和掌握数据库中的某些关键概念和操作,通过实际的操作和实践,提高对数据库管理系统的应用能力,增强解决实际问题的技能。
二、实验环境本次实验使用的数据库管理系统为_____,运行环境为_____操作系统,使用的开发工具为_____。
三、实验内容与步骤(一)创建数据库首先,打开数据库管理系统,使用相应的命令或操作界面创建了一个名为“_____”的数据库。
在创建过程中,指定了数据库的一些基本属性,如字符集、排序规则等,以满足后续数据存储和处理的需求。
(二)创建数据表在创建好的数据库中,根据实验要求创建了若干个数据表。
例如,创建了一个名为“students”的表,用于存储学生的信息,包括学号(student_id)、姓名(student_name)、年龄(age)等字段。
创建表时,仔细定义了每个字段的数据类型、长度、是否允许为空等属性,以确保数据的准确性和完整性。
(三)数据插入接下来,向创建的数据表中插入了一些测试数据。
通过执行相应的插入语句,将学生的具体信息逐个插入到“students”表中。
在插入数据的过程中,特别注意了数据的格式和合法性,避免了因数据错误导致的插入失败。
(四)数据查询完成数据插入后,进行了各种查询操作。
使用了简单的查询语句,如“SELECT FROM students”来获取所有学生的信息。
还使用了条件查询,如“SELECT FROM students WHERE age >18”来获取年龄大于 18 岁的学生信息。
通过这些查询操作,熟悉了如何从数据库中获取所需的数据。
(五)数据更新对已有的数据进行了更新操作。
例如,通过执行“UPDATE students SET age = 20 WHERE student_id =1”的语句,将学号为 1 的学生的年龄更新为20 岁。
在更新数据时,谨慎操作,确保只更新了预期的记录。
数据库实验四(含答案)
实验四使用SQL语句创建和删除数据库、表一. 实验目的:1、了解SQL Server 2005数据库的逻辑结构和物理结构。
2、掌握使用SQL 语句创建和删除数据库。
3、学会使用T-SQL语句创建表。
二. 实验准备1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
2.了解用SQL语句创建和删除数据库的基本语法。
3.是用查询分析器,完成用SQL语句创建和删除基本表。
三. 实验要求1、熟练使用查询分析器进行数据库的创建和删除操作。
2、用查询分析器,完成用SQL语句创建和删除基本表。
3、完成实验报告。
四. 实验内容一、数据库1.以下是创建数据库userdb1的SQL语句,create database userdb1on(name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在size=5,--数据初始长度为5Mmaxsize=10,--最大长度为10Mfilegrowth=1)--数据文件每次增长1Mlog on( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)运行上诉语句建立数据库userdb12.根据步骤1的sql语句,写出创建实验二中“学生信息”数据库的sql语句,并建立“学生信息”数据库.(.mdf的名字可以修改)3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。
alter database 数据库名 add file()注括号内格式同下:( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)4.修改文件alter database数据库名modify file()注括号内表示修改后的属性信息,格式同下:( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)5.删除文件mrkj(alter database数据库名remove file+文件名)6.用SQL语句删除步骤一建立的数据库userdb1。
实验报告 3(视图、索引的创建与使用)
撰写人姓名:撰写时间:审查人姓名:实验全过程记录一、实验目的1、熟练掌握视图的创建与维护操作,熟练使用视图访问数据;2、熟练掌握索引的创建与维护操作,熟练使用索引以方便查询。
二、实验内容:1、在“对象资源管理器”中使用向导和在在“查询编辑器”中使用T-SQL语句创建视图,并修改视图。
再通过视图向数据库添加、修改、删除数据。
2、使用步骤1中两种方法进行索引的创建、修改、删除操作。
三、实验用仪器设备及材料软件需求:操作系统:Windows XP或更新的版本数据库管理系统:SQL Server 2005或更新的版本硬件需求:Pentium Ⅲ1G以上的CPU处理器、256MB以上的内存、1.5G以上自由硬盘空间、打印机、打印纸、CD-ROM驱动器等。
四、实验步骤:1、在“对象资源管理器”中展开需要建立视图的“公司管理系统”数据库,用鼠标右键单击“视图”对象,选择快捷菜单“新建视图”选项,打开新建“视图”对话框,根据需要选择添加的表和视图。
现添加“职工表”、“项目表”和“客户表”。
在视图设计窗口中,创建“查询姓‘李’的职工负责的上海的项目名称”的视图。
据此设置视图的输出列、列名、表名等属性。
保存该视图并利用此视图进行查询操作。
2、选择当前数据库为“公司管理系统”数据库。
在“查询编辑器”中使用T-SQL语句创建“查询客户表中所有地址在‘北京’的客户编号和名称”的视图。
通过此视图向数据库中的表进行添加、修改、删除等更新记录操作。
3、在“对象资源管理器”中展开需要建立索引的“职工表”,选中“索引”选项并展开。
选中“索引”对象,单击鼠标右键,在快捷菜单中选择“新建索引”选项,打开“新建索引”对话框。
根据“职工表”的“出生日期”列创建一不唯一、也不是聚集的索引。
设置完毕后保存该索引并进行相应的查询输出以观察索引设置的输出效果。
4、在“查询编辑器”中使用T-SQL语句对“客户表”的“客户名称”列和“地址”列创建一不唯一的、也不是聚集的复合索引。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十报告创建视图兰州大学数据库实验报告实验目的1.掌握创建视图的SQL语句的用法。
2.掌握使用企业管管理器创建视图的方法。
3.掌握使用创建视图向导创建视图的方法。
4.掌握查看视图的系统存储过程的用法。
5.掌握修改视图的方法。
一.实验准备1.了解创建视图方法。
2.了解修改视图的SQL语句的语法格式。
3.了解视图更名的系统存储过程的用法。
4.了解删除视图的SQL语句的用法。
二.实验要求1.用不同的方法创建视图。
2.提交实验报告,并验收实验结果。
三.实验内容1.创建视图(1)使用企业管理器创建视图①在EDUC库中以“student”表为基础,建立一个名为“V_计算机系学生”的视图。
在使用该视图时,将显示“student”表中的所有字段.视图如下:(2) 使用SQL语句创建视图①在查询分析器中建立一个每个学生的学号、姓名、选修的课名及成绩的视图S_C_GRADE;Create VIEW S_C_GRADEASSELECT student.sno,sname,cname,scoreFROM student,course,student_courseWHERE student.sno=student_course.snoAND o=student_o;视图如下:②建立一个所有计算机系学生的学号、选修课程号以及平均成绩的视图COMPUTE_AVG_GRADE;Create VIEW COMPUTE_AVG_GRADEASSELECT student.sno,o,AVG(score)'平均成绩'FROM student,course,student_courseWHERE student.sno=student_course.snoAND o=student_o AND student.dno='CS'GROUP BY student.sno,o;视图如下:2.修改视图(1) 使用企业管理器修改视图在企业管理器中将视图COMPUTE_AVG_GRADE中改成建立在数学系的学生学号、选修课程号以及平均成绩的视图。
(IS设为数学系)(2) 使用SQL语句修改视图①在查询分析器中使用更改视图的命令将上面建立的视图“V_计算机系学生”更名为“V_计算机系男生”。
SP_RENAME'V_计算机系学生','V_计算机系男生';3.删除视图(1)使用企业管理器删除视图用企业管理器删除视图“V_计算机系学生”(2)使用SQL语句删除视图用SQL语句删除视图COMPUTE_AVG_GRADE;DROP VIEW COMPUTE_AVG_GRADE;实验十一使用视图一.实验目的1.熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;2.熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系3.学习灵活熟练的进行视图的操作,认识视图的作用二.实验准备1.熟悉SQL SERVER 工作环境。
2.能连接到EDUC数据库。
3.复习有关视图操作的SQL语言命令。
三.实验要求1.在实验开始之前做好准备工作。
2.实验之后提交实验报告,思考视图和基本表的区别四.实验内容一.定义视图在EDUC数据库中,已Student Course 和Student_course 表为基础完成一下视图定义1.定义计算机系学生基本情况视图V_Computer;CREATE VIEW V_ComputerASSELECT student.*FROM studentWHERE student.dno='CS';视图如下:2.将Student Course 和Student_course表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_GCREATE VIEW V_S_C_GASSELECT student.sno,sname,o,ame,scoreFROM student,course,student_courseWHERE student.sno=student_course.sno AND o=student_o;视图如下:3.将各系学生人数,平均年龄定义为视图V_NUM_AVGCREATE VIEW V_NUM_AVGASSELECT COUNT(dno)'各系人数',AVG(sage)'平均年龄'FROM studentGROUP BY dno;视图如下:4.定义一个反映学生出生年份的视图V_YEAR CREATE VIEW V_YEARASSELECT sname,2014-sage'出生年份'FROM student;视图如下:5.将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_GCREATE VIEW V_AVG_S_GASSELECT student.sno'学号',sname'姓名',COUNT(*)'选修门数',AVG(score)'平均成绩'FROM student,student_courseWHERE student.sno=student_course.snoGROUP BY student.sno,sname;视图如下:6.将各门课程的选修人数及平均成绩定义为视图V_AVG_C_GCREATE VIEW V_AVG_C_GASSELECT cno'课程号',COUNT(cno)'选修人数',AVG(score)'平均成绩'FROM student_courseGROUP BY cno;视图如下:二.使用视图1.查询以上所建的视图结果。
所建视图结果如上题截图所示2.查询平均成绩为90分以上的学生学号、姓名和成绩;SELECT学号,姓名,平均成绩FROM V_AVG_S_GWHERE平均成绩>90;3.查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;SELECT V_S_C_G.sno,V_S_C_G.sname,V_S_C_ame,V_S_C_G.scoreFROM V_S_C_G,V_AVG_S_GWHERE V_S_C_G.sno=V_AVG_S_G.学号AND V_S_C_G.score>V_AVG_S_G.平均成绩;4.按系统计各系平均成绩在80分以上的人数,结果按降序排列;1.先创建学生学号-系别视图V_STUDENTCREATE VIEW V_STUDENTASSELECT sno,dnoFROM student;2.进行查询SELECT V_STUDENT.dno'系别',COUNT(V_STUDENT.sno)'人数'FROM V_STUDENT,V_AVG_S_GWHERE V_STUDENT.sno=V_AVG_S_G.学号AND V_AVG_S_G.平均成绩>80GROUP BY V_STUDENT.dno;三.修改视图1.通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM”并查询结果;UPDATE V_IS SET sname='S1_MMM'WHERE SNO='32011';UPDATE V_IS SET sname='S4_MMM'WHERE SNO='32014';SELECT*FROM V_ISWHERE sno='32011'OR sno='32014';2.通过视图V_IS,新增加一个学生记录 ('S12','YAN XI',19,'IS'),并查询结果INSERT INTO V_IS(sno,sname,sex,dno,sage)VALUES('S12','YAN XI','女','IS','19')SELECT*FROM V_ISWHERE sno='S12';3.要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?并说明原因答:不能实现,因为视图或函数'V_AVG_S_G' 包含聚合、DISTINCT 或GROUP BY 子句或者PIVOT 或UNPIVOT 运算符,所以无法进行更新。
UPDATE V_AVG_S_G SET学号='32011'WHERE平均成绩='90';实验十二更新语句一.实验目的1.熟悉使用UPDATE/INSERT/DELETE语句进行表操作;2.能将这些更新操作应用于实际操作中去;二.实验准备1.了解这些更新语句的基本语法和用法;三.实验要求1.完成下面的实验内容,并提交实验报告;2.在实验报告中附上相应的代码;四.实验内容1.对于student表,将所有专业号为‘001’的,并且入学年份为2006的学生,或是专业号为‘003’,并且年龄小于20岁的学生的班级号改为‘001’。
UPDATE student SET classno='001'WHERE (mno='001'AND YEAR(sctime)='2006')OR(mno='003'AND(year(getdate())-year(sdate))<20);2.对于student表,删掉所有年龄小于20岁,并且专业号为‘003’的学生的记录。
DELETE FROM studentWHERE mno='003'AND(year(getdate())-year(sdate))<203.对于student表,插入一条新记录,它的具体信息为,学号:2007110011、姓名:张三、性别:男、出生日期:19880808、院系编号:‘001’、专业编号:‘001’、班级号:‘001’、入学时间:20070901。
INSERT INTO student(sno,sname,sex,sdate,dno,mno,classno,sctime)VALUES('2007110011','张三','男','1988-8-8','001','001','001','2007-9-1');4.对于student表,将入学时间最晚的学生和年龄最小的学生的联系方式去掉。