实验四 创建视图1
数据库实验四创建和使用视图
数据库实验四创建和使⽤视图实验四创建和使⽤视图1.实验⽬的掌握使⽤Management studio和SQL命令进⾏视图的创建、修改和删除。
掌握使⽤SQL命令对视图访问数据。
2.实验内容创建⼀个简单的视图,查询课程号101的不及格的学⽣信息。
修改简单视图,查询课程号107成绩介于70-90的学⽣信息。
使⽤视图访问数据。
删除所创建的视图。
创建⼀个简单视图,查询“计算机系”学⽣的信息创建⼀个简单视图,统计每门课程的选课⼈数和最⾼分。
创建⼀个复杂视图,查询与“俞奇军”住在同⼀寝室的学⽣信息,即其联系电话相同。
创建⼀个复杂视图,查询选修了课程的同学的姓名,课程名及成绩。
具体代码:创建⼀个简单的视图,查询课程号101的不及格的学⽣信息。
CREATE VIEW学⽣信息ASSELECT*FROM XSQKWHERE学号IN(SELECT学号FROM XS_KCWHERE课程号='101'AND成绩<60)修改简单视图,查询课程号107成绩介于70-90的学⽣信息。
ALTER VIEW学⽣信息ASSELECT*FROM XSQKWHERE学号IN (SELECT学号FROM XS_KCWHERE课程号='107'AND (成绩BETWEEN70AND90))使⽤视图访问数据。
SELECT*FROM学⽣信息删除所创建的视图。
DROP VIEW学⽣信息创建⼀个简单视图,查询“计算机系”学⽣的信息CREATE VIEW计算机系学⽣信息ASSELECT*FROM XSQKWHERE所在系='计算机'创建⼀个简单视图,统计每门课程的选课⼈数和最⾼分。
CREATE VIEW每门课程的选课⼈数和最⾼分AS(SELECT课程号 ,COUNT(学号) AS选课⼈数 , MAX(成绩) AS最⾼分FROM XS_KCGROUP BY课程号)创建⼀个复杂视图,查询与“俞奇军”住在同⼀寝室的学⽣信息,即其联系电话相同。
实习4 视图和查询的创建与使用
实习4 视图和查询的创建与使用一.实习目的1.掌握创建单表视图和多表视图的方法,能够创建视图,并利用视图更新表中的数据。
2.掌握创建单表查询和多表查询的方法,能够创建并使用单表查询和多表查询。
二.实习要求1.创建一个单表视图。
2.创建一个多表视图。
3.利用视图更新表中的数据。
4.创建一个单表查询。
5.创建一个多表查询。
三.实习内容实习4-1 根据“学生表”创建一个单位表视图,视图文件名为“学生”。
操作步骤如下:1.打开“河南工程学院数据库”,打开“数据库设计器”窗口,如图所示。
2.在“数据库设计器”窗口中,选择“文件”菜单中的“新建”命令,打开“新建”对话框。
3.在“新建”对话框中选择“视图”,然后单击“新建文件”按钮,打开“添加表或视图”对话框,如下图所示。
4.在“添加表或视图”对话框中,把建立视图所需的表添加到“视图设计器”中,单击“关闭”按钮,打开“视图设计器”窗口,如下图所示。
5.在“视图设计器”窗口中,在“可用字段”列表框中,逐个双击可用的字段,将其添加到“选定字段”列表框中,如下图所示。
6.选择“文件”菜单中的“保存”命令,打开“保存”对话框,输入视图名“学生”,单击“确定”按钮,视图文件建立完成并被存放在打开的数据库中。
如下图所示。
7.在“数据库”菜单中选择“浏览”命令,打开“浏览”窗口,浏览视图中的数据,如下图所示。
实习4-2 根据“学院表”、“系表”、“班级表”、“学生表”、“课程表”、“成绩表”这个表创建一个多表视图,视力文件名为“学院系班级学生成绩”。
操作步骤如下:1.打开“河南工程学院数据库”,打开“数据库设计器”窗口,如图所示。
2.在“数据库设计器”窗口中,选择“文件”菜单中的“新建”命令,打开“新建”对话框。
3.在“新建”对话框中选择“视图”,然后单击“新建文件”按钮,打开“添加表或视图”对话框,如下图所示。
4.在“添加表或视图”对话框中,把建立视图所需的表添加到“视图设计器”中,单击“关闭”按钮,打开“视图设计器”窗口,如下图所示。
实验四 视图
实验四数据库视图4.1 实验目的1.掌握视图的三种建立方法:(1)用向导创建视图(2)用图表创建视图(3)用SQL语言创建视图2.掌握对视图进行查询、删除的方法3.掌握利用视图对基本表进行插入、更新和删除数据的操作4.2 实验内容(一)“图书管理”数据库1.使用向导建立以下视图:“企业管理器”中“工具”菜单→“向导”命令→“数据库选项”→“创建视图向导”。
(1)建立视图名为“计算机图书视图”,包含计算机类图书的所有信息(2)建立视图“借阅计算机书视图”,包含借阅了计算机类图书的读者编号,读者姓名,读者单位,书号,书名,借阅日期。
(3)建立视图“库存图书视图”,包含未借出的图书信息。
图书表中“借出否”字段取值为1表示已借出2.用SQL语句建立下面视图:在“查询分析器”中完成,运行并保存完成的命令(1)建立视图“图书价格视图”,包含图书类别,每类图书的最高价格、最低价格、平均价格create view 图书价格视图asselect 类别,max(定价)as 最高价格,min(定价)as 最低价格,avg(定价)as 平均价格from 图书group by 类别(2)建立视图“超期图书视图”,要求查询借阅时间超过3个月的图书书号、书名、读者编号、读者姓名、借阅日期。
create view 超期图书视图asselect 图书.书号,图书.书名,读者.读者编号,读者.读者姓名,借阅.借阅日期from 图书,借阅,读者where 图书.书号=借阅.书号and 借阅.读者编号=读者.读者编号and month(getdate()-借阅.借阅日期)>3(3)建立视图“借阅_出版社视图”,查询借阅了“华东理工出版社”和“机械工业出版社”出版的图书的读者编号、读者姓名、书号、书名、出版社、借阅日期create view 借阅_出版社视图asselect distinct(读者.读者编号),读者.读者姓名,图书.书号,图书.书名,图书.出版社,借阅.借阅日期from 读者,图书,借阅where 读者.读者编号=借阅.读者编号and 借阅.书号=图书.书号and (图书.出版社='华东理工出版社和' or 图书.出版社='机械工业出版社')3.利用视图更新表(1)利用视图查询机械工业出版社在今年第一季度的借出信息select *from 借阅_出版社视图where 出版社='机械工业出版社' and Datepart(quarter,借阅日期)=14.删除视图:可在企业管理器中删除,也可用SQL命令删除(格式drop view 视图名)(1)删除“计算机图书视图”,记录SQL命令,并查看删除的结果。
实验四(1) 视图的创建与使用
实验四(1)视图的创建与使用学号 ____ 姓名_ __ 班级___专业___ _____一、实验目的1)理解视图的概念。
2)掌握创建视图、测试、加密视图的方法。
3)掌握更改视图的方法。
4)掌握用视图管理数据的方法。
5)了解分区视图的实现方法。
二、实验内容说明:在所有库文件名与表名取名时,请各位同学在所给定的文件名后加上下划线及学号后四位数字构成自己的实验数据库名与表名。
如:XSGL1_20051101.创建视图是数据库应中的常见需求,可以使用企业管理创建、管理视图,也可以用T-SQL 语言创建、管理视图。
1、用创建视图向导创建视图使用视图向导创建一个名为studview的投影视图,该视图从student表中查询出班级号为“052”班的所有学生的学号,姓名,性别,班级,家庭住址,入学时间,出生年月资料。
(提示:分别进入企业管理器,再分别单击“工具”、“向导”、“数据库”、“创建视图向导”,然后一步一步地创建视图。
)基本步骤:1)进入企业管理器,“工具”→“向导”,出现如下窗口。
2)选择“数据库”→“创建视图向导”,出现下图窗口。
3)单击“下一步”,如下图,选择数据库“XSML_20061779”,单击“下一步”。
4)在弹出的如下窗口中选择引用对象表Student,单击“下一步”。
5)在弹出的如下窗口中选择列Sno,Sname,Sex,Classno,Home_addr, Entrance_date,Birth。
单击“下一步”。
6)定义限制“where Classno='052'”,单击“下一步”。
7)在弹出窗口中输入视图名称studview_20061779,单击“下一步”。
8)在弹出的窗口中单击“完成”。
9)点击“确定”即可。
2、用企业管理器创建、管理视图(1)创建视图A、使用企业管理器在表student上创建一个能查询“051”班学生学号、姓名、家庭住址信息的投影视图。
1)依次进入企业管理器、数据库、XSGL库,并用鼠标右键单击“视图”。
数据库实验四.视图创建和查询
南昌大学实验报告
一、实验项目名称
视图创建和查询
二、实验目的
熟悉视图定义和使用视图查询
三、实验基本原理和内容
请为三建公司项目建立一个供应情况的视图,包括供应商代码,零件代码,供应数量.针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量
(2)找出供应商S1的供应情况
四、主要仪器设备及耗材
PC机一台
五、实验步骤及实验数据及处理结果
1、创建视图:
CREATE VIEW三建供应情况
AS
SELECT SNO,PNO,QTY
FROM SPJ
WHERE JNO=(SELECT JNO
FROM J
WHERE JNAME='三建')
2、a:找出三建工程项目使用的各种零件代码及其数量
SELECT PNO,SUM(QTY)
FROM三建供应情况
GROUP BY PNO
b:找出供应商S1的供应情况
SELECT*FROM三建供应情况
WHERE SNO='S1'
六、参考资料
卫琳《SQL SERVER 2008数据库应用与开发教程》清华大学出版社2011.6。
试验四视图一试验目的及要求熟练掌握视图的创建删除2
实验四视图一.实验目的及要求1.熟练掌握视图的创建、删除。
2.掌握视图的查询、修改。
二.实验任务1.理解视图的概念。
2.掌握创建视图的方法。
3.掌握更改视图的方法。
4.掌握用视图管理数据的方法。
三、操作要点1.注意带有WITH CHECK OPTION的视图对数据增删改的影响。
四、注意事项1.使用Transact-SQL语句ALTER VIEW修改视图。
五、实验学时:2学时六、实验重点及难点1.视图的创建与删除。
2.WITH CHECK OPTION的用法。
七、实验步骤(1)启动SQL查询分析器;(2) 选择SQL SERVER后,按确认;(3) 选择数据库Univisity;(4) 进行以下工作:1.从Students表中建立查询所有男(女)生信息的视图STU_SEX。
视图的列名为SNO、SNAME、SSEX和SAGE。
2.从Courses表中建立查询所有课程先修课信息的视图课程Courses_PRE。
视图的列名为课程号、课程名称和先修课名称。
3.从Reports表中建立查询成绩大于等于80信息的视图STU_CJ1。
视图的列名为学号、课程号和成绩。
4.从Students、Reports和Courses三个表建立查询学生选修情况的视图STU_CJ2。
视图的列名为姓名、课程名称和成绩。
5.从Students、Reports和Courses三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。
视图的列名为姓名、课程名称和成绩。
6.利用Transact-SQL命令修改视图STU_SEX。
把视图的列名改为学号、姓名、性别和年龄,加上“WITH CHECK OPTION”选项。
7.删除视图STU_CJ3。
8. 建立自动化系学生视图STU_Auto1,带有WITH CHECK OPTION。
9. 建立自动化系学生视图STU_Auto2。
10. 往STU_Auto1添加一行数据:学号为S15、姓名为陈婷、性别为女、年龄为21(考虑陈婷属于自动化系、以及属于计算机系两种情况) 。
创建视图实验内容
《数据库设计》实验报告题目:创建数据库表、视图 姓名徐浩日期11-01实验内容及完成情况:1) 选择“操作”菜单中的“新建数据库”命令,打开 “数据库属性” 对话框,并在 “名称”框内输入数据库名称XSCJ 。
2) 根据表4-1所示的表结构增加新列。
表4-1 学生情况表XSQK 的结构列名 数据类型 长度 是否允许为空值默认值 说明学号 Char 6 N 主键 姓名 Char 8 N 性别 Bit 1 N 男1,女0 出生日期smalldatetime 4 N 专业名 Char 10 N 所在系 Char 10 N 联系电话 char 11 Y3) 点击快捷工具栏上的快捷按钮,在弹出的“选择名称”对话框中输入表名XSQK ,然后单击“确定”按钮,关闭表编辑器窗口,完成新表的创建。
4) 打开“表”对象,在右边窗口中选择刚才创建的“XSQK ”表。
5) 选择“操作”菜单中的“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。
6) 输入的学生情况数据记录见表4-2。
表4-2 学生情况记录7) 建课程表KC,表的结构见表4-3所示,表的内容见表4-4所示。
表4-3 课程表KC 的结构列名 数据类型 长是否允许为空默认值 说明学号 姓名性别 出生日期 专业 所在系 联系电话 020101 杨颖 0 1980-7-20 计算机应用 计算机 88297147 020102 方露露 0 1981-1-15 计算机应用 计算机 88297147 020103 俞奇军 1 1980-2-20 信息管理 计算机 88297151 020104 胡国强 1 1980-11-7 信息管理 计算机 88297151 020105 薛冰 1 1980-7-29 水利工程 水利系 88297152 020201 秦盈飞 0 1981-3-10 电子商务 经济系 88297161 020202 董含静 0 1980-9-25 电子商务 经济系 88297062 020203 陈伟 1 1980-8-7 电子商务 经济系 88297171 020204 陈新江11980-7-20 房建 水利系 88297171度 值 课程号 Char 3 N 主键 课程名 Char 20 N 教师 Char 10开课学期 Tinyint 1只能1-6 学时 Tinyint 1 60 学分 Tinyint 1 N表4-4 课程表记录8) 同理建成绩表XS_KC,表的结构见表4-5所示,表的内容见表4-6所示。
实验四视图和索引的使用
实验四视图和索引的使用
实验四视图和索引的使用
一、实验目的
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、惟一索引的含义是什么?。
数据库实验四
计算机与信息学院实验报告系:专业:年级:姓名:学号:22 实验室号计算机号22 实验时间:2013年10月29日指导教师签字:成绩:报告退发(订正、重做)实验名称:(四)数据库的视图操作实验一、实验目的和要求(1)掌握SQL Server中的视图创建向导和图表创建向导的使用方法;(2)加深对视图和SQL Server图表作用的理解。
(3)掌握数据库安全性的操作方法。
二、实验内容和原理1. 基本操作实验(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。
CREATE VIEW 借阅_计算机图书AS SELECT 图书.*,借阅.*FROM 图书,借阅WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导),完成在图书-读者数据库中建立一个图书_借阅图表操作。
要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。
(3)查看上述实验结果。
如果结果有误,予以纠正。
2. 提高操作实验在学生-课程数据库中用Transact-SQL语句描述下列视图定义。
(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。
视图的列名为SNO、SNAME、SSEX和SAGE。
(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。
视图的列名为课程号、课程名称和先修课名称。
(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。
视图的列名为学号、课程号和成绩。
(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。
视图的列名为姓名、课程名称和成绩。
(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。
4数据库的视图和图表的定义及使用实验
实验四数据库的视图和图表的定义及使用实验课时安排:2课时一、实验目的和要求使学生掌握SQL Server中的视图创建向导和图表创建向导的使用方法,加深对视图和SQL Server图表作用的理解。
二、实验内容1 创建、查看、修改和删除视图。
2 创建、编辑和删除数据库图表。
三、实验方法1 创建视图假设在图书.读者数据库中已经建立了图书、读者和借阅3个表.它们的结构为图书(书号,类别, 出版社,作者,书名,定价).借阅(书号,读者书证号,借阅日期).读者(书证号,姓名, 单位,性别,电话).如果要在上述3个表的基础上建立一个视图取名为读者--VIEW、其操作用SQL语句表示为:CREA TE VIEW 读者-VTEWAS SELECT图书.*借阅.*FROM图书,借阅,读者WHERE图书书号=借阅书号AND借阅.读者书证号=读者书证号;下面利用SQLServer2000中提供的视图创建向导,来创建读者--VIEW视图。
l)打开企业管理器窗口确认服务器,打开数据库文件夹。
选中新视图所在的数据库。
2)选择菜单“工具”“向导’。
3)在向导选择对话框中单击数据库左边的”+’号,使之展开。
选择“建视图向导”项,单击“确定”按钮4)进入创建视图向导后,首先出现的是欢迎进入创建视图向导对话框,其中简单介绍了该向导的功能。
单击“下一步”按钮后就会出现选择“数据库名称”对话框。
5)在“选择数据库名称”对话框中选择视图所属的数据库。
本例的数据库为“图书-读者”。
单击“下一步按钮,则进入选择表对话框。
6)在选择表对话框中列出了指定数据库中所有用户定义的表和视图。
用户可以从中选择构造视图所需的一个表或多个表(或视图)被选中的表成为构造视图参考表。
选择构造视图参考表的方法是:用鼠标单击表名后的“包含在视图中”列,使复选框为选中状态,本例的数据库中的3个表都应当被选中。
单而“下一步”按钮.则进入选择列对话框。
7)列选择对话框中以表格形式列出了创建视图参考表的全部属作为个属性表的一行、创建视间的参考属性可以分表格中选出、选择视图参考属性的方法是用鼠标单地属性名后边的‘选择列’.使其复选框为选中状态。
实验训练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视图的定义和使用
实验4视图的定义和使用一实验题目:视图的定义和使用二实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作三实验内容及要求:(从下面10个题目中选一个)题目一:学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。
3 利用视图,查询平均成绩最高的学生。
题目二:图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)1 根据上面基本表的信息定义视图显示每本书的书名、借阅次数2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询借阅次数最多的书。
题目三:商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)销售(顾客卡号,商品编号,数量,日期)1 根据上面基本表的信息定义视图显示每种商品的品名、销售数量2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询销售数量最高的商品。
题目四:图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)出版社(编号,出版社名称,地址)1 根据上面基本表的信息定义视图显示每个出版社的名称、出版书的数量2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询出版书最多的出版社题目五:零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)使用(产品编号,使用零件编号,个数)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询选课人数最多的课。
题目六:药品(编号,名称,价格,厂商)处方(药品编号,数量,医生编号)医生(编号,姓名,科室,职称)1 根据上面基本表的信息定义视图显示每种药品的品名、销售金额2 观察基本表数据变化时,视图中数据的变化。
SQL_Server实用教程(第三版)实验4_数据库的查询和视图
实验四数据库的查询和视图T4.1 数据库的查询1.目的与要求(1)掌握select语句的基本语法;(2)掌握子查询的表示(3)掌握连接查询的表示(4)掌握select语句的group by子句的作用和使用方法(5)掌握select语句的order by子句的作用和使用方法2 实验准备(1)了解SELECT语句的基本语法格式;(2)了解SELECT语句的执行方法;(3)了解子查询的表示方法;(4)了解连接查询的表示;(5)了解SELECT语句的GROUPBY子句的作用和使用方法;(6)了解SELECT语句的ORDERBY子句的作用;3实验内容SELECT语句的基本使用。
①对于实验2给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在查询分析器中输入如下语句并执行:USEYGGLGOSELECT *FROM Employees【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。
用SELECT语句查询Employees表中每个雇员的地址和电话。
新建一个查询,在查询分析器中输入如下语句并执行:Use YGGLGOSELECT Address PhoneNumberFROM Employees【思考与练习】a.用SELECT语句查询Deparments和Salary表的一列或若干列。
b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。
c.查询EmployeeID为000001的雇员的地址和电话。
Use YGGLGOSELECT Address PhoneNumberFROM EmployeesWHERE EmployeeID=’000001’【思考与练习】a.查询月收入高于2000元的员工号码。
b.查询1970年以后出生的员工的姓名和住址。
c.查询所有财务部的员工的号码和姓名。
查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
实验四视图的创建、修改和删除
实验四视图的创建、修改和删除实验四视图的创建、修改和删除一、实验目的1、掌握创建、删除视图的方法。
2、会更新视图。
二、实验内容与要求1、创建一个视图,其数据来源于基本表Student。
视图名称是VIEW_S,包含的数据有SNAME,SSEX,SAGE;2、使用SQL创建一个选课表视图,其数据来源于2个基本表:SC、Course,视图名称是VIEW_CT,包含的数据有来自表SC的字段SNO、GRADE;来自表Course的字段CNAME。
3、通过修改视图VIEW_S中的数据来实现对基本表Student中数据的修改。
4、删除视图VIEW_CT。
三、实验步骤1、创建视图VIEW_S(1)打开创建视图的窗口。
(2)添加基本表。
单击工具栏中的添加基本表按钮,出现“添加表”对话框,选择Student表,单击“添加”命令,关闭“添加表”对话框。
(3)选择视图中的列。
在表Student中,分别单击字段左侧的复选框,选中字段SNAME,SSEX,SAGE。
(4)执行视图定义。
单击工具栏中的执行按钮,窗口下面的表格显示视图数据。
(5)保存视图定义。
单击工具栏中的保存按钮,打开对话框,输入视图名是VIEW_S,单击“确定”按钮。
(6)关闭创建视图窗口。
(7)查看数据库中的视图信息。
2、使用SQL创建选课表视图VIEW_CT(1)打开查询窗口,输入以下SQL语句CREATE VIEW VIEW_CTAS SELECT SNO,CNAME,GRADEFROM SC,CourseWHERE /doc/8515403457.html,O= Course .CNOGO(2)执行SQL语句(3)查看视图信息。
在查询窗口中的对象浏览器中,展开数据库学生选课中的“视图”节点,可以看到视图VIEW_CT已存在。
3、修改视图VIEW_S中的数据,实现对基本表Student中数据的修改(1)分别打开视图VIEW_S和基本表Student的数据窗口。
SQLSERVER2008实用教程实验参考答案解析(实验4)
SQLSERVER2008实用教程实验参考答案解析(实验4)实验4 数据库的查询和视图一、SELECT语句的基本使用1. 查询Employees表中所有数据2. 查询Employees表中指定字段数据3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和查询月收入高于2000元的员工查询1970年以后出生的员工的和住址5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和,并将列标题显示为地址和查询Employees表中男雇员的和出生日期,并将列标题显示为和出生日期6. 使用使用CASE子句查询Employees表中员工的和性别,要求Sex值为1时显示“男”,为0时显示“女”查询Employees表中员工的、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。
7. 使用SELECT语句进行简单计算计算每个雇员的实际收入8. 使用置函数获得员工总数计算Salary表中员工月收入的平均数获得Employees表中最大的员工计算Salary表中所有员工的总支出查询财务部雇员的最高和最低实际收入9. 模糊查询找出所有姓王的雇员的部门号找出所有地址中含有“”的雇员的及部门号找出员工中倒数第二个数字为0的员工的、地址和学历10. Between…And…和Or的使用找出收入在2000~3000元之间的雇员编号找出部门为“1”或“2”的雇员的编号11. 使用INTO子句,由源表创建新表由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和,选择所有男员工二、子查询的使用1. 查找在财务部工作的雇员情况2. 用子查询的方法查找所有收入在2500以下的雇员的情况3. 查找财务部年龄不低于研发部雇员年龄的雇员4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的5. 查找比所有财务部的雇员收入都高的雇员的6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的三、连接查询的使用1. 查询每个雇员的情况及薪水的情况2. 查询每个雇员的情况及其工作部门的情况3. 使用连接的方法查询名字为“王林”的雇员所在的部门4. 使用连接的方法查找出不在财务部工作的所有雇员信息5. 使用外连接方法查找出所有员工的月收入6. 查找财务部收入在2000元以上的雇员及其薪水详情7. 查询研发部在1976年以前出生的雇员及其薪水详请四、聚合函数的使用1. 求财务部雇员的平均收入2. 查询财务部雇员的最高和最低收入3. 求财务部雇员的平均实际收入4. 查询财务部雇员的最高和最低实际收入5. 求财务部雇员的总人数6. 统计财务部收入在2500元以上的雇员人数五、GROUP BY、ORDER BY子句的使用1. 查找Employees表中男性和女性的人数2. 按部门列出在该部门工作的员工的人数3. 按员工的学历分组,排列出本科、大专、硕士的人数4. 查找员工数超过2的部门名称和雇员数量5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人6. 将雇员的情况按收入由低到高排列7. 将员工信息按出生时间从小到大排列8. 在ORDER BY 子句中使用子查询,查询员工、性别和工龄信息,要求按实际收入从大到小排列六、视图的使用1. 创建视图(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列(2)创建视图Employees_Departments_View,视图包含员工、、所在部门名称(3)创建视图Employees_Salary_View,视图包含员工、和实际收入三列2. 查询视图从视图Employees_Salary_View中查询出为“王林”的员工的实际收入3. 更新视图(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’)执行完命令后,分别查看Departments_View和Department表中发生的变化(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’(5)删除视图Departments_View中最新增加的的一条记录4. 删除视图Employees_Departments_View5. 在界面工具中操作视图一、SELECT语句的基本使用1. 查询Employees表中所有数据SELECT*FROM Employees;2. 查询Employees表中指定字段数据SELECT EmployeeID,Name,DepartmentID FROM Employees;3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行SELECT Distinct DepartmentID,Sex FROM Employees;4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和Select Address,PhoneNumber FROM Employees WHERE EmployeeID='000001';查询月收入高于2000元的员工SELECT EmployeeID FROM Salary WHERE InCome>2000;查询1970年以后出生的员工的和住址SELECT Name,Address FROM Employees WHERE YEAR(Birthday)>'1970';SELECT Name,Address FROM Employees WHERE Birthday>'1970';5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和,并将列标题显示为地址和SELECT Address AS地址,PhoneNumber AS FROM Employees;查询Employees表中男雇员的和出生日期,并将列标题显示为和出生日期SELECT Name AS,Birthday AS出生日期FROM Employees WHERE Sex=1;6. 使用使用CASE子句查询Employees表中员工的和性别,要求Sex值为1时显示“男”,为0时显示“女”SELECT Name AS,CASEWHEN Sex=1 THEN'男'WHEN Sex=0 THEN'女'ENDAS性别FROM Employees;查询Employees表中员工的、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。
实验四 视图的创建和使用(2012)
实验四视图的创建和使用学号:20092426 姓名:xx远专业:信息与计算科学班级:2009121一、实验目的(1)理解视图的概念。
(2)掌握创建视图、测试、加密视图的方法。
(3)掌握更改视图的方法。
(4)掌握用视图管理数据的方法。
二、实验内容1.创建视图(1)创建一个名为stuview1的水平视图,从Student_info数据库的student表中查询出所有男学生的资料,并在创建视图时使用with check option。
结果:create view stuview1asSELECT [sno],[sname],[sex],[birth],[classno],[entrance_date],[home_addr],[sdept],[postcode]FROM [20092426student].[dbo].[student]where sex='男'with check option(2)创建一个名为stuview2的投影视图,从Student_info 数据库的course 表中查询学分大于3的所有课程的课程号、课程名、总学时。
并在创建时对该视图加密。
(提示:用with ENCRYPTION 关键子句,加在as 与视图名称之间,且sp_helptext 无法看到该视图的定义脚本。
)结果create view stuview2 with ENCRYPTIONasSELECT cno,cname,total_periorFROM coursewhere credit>3with check option:(3)创建一个名为stuview3的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。
结果:create view stuview3asSELECT student.sno,cno,gradeFROM student,scwhere student.sno=sc.snoand classno='051'and sex='女'(4)创建一个名为stuview4的视图,能检索出每位选课学生的学号、姓名、总成绩。
数据库原理及应用.实验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视图和索引的构建与使用
实验训练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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四创建和使用视图一、实验目的1、掌握视图、索引、存储过程的定义、索引、存储过程的工作原理;2、掌握创建视图、索引、存储过程的SQL语句的用法;并能够熟练利用视图向表中插入、删除和修改数据。
3、掌握使用视图来查询数据。
二、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows;2.数据库管理系统:SQL sever 2000;三、实验方法、步骤及结果测试1、建立‚信息管理学院(IS)‛的学生基本情况视图is_student_view,该视图包括信息管理学院所有学生的学号、姓名、性别、出生年月、专业名称。
CREATE VIEW is_student_viewASSELECT sno,sname,sex,sbirthday,sdeptFROM SWHERE S.sdept='信息'2、执行is_student_view视图并观察结果。
SELECT*FROM ies_student_view3、建立课程1的学生名册的视图,该名册包括学生的学号、姓名、专业名称和这门课的成绩;并查询结果。
CREATE VIEW cno1_student_viewASSELECT s.sno,sname, sdept,cno,gradeFROM s,scWHERE o='1'AND s.sno=sc.sno查看:SELECT*FROM cno1_student_view4、建立统计不及格情况的视图,列出不及格学生的学号、姓名和不及格的课程代码;CREATE VIEW fail_student_viewASSELECT.sno,sname,cnoFROM st,scWHERE st.sno=sc.sno AND sc.grade<605、执行视图并观察结果。
SELECT*FROM fail_student_view四、思考1、视图更新的优点视图的作用:1、视图能够简化用户的操作;2、视图使用户能以多种角度看待同一数据;3、视图对重构数据库提供了一定程度的逻辑独立性;4、视图能够对机密数据提供安全保护;5、适当的利用视图可以更清晰地表达查询。
因此,视图更新会比表更新带来更多的好处。
2、哪些视图是可以更新的?哪些视图是不可以更新的?针对实验举例说明。
答:一般的,行列子集视图时可更新的,除行列子集视图外,理论上有些视图也是可以更新的,但它们的确切特征还是尚待研究的课题。
还有其他的视图从理论上就是不可更新的,比如,视图的属性来自聚集函数、表达式,则该视图肯定是不可更新的。
在上述实验中ies_student_view视图是可以更新的,其视图更新既是对student表的更新。
视图cno1_student_view和fail_student_view都是由两个基本表组成的,此视图不能更新。
五、基于ASP访问数据库步骤及实例(一)ASP访问数据库步骤在ASP中,使用ADO组件访问后台数据库,可通过以下步骤进行:1. 定义数据源在WEB服务器上打开‚控制面板‛,选中‚ODBC‛,在‚系统DSN‛下选‚添加‛,选定你希望的数据库种类、名称、位置等。
本文定义‚SQL SERVER‛,数据源为‚HT‛,数据库名称为‚HTDATA‛,脚本语言采用Jscript。
2,使用ADO组件查询WEB数据库1) 调用Server.CreateObject方法取得‚ADODB.Connection‛的实例,再使用Open 方法打开数据库:conn = Server.CreateObject(‚ADODB.Connection‛)conn.Open(‚HT‛)2) 指定要执行的SQL命令连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有‚X‛的记录sqlStr = ‚select * from signaltab where code like ‘%X%’‛rs = conn.Execute(sqlStr)3) 使用RecordSet属性和方法,并显示结果为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据。
rs = Server.CreateObject(‚ADODB.RecordSet‛)rs.Open(sqlStr,conn,1,A)注:A=1读取A=3 新增、修改、删除在RecordSet组件中,常用的属性和方法有:rs.Fields.Count:RecordSet对象的字段数。
rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1rs(i):第i个字段的数据,i为0至rs.Fields.Count-1rs("字段名"):指定字段的数据。
rs.Record.Count:游标中的数据记录总数。
rs.EOF:是否最后一条记录。
rs.MoveFirst:指向第一条记录。
rs.MoveLast:指向最后一条记录。
rs.MovePrev:指向上一条记录。
rs.MoveNext:指向下一条记录。
rs.GetRows:将数据放入数组中。
rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
rs.Properties:ADO的ResultSet或Connection的值。
rs.close():关闭连接。
4) 关闭数据库conn.close()(二)查询WEB数据库举例下面这段示例程序是访问SQL SERVER数据库的signaltab表,表中有三个字段:code(代码字段,字符型,3位),class(分类字段,字符型,10位),memo(备注字段,字符型,20位)。
程序中数据源DSN:HT、用户名:client、口令:passwd。
(1)屏幕输入页面input.asp<% @ language=javascript %><html><head><title>请输入查询条件PLEASE INPUT CONDITION</title></head><form action=shotquery.asp METHOD="post" target="_self"><input TYPE="text" size=6 maxlength=3 NAME=signalCode VALUE="代码"> </font></p></center></div><p></p><input LANGUAGE="JavaScript" TYPE="submit" VALUE=‚确认‛NAME="B1"<input TYPE="reset" VALUE=‚清除‛NAME="B2"><input LANGUAGE="JavaScript" TYPE="button" NAME="B3" VALUE=‚返回‛ONCLICK="window.history.back()"></font></p></center></div></form></body></html>(2)数据库处理程序shotquery.asp<!--#include virtual="/master/lib.inc"--><script language=javascript runat=server>var signalCode=Request.Form("signalCode");dbConn = Server.CreateObject("ADODB.Connection");dbConn.open("DSN=HT;UID=client;PWD=passwd");rs = Server.CreateObject("ADODB.RecordSet");var sqlStr = "select * from signaltab order by code";rs.open(sqlStr,dbConn,1);if(rs.RecordCount < 1) {Response.write("<p> 无符合条件记录</p>");Response.write("<p><form> <input type='button' value=' 返回' onclick='window.history.back()' name='b1'></form></p>");}else {Response.write("<P><center><B>数据查询结果</B></center></P>");Response.write("<tr><td><b>代码</b></td> <td><b>分类</b></td><td><b>备注< /b></td>");for(var i = 1;i <= rs.Pagesize;i++) {if(!rs.Eof) {Response.write("<td><span style='font-size:9t'>"+rs("code")+"</span></td>");Response.write("<td><span style='font-size:9t'>"+rs("class")+"</span></td>");Response.write("<td><spanstyle='font-size:9t'>"+rs("memo")+"</span></td>");Response.write("</tr>");rs.MoveNext();}else break;}Response.write("</table></form>");rs.close();dbConn.close();}</script>(三)ASP访问数据库简介1.ASP访问数据库的原理ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。