当前位置:文档之家› 实验三 数据库的查询和视图

实验三 数据库的查询和视图

实验三 数据库的查询和视图
实验三 数据库的查询和视图

实验三数据库得查询与视图

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语句得ORDER BY子句得作用。

3、实验内容

(1)SELECT语句得基本使用。

①对于实验二给出得数据库表结构,查询每个雇员得所有数据。

新建一个查询,在“查询分析器”窗口中输入如下语句并执行。

单击右键空白处,选择执行,在下方会出现所有结果.

【思考与练习】

用SELECT语句查询Departments表与Salary表中所有信息.

新建一个查询,在“查询分析器"窗口中输入如下语句并执行。

单击右键空白处,选择执行,在下方会出现所有结果。

在“消息”中会发现总共有60行受影响。

② 用SECECT语句查询Employees表中每个雇员得地址与电话号码。

新建一个查询,在“查询分析器”窗口中输入如下代码并执行.

单击右键空白处,选择执行,在下方会出现所有结果.

在“消息”中会发现有12行记录受影响

【思考与练习】

A、用SELECT语句查询Departments表与Salary表得一列或若干行。

利用SELECT语句查询Departments表与Salary表中EmployeeID为000001

得记录,在“查询分析器”中输入以下代码。

执行后在下方会出现所有EmployeeID=000001得记录

B、查询Employees表中部门号与性别,要求使用DISTINCT消除重复行。

对表只选择某些行时,可能会出现重复行.此时就需要使用DISTINCT关键字消除结果中得重复行。此时使用DISTINCT消除在Employees中查询到得部门号与性别得重复行,具体代码如下.

上面代码分别就是使用了DISTINCT与没有使用DISTINCT关键字,下面就就是两种得结果得对比。

可以从上面得执行结果中瞧出使用了DISTINCT关键字,结果集中得重复行就被消除了。

③查询EmployeeID为000001得雇员得地址与电话.

鼠标右键单击在弹出得菜单窗口中选择“执行”,结果中只会出现一行记录,EmployeeID为000001得雇员得地址与电话.

【思考与练习】

A、查询月收入高于2000元得员工号码。

只需要查询员工号码,条件为月收入高于2000元员工,那么至于要Salary表就行。用T—SQL命令在表Salary表中查询月收入高于2000元得员工代码如下。

在结果栏中显示(9 行受影响),说明月收入高于2000得员工共有9人,如上截图所示,将所有月收入高于2000得员工得员工号码输出.

B、查询1970年以后出生得员工得姓名与地址。

通过分析员工信息,跟员工年龄、姓名、地址相关得只有表Employees表,所以只需要在一张表中查询即可,具体T-SQL查询命令如下。

在结果栏中消息显示(77人,如上截图所示,将部分1970年以后出生员工姓名、地址输出显示。

C、查询所有财务部得员工得号码与姓名.

通过分析得,需要知道财务部与员工得号码与姓名,财务部只存在于Departments 表中,员工姓名与号码只存在于Employees表中。因此需要在表Departments表与Emplo yees表中进行查询.利用T-SQL命令查询代码如下。

在结果栏中显示3行受影响,从上面截图中可以瞧出所有财务部员工有3人,并且查询显示其姓名、电话号码。

④ 查询Employees表中女雇员得地址与电话,使用AS子句将结果中各列得标题分别指定为地址、电话.

从上面结果得截图发现Address变为地址,PhoneNumber变为电话。

【思考与练习】

查询Employees表中男员工得姓名与出生日期,要求各列标题用中文表示。

通过分析此查询属于单表查询,只需要用到Employees表,使用AS子句就能够使结果集中各列标题用中文显示。利用T-SQL命令查询代码如下.

从上面结果得截图发现各列标题都就是中文.从消息中显示(9行受影响)说明,员工中男性有9人,并且全部男性得姓名与出生日期都已经查询显示出。

⑤ 查询Employees表中员工得姓名与性别,要求Sex值为1时显示为“男",为0时显示为“女”。

【思考与练习】

查询Employees员工得姓名、住址与收入水平,2000元以下显示为低收入,2000~3000元显示为中等收入,3000元以上显示高收入.

经过分析需要查询员工得姓名、住址与收入水平,需要在Employees表与Salary表中进行查询,并且将Salary表中员工得Ine进行分类需要用到AS子句。利用T-SQL命令进行多表查询语句如下。

执行上面截图中代码,在结果栏中出现员工得姓名,住址与收入水平。消息中显示12行受影响,Employees表中所有员工信息都已经查询输出。

⑥计算每个雇员得实际收入。

经过分析需要员工得收入以及员工号码与员工姓名,就需要在Employees表与Salary 表中进行查询。利用T-SQL命令查询如下。

结果栏中就会显示EmployeeID,Name,实际收入这三项。

注意:在上面T-SQL命令中EmployeeID如果不指明为哪个表中得EmployeeID,代码就会报错“EmployeeID不明确”,改为Employees、EmployeeID或者Salary、Employe eID都行。

【思考与练习】

使用SELECT语句进行简单得计算.

在这里我将使用SELECT语句计算出Employees表中工龄三年以上得人数,并且查询员工号码,姓名,工龄.

⑦获得员工总数。

经分析得需要得到员工总数,只需要在Employees表内使用内置函数COUNT就行。利用T—SQL命令执行操作如下。

【思考与练习】

A、计算Salary表中员工月收入得平均数。

B、获得Employees表中最大得员工号码.

C、计算Salary表中所有员工得总支出。

D、查询财务部雇员得最高与最低实际收入。

经过分析需要查询财务部雇员得最高与最低实际收入,涉及到Employees表、Depart ments表与Salary表,需要在三张表中进行查询。

首先确定DepartmentName为“财务部”得DepartmentID.

其次在Employees表中确定DepartmentID为财务部得雇员得EmployeeID。

最后在Salary表中通过EmployeeID查询财务部雇员得Ine与Oute,在最后得输出时候用Ine—Oute得结果为实际收入。

执行后在结果栏中瞧到财务部雇员得最高实际收入与最低实际收入。

⑧找出所有姓王得雇员得部门号.

【思考与练习】

A、找出所有地址中含有“中山”得雇员得号码及部门号。

注意:%代表着任意长度得字符串(长度可以为0),“%中山%"表示“中山”前面与后面都能够有任意长度字符串,用来表示地址中含有“中山"二字。

B、查找员工号码中倒数第2个数字为0得员工得姓名、地址与学历。

注意:数字占单个字符,所以通配符“_”只有一个,“%0_"表示倒数第二位为0。

⑨找出所有收入在2000~3000元得员工号码。

【思考与练习】

找出所有在部门“1"或“2”工作得雇员得号码。

10 使用INTO子句,由表Salary创建“收入在1500元以上得员工”表,包括编号与收入。

在左边对象资源管理器得YGGL数据库得表中刷新,会发现多了表“收入在1500元以上得员工”.

【思考与练习】

使用INTO子句,由表Employees创建“男员工"表,包括编号与姓名。

(2)子查询得使用。

①查找在财务部工作得雇员得情况.

查询财务部工作得雇员情况,需要用到Department表与Employees表进行多表查询。

首先,在Department表中查询DepartmentName为“财务部"得DepartmentID。

然后,将DepartmentID拿到表Employees表中查询所有DepartmentID为财务部得雇员得所有信息。

利用T—SQL命令查询代码如下.

在结果栏中显示所有工作部门为“财务部"得雇员得详细信息.

【思考与练习】

用子查询得方法查找所有收入在2500元以下得雇员得情况。

进分析需要用到工资表Salary与员工信息表Employees进行查询。

首先,在表Salary中查询Ine〈2500元得雇员得EmployeeID。

然后,利用得到得EmployeeID在表Employees中行选,查询所有符合EmployeeID得雇员得情况。

注:上面截图中代码第5行,若改为“whereEmployeeID=”就会出现如下错误

表示返回值不止一个,并且现在子查询后面接得就是“=”,这种情况DBMS就是不允许得,所以就会出现如上所示得错误。解决方法只需要将“=”改为“in”就行了,就会解决返回值不止一个与“=”得冲突.

执行上面T-SQL语句,在结果栏中显示出现结果。

②查找财务部年龄不低于研发部雇员年龄得雇员得姓名.

分析得,ALL指定表达就是要与子查询结果集中每个值都进行比较,当表达式与每个值都满足比较就是关系时,才返回TRUE,否则返回FALSE.

执行结果会发现只查询到1人满足这样得条件。

同样我们也能够通过查询Employees表得到。财务部只有“王向容”1人符合年龄不小于(大于)研发部雇员年龄。

注:在书上源码第12行“Birthday!>all”查询到得就是“李丽",年龄小于所有研发部得,所有书本上源码表示得就是“财务部雇员年龄不大于研发部雇员年龄”与题目中“不低于"冲突。所以书上源码有误,将源码改成上面截图中第12行即可.

【思考与练习】

用子查询得方法查找研发部比所有财务部雇员收入都高得雇员得姓名.

分析:首先在Employees表里找到EmployeeName为“研发部”得雇员得姓名与查找雇员得EmployeeID,其次这样得EmployeeID还需要满足Ine大于所有得DepartmentName为“财务部”得雇员得Ine,满足条件返回True,select到满足这样条件得雇员得Name,否则返回FALSE。

Where子查询中嵌套使用.

执行T-SQL命令后在结果栏中显示只有1人满足.

(3)连接查询得使用.

①查询每个雇员得情况及其薪水情况。

执行之后,将Employees表与Salary表中所有员工得基本情况进行输出。不足之处就就是EmployeeID这一列有重复。

【思考与练习】

查询每个雇员得情况及其工作部门得情况.

执行后将每个雇员得基本情况、工资情况、工作部门情况输出。

②使用内连接得方法查询名字为“王林”得员工得所在部门。

【思考与练习】

A、使用内连接方法查找出不在财务部工作得所有员工信息.

内连接就是指定了关键字INNER得连接,内连接按照ON所指定得连接条件合并两个表,返回满足条件得行。此处INNER关键字能够省略。

查找所有不在财务部工作得员工得信息,就需要使用员工基本信息表Employees与部门信息表Department进行查询。T-SQL命令语句如下.

执行结果包含表Employees与表Department得所有字段,不去除重复字段(Dep artmentID)。

B、使用外连接方法查找出所有员工得月收入。

外连接为指定了关键字OUTER关键字得连接,外连接包括以下三种连接.

左外连接(LEFT OUTER JOIN):结果表中除了包括满足连接条件得行外,还包括左表得所有行.

右外连接(RIGHT OUTER JOIN):结果表中除了包括满足连接条件得行外,还包括右表得所有行.

完全外连接(FULLOUTER JOIN):结果表中除了包括满足连接条件得行外,还包括两个表得所有行.

在这里将表Employees与表Salary做右连接查询,结果表中除了包括连接条件Employees、EmployeeID=Salary、EmployeeID外,还将包括右表(Salary表)中得所有行(Ine与Oute)。

执行代码结果如下。

③查找财务部收入在2000元以上得雇员姓名及其薪水情况.

分析得需要财务部收入2000元以上雇员姓名与薪水情况,涉及雇员基本信息得Employees表、部门信息Department表与薪水信息Salary表.此时就用到where语句里面多表查询将三张表做自然连接。

执行上面截图中代码,在下面结果栏中显示财务部工资在2000元以上得雇员得姓名与薪水情况.

【思考与练习】

查询研发部在1976年以前出生得雇员姓名及其薪水情况。

将三张表做自然连接后查询满足条件得雇员得姓名、收入与支出。

(4)聚合函数得使用

①求财务部雇员得平均收入。

新建一个查询,在“查询分析器”窗口中输入如下语句并执行.

执行截图中代码,结果栏中显示才而不平均收入。

【思考与练习】

查询财务部雇员得最高收入与最低收入。

查询最高与最低收入,将用到聚合函数表中得MAX(求最大值)与MIN(求最小值).

执行上面截图中T—SQL命令,在结果栏中显示财务部雇员最高收入与最低收入。

②求财务部雇员得平均实际收入。

新建一个查询,在“查询分析器”窗口中输入如下语句并执行。

执行上面截图中得T—SQL命令,在结果栏中显示财务部雇员平均实际收入.

【思考与练习】

查询财务部雇员得最高与最低实际收入。

需要财务部实际收入需要用表Salary中得Ine字段与Oute字段。其次用到聚合函数MAX与MIN。最后在用where子查询找到DepartmentName为“财务部”得雇员得EmployeeID。

执行上面截图中得T—SQL命令,在结果栏中显示财务部雇员最高与最低实际收入.

(5)GROUP BY、ORDER BY子句得使用.

①查找Employees表中男性与女性人数。

【思考与练习】

A、按部门列出在该部门工作得员工得人数。

B、按员工得学历分组,排列出本科、大专与硕士得人数。

② 查找员工数超过2得部门名称与员工数量。

执行上面截图中代码,在结果栏中显示员工数超过2得部门名称以及人数。

【思考与练习】

按照员工得工作年份分组,统计各个工作年份得人数,例如,工作1年得多少人,工作2年得多少人。

分析只需要Employees表就能够完成,通过GROUP BY对WorkYear进行分组,并统各个年份得人数。

③ 将各个雇员得情况按收入由低到高排列。

新建一个查询,在“查询分析器"窗口中输入如下语句并执行。

需要对雇员得收入情况进行排序,就需要使用到谓词ORDER BY,谓词ORDER BY后面能够接多个排序得变量名,第一个变量为主序,下面依次类推。每一个排序列名后面可用限定词ASC(升序)或者DESC(降序)声明排序得方式,缺省为升序(如果不接限定词系统默认得为ASC(升序))。

下面为执行上面截图中T—SQL命令,在结果栏中显示得查询结果。可以观察雇员得基本信息就是按照Ine升序排列(由低到高)。

【思考与练习】

A、将员工信息按照出生时间从小到大排列。

执行上面截图中得T—SQL命令,在下面结果栏中显示雇员信息根据出生日期从小到大排列.

C、在ODER BY子句中使用子查询,查询员工姓名,性别与工龄信息,要求按照实际收入从大到小排序。

经分析将表Employees与表Salary根据EmployeeID相同做自然连接,其次根据实际收入(Ine-Oute)进行ORDERBY排序.

最后,由于就是根据实际收入(Ine-Oute)从大到小进行排序,那么接在ORDER BY后面得谓词就需要换成DESC.

根据上面截图中T-SQL命令,在结果栏中显示根据实际收入进行排序输出雇员得姓名,性别与工龄信息。

T4、1 视图得使用

1、目得与要求

(1)熟悉视图得概念与作用。

(2)掌握视图得创建方法.

(3)掌握如何查询与修改视图。

2、实验准备

(1)了解视图得概念

(2)了解创建视图得方法。

(3)了解并掌握对视图得操作。

3、实验内容

(1)创建视图。

①创建YGGL数据库上得视图DS_VIEW,视图包含Departments表得全部列。

新建“查询分析器”窗口,在其中输入以上T-SQL命令,点击执行按钮。在YGGL数据库得视图中进行刷新,就会显示创建得DS_VIEW视图,如下所示。

②创建YGGL数据库上得视图Employees_view,视图包含员工号码、姓名与实际收入3列。使用如下T-SQL命令进行操作。

执行上面截图中代码,在YGGL数据库得视图中进行刷新,显示视图Employees_view,如下所示.

【思考与练习】

A、在创建视图时SELECT有哪些限制?

用来创建视图得SELECT语句,可在SELECT语句中查询多个表或者视图,以表明新创得视图所参照得表或视图。

B、在创建视图时有哪些注意点?

只有在当前数据库中才能够创建视图.视图得命名必须遵循标识符命名规则,不能够与表同名。

不能够把规则、默认值或触发器与视图相关联。

C、创建视图,包含员工号码、姓名、所在部门名称与实际收入这几列。

在数据库YGGL得视图中刷新,会显示刚刚创建得视图test_view,包含员工号码、姓名、员工部门名称与实际收入这几列。结果如下图所示.

(2)查询视图

①从视图DS_VIEW中查询部门号为3得部门名称。

注:在上面代码下就是显示错误,但就是代码逻辑都正确,而且也能够正确执行,并且输出正确得结果。(不知道就是什么原因)

②从视图Employees_view中查询姓名为“王林”得员工得实际收入.

【思考与练习】

A、若视图关联了某表中得所有字段,而此时该表中添加了新得字段,视图中能否查询到该字段?

首先建立视图Employees_view并且关联表Employees中得所有字段。

然后在表Employees中插入一行新得数据。

最后在“查询分析器”中查询EmployeeID等于“000000”得雇员得所有信息。

从上面得T-SQL命令可以瞧出,当视图关联得表中添加新得字段时,视图中就是无法查询到该字段得,必须重新创建视图才能够查询到新添加得字段。

B、自己创建一个视图,并查询视图中得字段。

利用T-SQL命令创建一个视图Employees_view,该视图包含雇员EmployeeID、Name与RealIne(实际收入),并且查询该视图中姓名为“王林”得雇员得基本情况.具体

数据库原理视图的创建与使用实验报告

***大学计算机科学与信息学院软件工程系上机实验报告

显示结果: 2、用企业管理器创建、管理视图 (1)创建视图 A、使用企业管理器在表teacher上创建一职称为副教授的教师视图teacherview视图,该视图中需包 括以下信息:姓名,系别,职称,工资。 1)依次进入企业管理器、数据库、XSGL库,并用鼠标右键单击“视图”。 2)在系统弹出的快捷菜单中单击“新建视图”,出现“新建视图”窗口。

B、使用企业管理器在表student、course、sc表上创建一个能查询学生的学号、姓名、课程名及课程成绩的视图,视图名为S_C_VIEW。 (2)修改视图stuview1 将视图studview1的定义修改为从student表中查询出MA系学生的学号,姓名,系别。 (提示:修改视图:在企业管理器中选中视图后->击右键->按设计视图->进行修改) (3)管理视图中的数据 1)查看视图stuview1中的数据。 (提示:用鼠标右键单击要管理的视图stuview1,单击“打开视图”,再单击“返回所有行”。)

2)将视图stuview1中学号为“6”的学生姓名改为“许华”。再重新打开student表观察一下,有什么变化(注:须按按钮“!”进行修改确认。) 3、用T-SQL语言创建、管理视图 (1)创建视图 ①创建一个名为stuview2的水平视图,从数据库XSGL的student表中查询出性别为“男”的所有学生的资 料。并在创建视图时使用with check option。(注:该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。) T-SQL语句为: CREATE VIEW stuview2 AS SELECT* FROM Student WHERE Ssex='男' WITH CHECK OPTION; ②创建一个名为stuview3的视图,能检索出CS系所有女生的学号、选修的课程名及相应的成绩。 T-SQL语句为: CREATE VIEW stuview3 AS SELECT,, FROM SC,Course WHERE= AND IN ( SELECT Sno FROM Student WHERE Sdept='CS'AND Ssex='女'); ③创建一个名为stuview4的视图,能检索出选课学生的学号、姓名、课程名、成绩。

数据库实验报告_数据库的视图和图表的定义及使用

数据库实验报告_数据库的视图和图表的定义及使用贵州大学实验报告 学院:计信学院专业:网络工程班级:101 姓名学号实验组 实验时间 05.30 指导教师罗昊成绩实验项目名称数据库的视图和图表的定义及使用实 验使学生掌握SQL Server中的视图创建向导和图表创建向导的使用方法,加深对视目图和SQL Server图表作用的理解。 的 实本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。开始实验前,必验须进行预习,写出实现所有查询要求的SQL语句。实验过程中,先集中由老师进行具体要要求和注意事项的讲解,然后各自独立在机器上完成实验。实验过程中出现问题,在实求验指导老师帮助下解决。 1、创建视图 假设在图书_读者数据库中已经建立了图书、读者和借阅3个表,它们的结构为: 图书(书号,类别,出版社,作者,书名,定价); 借阅(书号,读者借书证号,借阅日期); 读者(借书证号,姓名,单位,性别,电话) 实如果要在上述3个表的基础上建立一个视图,取名为读者_VIEW,其操作用SQL语验句表示为: 原CREATE VIEW 读者_VIEW AS SELECT 图书.*,借阅.* FROM 图书,借阅,读者理 WHERE 图书.书号=借阅.书号 AND 借阅.读者借书证号=读者.借书证号;

利用SQL Srever 2000中提供的视图创建向导,来创建读者_VIEW视图。 2、查看和修改视图 视图创建好后,就可以利用它进行查询信息了。如果发现视图的结构不能很好地满 足要求,还可以在企业管理器中对它进行修改 3、删除视图 删除视图的方法是:首先要在企业管理器中,将鼠标指针指向数据库中的视图文件 夹,单击右键。在随后出现的弹出菜单中,选择“删除”项,会出现删除视图对话框。 选中欲删除的视图,单击“全部移出”按钮,被选中的视图就会从视图中被移出。 4、创建关联表 假如要在图书_读者数据库中建立一个读者_借阅_图书关系,要求该图表包括图书、 借阅和读者三个表,并包括它们之间的“图书.书号=借阅.书号 AND 借阅.读者借书证 号=读者.借书证号”的外码与被参照表之间的关联,即用关联表实现上述视图的功能。 在企业管理器中通过向导建立数据库关联表。 5、编辑数据库图表 在企业管理器中,展开数据库图表所属的服务器、数据库文件夹、数据库以及关系

数据库实验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,课程$SECOND WHEREFIRST.先修课号=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; 执行后结果为:

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给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在查询分析器中输入如下语句并执行: USEYGGL GO SELECT * FROM Employees 【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。 用SELECT语句查询Employees表中每个雇员的地址和电话。 新建一个查询,在查询分析器中输入如下语句并执行: Use YGGL GO SELECT Address PhoneNumber

FROM Employees 【思考与练习】 a.用SELECT语句查询Deparments和Salary表的一列或若干列。 b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。 c.查询EmployeeID为000001的雇员的地址和电话。 Use YGGL GO SELECT Address PhoneNumber FROM Employees WHERE EmployeeID=’000001’ 【思考与练习】 a.查询月收入高于2000元的员工号码。 b.查询1970年以后出生的员工的姓名和住址。 c.查询所有财务部的员工的号码和姓名。 查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标 题分别指定为地址、电话。 USE YGGL GO SELECT Address AS 地址,PhoneNumber AS 电话 FROM Employees WHERE Sex=0 【思考与练习】查询Employees表中男员工的姓名和出生日期,要求将各列标题用中文标示。 ⑤查询Employees表中员工的姓名和性别,要求SEX值为时显示为“男”,为0时显示为“女”。 SELECTNameAS姓名, CASE WHENSex=1 THEN男 WHENSex=1 THEN女 END AS性别 FROMEmployees

数据库视图的创建

实验五创建视图 实验目的: ①进一步熟悉视图的基本功能; ②熟练掌握视图的创建以及基本的操作; ③熟练sql server的使用方法。 实验步骤: ①建立信息系学生的视图 createview IS_Student asselect Sno,Sname,sage from Student where Sdept='I S' 省略了视图IS_Student的列名,则默认由select中的Sno,Sname,sage组成; 执行结果: select * from IS_Student ②建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学 生 createview IS_Student1asselect Sno,Sname,sage from Student where Sdept='I S'withcheckoption 执行结果与①的结果相同。 ③建立信息系选修了1号课程的学生的视图 createview IS_S1(Sno,Sname,Grade)asselect Student.Sno,Sname,Grade from Student,SC where Sdept='IS'AND student.Sno=SC.Sno and https://www.doczj.com/doc/904169413.html,o=1 执行结果:SELECT*FROM IS_S1

④建立信息系选修了1号课程且成绩在90分以上的学生的视图 createview IS_S2asselect Sno,Sname,Grade from IS_S1where grade>=90 执行结果:SELECT*FROM IS_S2 ⑤定义一个反映学生出生年月的视图。 createview BT_S(Sno,Sname,Sbirth)asselect Sno,Sname,2012-Sage from Stu dent 执行结果如下:

实验三大数据库地查询和视图

实验三数据库的查询和视图 T4.1 数据库的查询 1、目的和要求 (1)掌握SELECT语句的基本语法。 (2)掌握子查询的表示。 (3)掌握连接查询的表示。 (4)掌握SELECT语句的GROUP BY子句的作用和使用方法。 (5)掌握SELECT语句的ORDER BY子句的作用和使用方法。 2、实验准备 (1)了解SELECT语句的基本语法格式。 (2)了解SELECT语句的执行方法。 (3)了解子查询的表示方法。 (4)了解连接查询的表示。 (5)了解SELECT语句的GROUP BY子句的作用和使用方法。 (6)了解 SELECT语句的ORDER BY子句的作用。 3、实验内容 (1)SELECT语句的基本使用。 ①对于实验二给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 【思考与练习】 用SELECT语句查询Departments表和Salary表中所有信息。

新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现总共有60行受影响。 ②用SECECT语句查询Employees表中每个雇员的地址和电话号码。 新建一个查询,在“查询分析器”窗口中输入如下代码并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现有12行记录受影响 【思考与练习】 A、用SELECT语句查询Departments表和Salary表的一列或若干行。

利用SELECT语句查询Departments表和Salary表中 EmployeeID为000001的记录,在“查询分析器”中输入以下代码。 执行后在下方会出现所有EmployeeID=000001的记录 B、查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。 对表只选择某些行时,可能会出现重复行。此时就需要使用DISTINCT关键字消除结果中的重复行。此时使用DISTINCT消除在Employees中查询到的部门号和性别的重复行,具体代码如下。 上面代码分别是使用了DISTINCT和没有使用DISTINCT关键字,下面就是两种的结果的对比。 可以从上面的执行结果中看出使用了DISTINCT关键字,结果集中的重复行就被消除了。 ③查询EmployeeID为000001的雇员的地址和电话。

数据库-视图归纳

什么是视图? 视图是从一个或多个表(或视图)导出的表 使用视图有什么优点? 答:1.为用户集中数据,简化用户的数据查询和处理 2.屏蔽数据库的复杂性 3.简化用户权限的管理 4.便于数据的共享 5.可以重新组织数据以便输出到其他应用程序中 视同和表有什么区别? 视图是一张虚表,视图所对应的数据不进行实际存储,不占用存储空间,表是一张实表,表所对应的数据进行实际存储,占用存储空间 视图可以用于界面方式创建和命令方式创建,本章着重于命令方式创建命令方式创建视图格式如下: CREATE VIEW 视图名【视图列名1,视图列名2】 AS 查询语句 视图和表一样可以用作查询,更新,修改和删除 例如 查找平均成绩在80分以上学生的学号和平均成绩 CREATE VIEW CS_CJ (学号,平均成绩) AS SELECT 学号,AVG(成绩) FROM CJB GROUP BY 学号

SELECT 学号,平均成绩 FROM CS_CJ WHERE 平均成绩>=80 更新视图的作用? 通用更新视图(包括插入、修改和删除)数据可以修改基本数据;但并不是所有的视图都可以更新,只有对满足可更新条件的视图,才能进行更新。 哪些视图可更新 1.创建视图的SELECT语句中没有聚合函数,且没有TOP、GROUP BY、UNION子句 及DISTINCT关键字 2.创建视图的SELECT 语句中不包括从基本表列通过计算所得的列 3.创建视图的SELECT语句的FROM句子中至少要包含一个基本表 例如向CS_XS视图中插入以下记录 (‘081115’,’刘明仪’,1,’1998-3-2’,’计算机’,50,NULL) INSERT INTO CS_XS VALUES (‘081115’,’刘明仪’,1,’1998-3-2’,’计算机’,50,NULL) 例如:将CS_KC视图中学号为081101的学生的101号课程成绩改为80 UPDATE CS_KC SET 成绩=80 WHERE 学号=’081101’ AND 课程号=’101’ 修改视图,举例说明 例:将CS_SX视图修改为只包含计算机专业学生的学号、姓名和总学分 ALTER VIEW CS_XS AS SELECT 学号,姓名,总学分 FROM XSB WHERE 专业=’计算机’

SQL实验四:数据库的查询和视图

二 〇 一 五 年 四 月 题 目:数据库的查询和视图 学生姓名:孙跃 学 院:理学院 系 别:数学系 专 业:信息与计算科学 班 级:信计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 YGGL GO SELECT* FROM Employees (2)用SELECT语句查询Employees表中每个雇员的地址和电话. SELECT Address,PhoneNumber FROM Employees (3)查询EmployeeID为000001的雇员的地址和电话. SELECT Address,PhoneNumber FROM Employees WHERE EmployeeID='000001' GO (4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别制定地址和电话. SELECT Address AS地址,PhoneNumber AS电话 FROM Employees WHERE Sex=0 (5)查询Employees表中员工姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”. SELECT Name AS姓名, CASE

数据库原理-视图

数据库原理及应用课程计算机系09级本科班级第10讲 章节名称第3章关系数据库标准语言SQL 3.5数据更新 3.6视图 第4章数据库的安全性 4.1数据为安全性概述 教学目的掌握数据更新语句。(Grasp Data Modification Statements) 掌握视图的定义、查询及更新。(Grasp the Definition、Query and Modification of View)并要灵活应用 理解数据库安全性的含义。(Comprehend the meanings of Database Security) 了解TDI/TCSEC可信计算机系统评测标准。(Know the trusted Computer System Evaluation Criteria of TDI/TCSEC) 教学内容1.数据更新(Updata Insert Delete)2.视图的定义、视图的更新、视图的查询3.数据库安全性概述 教学重点数据更新(Updata Insert Delete) 视图的定义、查询及更新。(Definition、Query and Modification of View)理解数据库安全性 教学难点视图的概念及作用(Concepts and Functions of View) 存取控制、视图机制。(Access Control、View Mechanism)专业术语Table View select 作业 3、4、5 教学方法启发式教学法+实例对比法 教学后记

第3章SQL语言 3.5数据更新(学生讲) 3.6视图 视图的特点:1、虚表,是从一个或几个基本表(或视图)导出的表 2、只存放视图的定义,不会出现数据冗余 3、基表中的数据发生变化,从视图中查询出的数据也随之改变 基于视图的操作:查询、删除、受限更新、定义基于该视图的新视图 一、定义视图 1.建立视图 语句格式:CREATE VIEW<视图名>[(<列名>[,<列名>]…)] AS<子查询> [WITH CHECK OPTION]; 说明: ●DBMS执行CREATE VIEW语句时只是把视图的定义存入数据字典,并不执行其中的SELECT 语句。在对视图查询时,按视图的定义从基本表中将数据查出。 ●组成视图的属性列名:全部省略或全部指定 省略:由子查询中SELECT目标列中的诸字段组成 明确指定视图的所有列名: (1)某个目标列是集函数或列表达式 (2)目标列为* (3)多表连接时选出了几个同名列作为视图的字段 (4)需要在视图中为某个列启用新的更合适的名字 2.视图的各种形式 1)行列子集视图 [例1]建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept='IS'; 特点:从单个基本表导出、只是去掉了基本表的某些行和某些列、保留了码 2)有WITH CHECK OPTION选项的视图 透过视图进行增删改操作时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式) [例2]建立信息系学生的视图,并要求透过该视图进行更新操作只涉及信息系学生。 CREATE VIEW IS_Student AS

数据库更新及视图

课程实验报告 课程名称数据库系统概论班级XXXXX 实验日期XXXXX 姓名XXX 学号XXXXX 实验成绩 实验名称实验2:数据更新及视图 实验目的及要求1.掌握数据更新语句;2.掌握视图的使用。 实验环境操作系统:Windows DBMS:SQL Server 2005 实验内容商品(商品号字符(3),商品名字符(20),单价浮点型,商品类别字符(5),供应商字符(20)); 顾客(顾客号字符(3),姓名字符(10),住址字符(20)); 购买(顾客号字符(3),商品号字符(3),购买数量整型); 用SQL语句实现如下题目: 1.创建上述3个表。 2.往表中插入数据: 商品:M01,佳洁士,8.00,牙膏,宝洁; M02,高露洁,6.50,牙膏,高露洁; M03,黑人,7.50,牙膏,联合利华; M04,舒客,6.2,牙膏,舒客; M05,狮王,12.2,牙膏,狮王; 顾客:C01,Dennis,海淀; C02,John,朝阳; 购买:C01,M01,13;C01,M05,12; C01,M04,22;C02,M02,15; 3.将所有的牙膏商品单价增加20%。 4.将宝洁供应商改为P&G。 5.删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品。6.删除没有购买记录的商品。 7.创建顾客号,商品号,商品名称,单价,购买数量的视图。 调试过程 及实验结 果 2:往表中插入数据:

3:将所有的牙膏商品单价增加20%: 4:将宝洁供应商改为P&G: 5:删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品: 6:删除没有购买记录的商品: 7:创建顾客号,商品号,商品名称,单价,购买数量的视图:

实验4数据库的查询和视图.docx

南京信息工程大学实验(实习)报告 实验(实习)名称实验4 数据库的查询和视图实验(实习)日期2016.10.24 得分指导教师方忠进系计算机专业网络工程年级2014 班次 2 姓名刘信言学号20142346074 一.实验目的 (1)掌握select语句的基本语法; (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握select语句的group by子句的作用和使用方法 (5)掌握select语句的order by子句的作用和使用方法 二、实验准备 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUPBY子句的作用和使用方法; (6)了解SELECT语句的ORDER BY子句的作用; 三、实验内容 T4.1 数据库的查询 (1)SELECT语句的基本使用。 ①对于实验2给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在查询分析器中输入如下语句并执行:

【思考与练习】 用SELECT语句查询Departments和Salary表中所有的数据信息。

②用SELECT语句查询Employees表中每个雇员的地址和电话。 新建一个查询,在查询分析器中输入如下语句并执行: 【思考与练习】 a. 用SELECT语句查询Deparments和Salary表的一列或若干列。 b. 查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。

③查询EmployeeID为000001的雇员的地址和电话。 【思考与练习】 a.查询月收入高于2000元的员工号码。

数据库查询视图

第二章数据的查询的视图 实验指导书 实验目标: 查询语句的编写和视图的创建。 第一部分练习指导(50分钟) 联系1:测试ROWID和ROWNUM伪列 问题: 用户表没有建立主键约束而插入了重复的记录,为了解决数据冗余问题,必须删除表中的重复记录,用户应用程序之、只关心查询结果集中的一部分,需要限制查询返回的行数。 分析: Oracle 的RowID伪列可以唯一地标识表中的一行,可以利用ROWID删除表中重复的记录。ROWNUM伪列返回查询结果集中行的序号,可以通过ROWNUM限制查询返回的行数。 解决方案: (1)启动 SQL *Plus,并登录到数据库。 (3)测试ROWID伪列。 可以看到每个行的ROWID值都是不同的。现在删除第三行。

在次执行查询语句,就可以看到第三条记录已经被删除。由此可见,即使不定义主键,Oracle也可以唯一区分表中的行,因为ROWID可以当作表的主键。(4)测试ROWNUM伪列。 上述命令返回两条记录。可以看出,使用ROWNUM 伪列可以实现类似SQL SERVER 中的TOP N功能。 练习2:使用select语句创建表 问题: 假如scott用户下的表emp要做比较大的调整。Select语句可以与其它表中的重要的记录做一个副本。 分析: Select 语句可检索存储在数据库中的数据。Select 语句还可以与其它的DDL 和DML语句一起使用来执行各种操作,如创建表、插入记录和指定列的别名等。 解决方案: (1)创建表emp表的副本,但不包含表中的记录。 (2)使用select 语句选择记录并插入到另一个表中。

练习3: 使用子查询 问题 编写sql语句,查询出工资比blake高的员工的信息。 解决方案 (1)先查询出blake的工资。 (2)利用where条件筛选出比blake的工资高的员工的信息。 (3)在sql提示符下输入一下命令,查看结果。 select * from emp where sal > (select sal from emp where ename='BLAKE'); 第二部分练习(50分钟) 1.使用上一次练习中创建的三个表,查询出所有数学考试成绩都在60分以上的学生的名字和所在班级。 分析: (1)在成绩表中查询出数学成绩在60分以上的学生。 (2)利用where语句在学生信息表中筛选出这些学上的信息。 2.利用学生信息表创建一个视图,只显示学生的姓名和年龄。 3.创建一个视图,显示学生的姓名和平均成绩,并按照分数升序排列。 提示:使用 A VG 函数和 ORDER BY 子句. 4. 编写语句以显示vendor_master表中vencode,venname 和venadd列,如果veradd列问空,则该语句显示venadd1,否则显示veradd2. 提示:使用NVL2函数 第三部分作业 1.按照第二部分练习1的要求创建一个视图。 2.编写一个sql语句,查询出所有平均分数在70和80分之间的学生信息。 3.编写一个sql语句,查询出某一个班所有课程的平均分数。 编写语句以显示order_master表中的订单的orderno,同时要显示系统日期与该订单的del_date的月份数差值,将该值四舍五入显示月份数。

实验三--数据库中的数据查询及视图操作实验报告

实验三--数据库中的数据查询及视图操作实验报告

长春大学计算机学院科学与技术专业 数据库原理实验报告 实验 名称: 实验三数据库中的数据查询及视图操作(1) 班级: 姓 名: 学 号: 实验地点: 日期: 一、实验目的: 1.继续熟练SQL SERVER 2005/2008系统或KingBase ES V7.0的使用; 2.掌握SELECT语句的使用。 3.掌握单表查询,多表查询以及嵌套查询。 二、实验内容、要求和环境: 【实验要求】 注:将完成的实验报告重命名为:班级+学号+姓名+(实验三),(如:041540538张三(实验三)),提交到SPOC学堂。 1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。 2.课前要对实验内容和步骤部分进行预习。 【实验环境】 1.SQL SERVER 2005/2008; 2.KingBase ES V7.0 ,人大金仓。 【实验内容和步骤】

针对实验一建立的数据库的表,用select语句完成如下查询操作,写出select语句,并给出操作结果。 1.针对SPJ数据库中的四个表,实现如下查询: (1)求供应工程J1零件的供应商号码SNO; (2)求供应工程J1零件P1的供应商号码SNO; (3)求供应工程J1零件的供应商名SNAME; (4)求供应工程J1零件P1的供应商名SNAME; (5)求供应工程J1零件为红色的供应商号码 SNO; (6)求没有使用天津供应商生产的红色零件的 工程号JNO; (7)求至少用了供应商S1所供应的全部零件的 工程号JNO; (8)找出使用上海产的零件的工程名称; 2.针对学生-课程数据库中的三个表,用嵌套方法查询实现如下查询: (1)查询选修了数据库的学生姓名。 (2)查询比计算机系CS所有学生年龄都大的学生信息。 (3)列出“李勇”选修的所有课程的课名和成绩。(4)查询数据库的先行课的课程名。 3.针对实验一建立的SPXS数据库中的三个表,实现如下查询: (1)查询与商品“电视”颜色相同的商品名; (2)查询不销售商品P2的商店名; (3)查询至少销售商品P1、P2两种商品的商店名; (4)所有商店都销售的商品号。 (5)只销售一种商品P4的商店名。 三、实验结果与分析: 写出操作语句,粘贴查询结果(粘贴结果要求粘贴SQL Server Managemet Studio整个窗口):

数据库视图作用

视图有以下几方面的功能: 1。简化应用程序。 视图做为数据库中的一种实体,实际上存在的只是它的脚本,而它的内容并不真正的单独存在一份。一般,可以对复杂的应用程序从功能角度进行分析,将可以与其它的应用程序共用的那一部分,分离出来。对这部分功能,视具体情况可做成不同的数据库实体(如过程),有些是可以做成视图的。这样,上层的应用程序就可以从视图中取数据了。 还有,可以把对远地数据库的访问封装在视图中,使之对上层应用程序透明。 2。可以对UNION 后的记录集排序。 直接对以下语句的结果排序,是不可能的(至少我不知道怎么直接排序)。 select a.id id from a union select b.id id from b; 所以把以上语句作成视图后,就可以了。设视图名为A_B: select id from A_B order by id; 3。可以实现一定的权限控制。 可以根据需要,对表中的一部分内容做一个视图,以供一定的角色使用。可以对表中的一部分记录做一个视图(纵向),也可以对一个表中的一部分字段做一个视图(横向),或二者兼而有之。 暂时想了这么多,希望大家多多指正与补充。 -------------------------------------------------------------------- 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。 一、视图的作用 * 简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。 * 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上: 使用权限可被限制在基表的行的子集上。 使用权限可被限制在基表的列的子集上。 使用权限可被限制在基表的行和列的子集上。

实验五数据库视图的定义及使用

实验五数据库视图的定义及使用 实验五:数据库视图的定义及使用 实验目的: 掌握视图的用法,加深对视图作用的理解。 实验步骤: 创建数据库“experiment5”,然后在该数据库下按课本P85例题5,例题 6,例题7创建课本P82的三张数据表,并插入数据,然后完成以下查询(请在下列SQL语句前添加use experiment5语句。 一、视图的创建: 1(创建信息系学生信息的视图: use experiment5 create view IS_Student as select sno, sname, sage from student where sdept='IS' 2. 创建信息系选修了1号课程的学生的视图: create view IS_S1 as select student.sno, cno, grade from student, sc where student.sno=sc.sno and sdept='IS' and cno='1' 3. 建立信息系选修了1号课程且成绩在90分以上的学生的视图: create view as IS_S2 as select * from IS_S1 where grade>=90 4. 创建一个反映学生出生年份的视图: create view BT_S(sno, sname, 出生年份) as select sno, sname, year(date())- sage from student

5. 将所有女生的记录定义为一个视图: create view F_student as select * from student where ssex='女' 6. 将所有学生的学号和他的平均成绩定义为一个视图: create view S_G(sno, avg_grade) as select sno,avg(grade) from scgroup by sno 二、查询视图 7. 在信息系的学生视图中查询年龄小于20岁的学生: select * from IS_Student where sage<20 8. 查询信息系选修了1号课程的学生: select sc.sno, sname from IS_Student, sc where IS_Student.sno=sc.sno and cno= '1' 9. 在视图S_G中查询平均成绩在90分以上的学生的学号和平均成绩: Select * from S_G where avg_grade >=90 四、更新视图: 10(将信息系学生视图IS_Student中学号为”95002”的学生姓名改为”刘辰”: update IS_Student set sname='刘辰' where sno='95002' 比较: update IS_Student set sname=’刘辰’ where sno=’95003’ 此语句不能实现数据的更新. 11. 向信息系学生视图IS_Student中插入一个新的学生记录, 学号为95029, 姓名为”赵新”, 年龄为20岁: insert into IS_Student values('95029', '赵新',20) 12. 删除信息系学生视图IS_Student中学号为95004的学生的记录: delete from IS_Student where sno='95029'

数据库的查询与视图

数据库的查询与视图 T4.1 数据库的查询 1.目的与要求 (1)掌握SELECT语句的基本用法; (2)掌握子查询的表示; (3)掌握连接查询的表示; (4)掌握SELECT语句的GROUP BY子句的作用和使用方法; (5)掌握SELECT语句的ORDER BY子句的作用和使用方法。 2.实验准备 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUP BY 子句的作用和使用方法; (6)了解SELECT语句的ORDER BY 子句的作用。 3.实验内容 (1)SELECT语句的基本使用。 1.对于实验2给出的数据表结构,查询每个雇员的所有数据。 2.用select语句查询Employees表中每个雇员的地址和电话。

3.查询EmployeeID为000001的雇员的地址和电话。 4.查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址和电话。

5.查询Employees表中员工的姓名和性别,要求Sex值为1时显示为“男”,为0时显示为“女”。 6.计算每个雇员的实际收入。

7.获得员工总数 8.找出所有姓王的雇员的部门号。

9找出所有收入在2000~3000元之间的员工号码。 10.使用INITO子句,由表Salary创建“收入在1500元以上的员工”表,包括编号和收入。 (2)子查询的使用。 1.查找在财务部工作的雇员的情况。

2.查找财务部年龄不低于研发部雇员年龄的雇员的姓名。 3.查找比所有财务部的雇员收入都高的雇员的姓名。

实验五:数据库的视图和图表的定义及使用(20210103123300)

**大学实验报告

2、提高操作实验 将自设计的数据库应用项目中子模式, 用SQL 语句描述其视图定义,并在SQLServer 企业管理器中,用视图创建向导创建这些视图。 1、 写出实现所有操作要求的 SQL 语句。 2、 创建、查看、修改和删除视图。 3、 创建、编辑和删除数据库图表。 --建库 use master go if exists( select * from sysdatabases where name='ccb' ) drop database ccb go create database ccb go --切换数据库 use ccb go --建图书表 if exists (select * from sysobjects drop table Books go create table Books ( BookId varchar (50) primary key , Type varchar ( 50), Press varchar ( 50) , Author varchar (50), BookName varchar (50), Price money ); go --建读者表 实 验 内 容 where n ame ='Books' )

if exists (select drop table Reader go create table Reader ( from sysobjects where n ame='Reader' ) ReaderId varchar (50) primary key , Name varchar ( 50) Un it varchar ( 50) Sgender char ( 10) check ( Sgender ='男' or Sgender ='女'), Tel varchar (50) ); go * from sysobjects where n ame ='Borrow' drop go table Borrow create table Borrow ( BookId varchar ( 50), ReaderId varchar ( 50), Date DateTime , key ( BookId , ReaderId ) alter table Borrow add constraint FK Borrow Books foreig n key (BookId ) referen ces Books ( BookId ) alter table Borrow add con stra int FK Borrow Reader foreig n key (ReaderId ) refere nces Reader (ReaderId ) in sert select '200215121' ,'李勇' ,'CS', '男’, ,'888888888' union select '200215122' ,'刘晨' ,'MA', '女'. ,'857988888' union select '200215123' ,'王明' ,'MA', '女'. ,'999999999' union select '200215124' ,'张力' ,'CS', '女'. ,'999999999' union select '200215125' ,'李小' ,'IS', '男’, ,'999999999' union select '200215126' ,'杜绝’ ,'IS', '女'. ,'999999999' 建借阅表 if exists (select primary into Reader

实验3 数据库的查询和视图

实验3 数据库的查询和视图 实验目的 (1)掌握SELECT语句的基本语法 (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握数据汇总的方法 (5)掌握SELECT语句的GROUP BY子句的作用和使用方法 (6)掌握SELECT语句的ORDER BY子句的作用和使用方法 (7)掌握视图的使用方法 实验准备 (1)了解SELECT语句的基本语法格式和执行方法 (2)了解子查询的表示方法,连接查询和数据汇总的方法 (3)了解SELECT语句的GROUP BY子句的作用和使用方法 (4)了解SELECT语句的ORDER BY子句的作用 (5)了解视图的作用和创建视图的方法 (6)了解视图的使用方法 实验内容 一.SELECT语句的基本使用 1.对于实验2给出的数据库表结构,查询每个雇员的所有数据。在SQL*PLUS 窗口中输入下面语句并执行: Select * from employees 思考与练习:用SELECT语句查询Departments和Salary中的所有记录 2.查询每个雇员的地址和电话。在SQL*PLUS窗口中输入下面语句并执行:Select address,phonenumber from employees; 思考与练习:用SELECT语句查询Departments和Salary表的一列或若干列3.查询employeeID为000001的雇员的地址和电话。在SQL*PLUS窗口中输入如下语句并执行: Select address, phonenumber from employees where employeeID=’000001’ 思考与练习:用SELECT语句查询Departments和Salary表中满足条件的一列或若干列 4.查询employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址,电话。在SQL*PLUS窗口中输入下面语句并执行:Select address as 地址, phonenumber as 电话号码from employees where sex=0; 注意:使用AS子句可指定目标列的标题。 5.计算每个雇员的实际收入。在SQL*PLUS窗口中输入下面语句并执行:Select employeeid,income-outcome as 实际收入from salary 6.找出所有姓王的雇员的部门号。在SQL*PLUS窗口中输入下面语句并执行: Select departmentID from employees where name like ‘王%’

相关主题
文本预览
相关文档 最新文档