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

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

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

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

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的雇员的地址和电话。

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

【思考与练习】

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

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

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

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

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

在结果栏中消息显示(7 行受影响),说明1970年以后出生有7人,如上截图所示,将部分1970年以后出生员工姓名、地址输出显示。

C、查询所有财务部的员工的号码和姓名。

通过分析的,需要知道财务部与员工的号码和姓名,财务部只存在于Departments表中,员工姓名和号码只存在于Employees表中。因此需要在表Departments表和Employees表中进行查询。利用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表中员工的InCome进行分类需要用到AS子句。利用T-SQL命令进行多表查询语句如下。

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

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

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

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

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

【思考与练习】

使用SELECT语句进行简单的计算。

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

⑦获得员工总数。

经分析得需要得到员工总数,只需要在Employees表内使用内置函数COUNT 就行。

利用T-SQL命令执行操作如下。

【思考与练习】

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

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

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

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

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

首先确定DepartmentName为“财务部”的DepartmentID。

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

最后在Salary表中通过EmployeeID查询财务部雇员的InCome和OutCome,在最后的输出时候用 InCome-OutCome的结果为实际收入。

执行后在结果栏中看到财务部雇员的最高实际收入和最低实际收入。

⑧找出所有姓王的雇员的部门号。

【思考与练习】

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中查询InCome<2500元的雇员的EmployeeID。

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

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

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

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

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

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

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

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

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

【思考与练习】

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

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

Where子查询中嵌套使用。

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

(3)连接查询的使用。

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

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

【思考与练习】

查询每个雇员的情况及其工作部门的情况。

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

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

【思考与练习】

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

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

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

执行结果包含表Employees和表Department的所有字段,不去除重复字段(DepartmentID)。

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

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

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

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

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

在这里将表Employees和表Salary做右连接查询,结果表中除了包括连接条件Employees.EmployeeID=Salary.EmployeeID外,还将包括右表(Salary表)中的所有行(InCome和OutCome)。

执行代码结果如下。

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

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

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

【思考与练习】

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

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

(4)聚合函数的使用

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

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

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

【思考与练习】

查询财务部雇员的最高收入和最低收入。

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

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

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

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

执行上面截图中的T-SQL命令,在结果栏中显示财务部雇员平均实际收入。【思考与练习】

查询财务部雇员的最高和最低实际收入。

需要财务部实际收入需要用表Salary中的InCome字段和OutCome字段。其次用到聚合函数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命令,在结果栏中显示的查询结果。可以观察雇员的基本信息是按照InCome升序排列(由低到高)。

【思考与练习】

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

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

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

经分析将表Employees和表Salary根据EmployeeID相同做自然连接,其次根据实际收入(InCome-OutCome)进行ORDER BY排序。

最后,由于是根据实际收入(InCome-OutCome)从大到小进行排序,那么接在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和RealInCome(实际收入),并且查询该视图中姓名为“王林”的雇员的基本情况。具体T-SQL命令代码如下。

查询该视图中姓名为“王林”的雇员的基本情况。

(3)更新视图。

在更新视图前需要了解可更新视图的概念,了解什么视图时不可以进行修改的。更新视图真正更新的是和视图关联额表。

① 向DS_VIEW中插入一行数据“6,广告部,广告业务”。

当在“查询分析器”中输入上面代码时,会出现这样的错误。

规则已经和Departments。DepartmentID绑定,只需要解除绑定就行了。那么就将前面的T-SQL修改为这样就行了。

当再次执行时就会发现,Departments.DepartmentID已经没有了规则,也就说明第一次执行时规则已经解除绑定。同样当再次执行时会出字段字段已经出现,不能够重复输入primary key相同的记录。

继续在视图中刷新重新打开“编辑前200行”就会发现字段已经插入。

② 修改视图DS_VIEW,将部门号为5的部门名称修改为“生产车间”。

执行上面的T-SQL命令,将更新数据之前和之后的DS_VIEW表进行对照,发现数据已经成功更新,说明T-SQL命令执行成功。DepartmentID为5的DepartmentName已经更新为“生产车间”。

执行完该命令后,使用select语句分别查看视图DS_VIEW和和基本表Departments中发生的变化。

基本表Departments中的改变。

视图DS_VIEW中发生的改变,见上面截图。

③ 将视图Employee_view中的员工号为“000001”的员工的姓名修改为“王浩”。

执行上面的T-SQL命令后,打开视图Employees_view,可以看出

EmployeeID=’000001’的雇员的Name已经修改为“王浩”。

④ 修改视图DS_VIEW中部门号为“1”的一行数据。

【思考与练习】

视图Employees_view中无法插入和删除数据,其中的RealInCome字段也无法修改,为什么?

要通过视图更新(插入、修改和删除)基本数据,必须保证视图为可更新视图,只有满足一下条件的视图才是可更新视图。

A、创建视图的SELECT语句中没有聚合函数,且没有TOP、GROUP BY、UNION子句及DISTINCT关键字。

B、创建视图的SELECT语句不包含从基本表列通过计算得到的列。

C、创建视图的SELECT语句的FROM子句中至少要包含一个基本表。

视图Employees_view的SELECT语句中的RealInCome是通过InCome-OutCome 计算得来的,所以Employees_view是不可更新的视图,所以也无法向其中修改数据,同样其中的RealInCome字段也是不可修改的。

(4)删除视图。

删除视图DS_VIEW。

天津理工大学计算机专业数据库实验二

实验报告 学院(系)名称:计算机与通信工程学院 姓名范学号2009 专业计算机科学与技术 班级中加4班实验项目数据库控制与编程 课程名称数据库系统概论课程代码 实验时间2011年11月29日实验地点主校区7—219 批改意见 成绩 教师签 字: 一.实验目的 以一种开发环境为例,使学生初步掌握通过编程的方式对数据库进行操作,为进行数据库课程设计做准备。 二.实验工具软硬件环境 编写访问数据库的应用程序来对数据库进行各种数据操作,编程工具由导师指定,学生可以使用指导老师指定的工具,也可自己选择编程工具。 软件环境:Windows 2000MS SQL Server 硬件环境:P4 2.4GHz 256内存 三.实验内容和要求 所有的SQL操作均在自己建立的TEMP数据库里进行,根据以下要求认真填写实验报告,并且提交源程序,保证可正确编译运行。使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。 I.使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。 II.熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。 a)查询学生表中的所有学生,并实现调用。 b)修改学号为@sno学生的姓名,性别,年龄,系别,并实现调用。 c)向学生表中插入学生,并实现调用。 d)查询姓名为@sname选修的数据库课程的成绩,并实现调用。 e)查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。III.利用指定的编程语言完成一个简单程序,要求具有对数据的增加、修改和删除操作;基于一个给定的java应用程序,熟悉掌握建立ODBC和利用ODBC来凝结数据库的编程方法,建立一个应用程序,具有向学生、课程、选课表增加修改删除记录的功能,选取其中一个功能用存储过程实现。需要接取程序运行界面。 四. 实验步骤

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

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

显示结果: 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; 执行后结果为:

实验4数据库的简单查询和连接查询实验

实验4 数据库的简单查询和连接查询实验 1、实验目的 本实验的目的是使学生掌握SQL Server查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 2、实验时数2学时 3、实验内容 该实验在上一个实验的基础上进行 简单查询操作 1、求数学系(ma)学生的学号和姓名 select Sno,Sname from Student where Sdept='ma' 2、求选修了课程的学生学号 select Sno srom SC 3、求选修课程号为‘1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学 号的升序排列。 select Sno,Grade from SC where Cno='1' order by Grade DESC ,Sno ASC 4、求选修课程号为‘1’且成绩在80~90之间的学生学号和成绩,并成绩乘以输出。 select Sno ,Grade* from SC where Grade>=80 and Grade<=90 5、求数学系(ma)或计算机系(cs)姓张的学生的信息。 select * from Student where Sdept in('ma' ,'cs' ) and Sname='张*' 6、求缺少了成绩的学生的学号和课程号 select Sno ,Cno from SC where Grade=0 or Grade=NULL 连接查询操作 7、查询每个学生的情况以及他所选修的课程 select * from Student ,Course 8、求学生的学号、姓名、选修的课程及成绩 select ,Sname,Cname,Grade from Student,SC,Course where = and = 9、求选修课程号为‘1’且成绩在90以上的学生学号、姓名和成绩

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

实验一ACCESS数据库及表的操作

可编辑可修改 实验一数据库及表的操作 实验类型:验证性实验课时:_6_学时指导教师: _______________ 时间:2013年月日课次:第___________________ 节教学周次:第________ 周 实验分室:_______________ 实验台号:__________ 实验员:_________________ 一、实验目的 1.掌握数据库的创建及其它简单操作 2.熟练掌握数据表建立、数据表维护、数据表的操作 二、实验内容与要求 1.数据库的创建、打开、关闭 2.数据表的创建:建立表结构、设置字段属性、建立表之间关系、数据的输入 3.数据表维护:打开表、关闭表、调整表外观、修改表结构、编辑表内容 4?数据表的操作:查找替换数据、排序记录、筛选记录 三、实验步骤 案例一:创建数据库 1.创建空数据库 要求:建立“教学管理.accdb ”数据库,并将建好的数据库文件保存在“实验一”文件夹中。 操作步骤:

IS 1 丿小? e 叮亍 Micrtilitil ftfdwvi 口 可审业 a 站 j-t 4审时 OffiCfLC WF gm ■ *陆 (2)单击険'I 按钮,在打开的“新建数据库”对话框中,选择数据库的保存位置,在“ 件夹中,单击“确定”按钮,如图 1-2所示。 (3)这时返回到access 启动界面,显示将要创建的数据库的名称和保存位置,如果用户未提供文件 扩展名,access 将自动添加上。 (4 )在右侧窗格下面,单击“创建”命令按钮,如图 1-1所示。 (5)这时开始创建空白数据库,自动创建了一个名称为表 1的数据表,并以数据表视图方式打开这 个表1,如图1-3所示。 J 曰归 图1-1 创建教学管理数据库 (1 )在Access 2010启动窗口中,在中间窗格的上方,单击“空数据库” ,在右侧窗格的文件名文本 框中,给出一个默认的文件名“” 。把它修改为“教学管理”如图 1-1所示。 实验一”文

数据库视图的创建

实验五创建视图 实验目的: ①进一步熟悉视图的基本功能; ②熟练掌握视图的创建以及基本的操作; ③熟练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/2b11866162.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的雇员的地址和电话。

2-实验二MySQL数据库操作实验

实验二MySQL数据库操作实验 实验目的: 1、掌握MySQL数据库的安装方法 2、掌握MySQL数据库的使用 3、熟悉数据库管理工具的使用 实验要求: 1、利用MySQL命令创建数据库和相应的数据库表,并能向数据库表中插入数据记录和相应的数据库操作。 2、利用Navicat for MySQL建数据库和相应的数据库表,并能向数据库表中插入数据记录和相应的数据库操作。 3、保存和导入数据库 4、编程查询显示数据库表中的所有记录,可以选择以下添加的任意一个数据库表的记录。 实验内容: 1、安装MySQL数据库 安装MySQL可以参照文档“MySQL 5 安装.doc”,安装MySQL并进行配置,安装成功后,即可操作管理数据库。 方法一: 从开始菜单?MySQL?MySQL Server5.0?MySQL Command Line Client,打开控制台界面,提示输入密码,密码输入成功后,登录MySQL数据库,如下图2.1所示。

图2.1 登录MySQL 服务器 方法二:将MySQL的安装路径下的bin目录添加到环境变量path中,打开控制台命令,输入mysql –uroot –p,在提示符下输入密码,登录MySQL 服务器,如下图2.2所示。 图2.2 登录MySQL服务器 2、安装Navicat for MySQL Navicat for MySQL 是一款强大的MySQL数据库管理和开发工具,Navicat 使用很好的GUI,可以使用户采用一种安全和更容易的方式创建、组织、存取和共享信息。 安装Navicat_for_MySQL_10.1.7,安装向导启动界面如下图2.3所示。

数据库-视图归纳

什么是视图? 视图是从一个或多个表(或视图)导出的表 使用视图有什么优点? 答: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

实验3 SQL基本操作

实验3 SQL概述 一、实验目的 1.掌握使用企业管理器创建数据库、定义表结构、修改表、删除表的操作 2.创建视图,修改、删除视图。 二、实验内容 1.使用企业管理器创建数据库CPXS; 2.修改数据库、删除数据库; 3.在数据库CPXS中创建表; 4.创建查询产品库存量和销售时间的视图; 5.删除视图,修改视图。 三、实验步骤 1.使用企业管理器创建数据库 (1)进入企业管理器主界面,右击“数据库”文件夹,在弹出的快捷菜单中选择“新建数据库”命令。 (2)弹出“数据库属性”对话框,其中有“常规”、“数据文件”、“事务日志”3个选项卡。 (3)在“常规”选项卡中的“名称”对话框中输入要建立的数据库名称,这里只能输入字母不能输入汉字,如要建立产品销售数据库,可以输入“CPXS”。如图1所示。

图1 输入数据库名称cpxs (4)选择“数据文件”选项卡,对数据文件的逻辑名称、存储位置、容量大小、所属文件组名称和文件属性进行设置。例如,设置数据库的数据文件的逻辑名为cpxs_data,开始大小为1MB,所属文件组为Primary,文件按15%的比例自动增长,文件最大增长到15MB。

图2 设置cpxs属性 (5)选择“事务日志”选项卡,对事务日志文件的物理存储进行设置,可以输入事务日志文件的名称、存储位置、初始大小和文件属性等信息。如设置cpxs数据库的事务日志文件名是cpxs_Log,初始大小为 1MB,文件按5%的比例自动增长,文件最大增长到5MB。 (6)单击“确定”按钮,完成数据库的创建后,会在“数据库”文件夹内出现新建的cpxs的数据库。 2.修改数据库 (1)在企业管理器中右击cpxs,从弹出的快捷菜单中选择“属性”命令。 (2)弹出该数据库的属性对话框,在其中可以对常规、数据文件、事务日志、文件组、选项和权限6个选项进行设置,单击“确定”按钮,即可完成对选定数据库的修改。 3.删除数据库

实验二 数据库操作

实验二SQL Server 2005 数据库的创建修改与管理 一、实验目的与要求 1.实验目的: 掌握使用SSMS创建、修改、删除、压缩数据库的方法。 2.实验要求: 了解SQL Server 2005 数据库的逻辑结构和物理结构及其结构特点,掌握使用SSMS创建、 修改、删除,压缩数据库的方法,明确能够创建数据库的用户必须是系统管理员,或是被授 权使用CREATE DA TABASE语句的用户,创建数据库必须要确定数据库名、所有者(即创建 数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长的方式)和存储数据 的文件。 二、实验内容 1、创建数据库 用ssms:右击数据库/ 新建数据库或选定数据库→单击操作菜单→新建数据库 例:创建一个数据库uvw 命令方式创建:例:创建一个数据库aaa,其余默认,查看aaa信息 create database aaa exec sp_helpdb aaa 使用create database语句创建: create database 库名 on primary ( name=’数据库名’,filename=’数据库文件全称’,size=大小,maxsize=最大尺 寸,filegrowth=增长率) log on (name=日志名,filename=’日志文件全名称’, size=大小,maxsize=最大尺 寸,filegrowth=增长率) 例:创建一个名为dan的学生库,主数据库文件dan_data.mdf,初始大小4mb,事务日志文件 dan_log.ldf,初始容量为4mb,文件存于C盘根目录,分别用菜单与命令方式实现。 例:菜单方式创建(T-SQL语言选作):创建一个gz数据库,该数据库的主文件逻辑名称为gz_data,物理文件名为gz.mdf,初始大小为5mb,最大尺寸为3mb,增长速度为10%;数据库的日志文件逻辑名称为gz_log,物理文件名为gz.ldf,初始大小为3mb,最大尺寸为5mb,增长速度为2MB,文件存放在d:\。 2、修改数据库 例:将数据库dan的数据文件和日志文件分别扩展2个文件 例:修改数据文件dan_data1的空间大小为5mb

数据库原理-视图

数据库原理及应用课程计算机系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

实验报告 数据库的基本查询'

一、实验目的: 通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。 二、实验原理 数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询。 SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]... FROM<表名或视图名〉[,<表名或视图名〉]... [WHERE<条件表达式>] [GROUP BY<列名1〉[HA VING<条件表达式>]] [ORDERBY<列名2〉[ASC|DESC]] 三、实验内容和方法 实验用的数据库:用实验二建立的数据库:School 1. 投影查询 (1) 查询SC表的sno的不重复记录。 使用SQL语句:“select distinct Sno from SC”,得出结果如下图所示: (2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。 使用SQL语句:“select Sno 学号,Sname 姓名,Ssex 性别,Sdept 系名from Student”,得出结果如下图所示:

(3) 查询STUDENT表的前3条记录(top 3)。 使用SQL语句:“select top 3 * from Student”,得出结果如下图所示: 3. 选择查询 (1) 查询成绩在60-80之间的姓名、系名和成绩。 使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade>60 and Grade<80 and Student.Sno=SC.Sno”,结果如下图所示: 若使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade between 60 and 80 and Student.Sno=SC.Sno”,则结果如下图所示: (2) 查询信息系和计算机系的姓名和成绩。 使用SQL语句:“select Sname,Grade from Student,SC where Sdept='IS' and Student.Sno=SC.Sno or Sdept='CS' and Student.Sno=SC.Sno”,结果如下图所示:

数据库系统原理课程基本实验设置

目录 每个实验包括: 实验内容 实验要求 实验环境(可选) 实验背景知识(可选) 实验步骤及结果分析 实验总结

第一章概述 数据库课程的学习需要理论和实践的紧密结合,数据库实验是数据库学习的重要的环节。我们将针对数据库学习的实验环节进行实验设置和指导,包括数据库实验需要的知识、环境和内容的设置。 数据库课程的目标是: 理解和掌握数据库的理论知识。学生理解数据库系统的基本概念,掌握数据库系统的基本理论,包括数据库的特点、结构、关系数据模型、数据存储、数据查询及优化、关系数据库设计、事务管理等内容。 了解和熟悉数据库的使用和基本操作,掌握数据访问方法。在学生掌握基本的数据库概念和理论的基础上,培养学生的实践能力,学生能掌握基本的数据库的操作。 全面理解数据库系统,能进行数据库的设计,最终能完成一个完整的数据库应用系统的设计和实现。 数据库实验是为上面的目标服务,其内容的设置要和数据库的理论学习结合起来。根据课程进展和学生掌握的数据库系统知识的提高,数据库的实验分为两个大的部分。一个是和课程紧密相关的,和课程同步的实验,一是在数据库设计理论结束或在课程理论教学完成后进行的数据库系统的设计实验。 这里的实验指导将是针对和数据库的理论学习同步的课程实验。 课程实验目的:通过实验加深学生对数据库相关基本理论和概念的认识和理解,通过对SQL SERVER的操作和使用,了解一种具体的数据库管理系统,熟悉数据库的操作,提高学生数据库实践能力。 课程实验环境: 在实验中,我们选择Kingbase数据库作为基本的实验环境,操作系统可以是Windows2000/XP, 在课程实验中需要用到KingBase的管理工具企业管理器,并用ISQL语言完成实验操作。 实验方式和要求: 课程实验要求每一个学生独立完成; 学生需要理解每一次实验内容,先掌握和了解相关的理论知识,然后制定实验步骤,完成实验内容; 课程实验虽然分次完成,但其在内容上是连贯的,前一次实验的数据可能为后面的实验所用,因此每一次实验结果需要保留; 实验完后,要完成实验报告,写清楚实验内容、实验步骤和实验结果。 实验内容设置: 课程基本实验根据理论学习的内容,包括如下8组实验: 实验一数据库安装、数据库创建与维护实验; 实验二数据库表/视图的创建与维护实验; 实验三数据查询实验; 实验四数据库接口实验; 实验五数据库完整性与安全性实验; 实验六数据查询分析实验; 实验七数据库事务的创建与运行实验; 实验八数据库的备份与恢复实验;

数据库原理实验报告(2)资料

南京晓庄学院 《数据库原理与应用》课程实验报告 实验二数据库的创建、管理、备份及还原实验 所在院(系):信息工程学院 班级: 13软件工程转本1班 学号:13131151 姓名:薛伟

1.实验目的 (1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改 数据库的基本方法; (2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。 (3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方 法。 2.实验要求 (1)使用SQL Server Management Studio创建“教学管理”数据库。 (2)使用SQL Server Management Studio修改和删除“教学管理”数据库。 (3)使用Transact-SQL语句创建“教学管理”数据库。 (4)使用Transact-SQL语句修改和删除“教学管理”数据库。 (5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server Management Studio对数据库“教学管理”进行备份和还原。 (6)SQL Server 2005数据库文件的分离与附加。 (7)按要求完成实验报告 3.实验步骤、结果和总结实验步骤/结果 (1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。 利用Microsoft SQL Server Management Studio创建数据库的示例方法如下: 一、打开安装好的Microsoft SQL Server Management Studio,在对象资源管理器里找到【数 据库】--右键【新建数据库】,到下图界面: 1、在数据库名称处输入要创建数据库的名称。 2、表格中的两个路径分别为: 2.1 上为数据库存放物理地址。 2.2 下为数据库日志存放物理地址。 3、初始大小图片中显示的为默认的值,可以根据自己的需求进行修改大小,要修改大小【点击大小值表格】会出现编辑状态文本框。

实验三数据库简单操作

重庆理工大学数据库精品课程教辅材料 实验报告册 课程:数据库系统概论 班级: 学号: 姓名: 重庆理工大学 计算机科学与工程学院 2016年3月

实验三 一实验目的 利用查询分析器用SQL语言定义基本表、索引并进行相关操作。 二实验软件平台 SqlServer 三实验内容 (一)利用查询分析器在表中插入数据 打开在实验一中建立的“学生课程”数据库,利用SQL语句在“SCDB”数据库中的student、course、sc表中插入数据; student表的内容: SNO SNAME SSEX SAGE SDEPT 95001李勇男20CS 95002刘晨女19IS 95003王敏女18MA 95004 张立男19 IS 95005 陈锋男21 CS course表的内容 CNO CNAME CPNO CREDIT 1数据库54 2数学NULL 2 3信息系统14 4操作系统 6 3 5数据结构7 4 6 数据处理NULL 2 7 PASCAL语言 6 4 sc表的内容 SNO CNO GRADE 95001192 95001265 95001388 95002290 95002380 95003 3 93

95003 4 85 95003 5 95 (二)修改表中的数据 在插入数据后的三张表student、course、sc中进行相关的更新操作: 1、将student表中‘李勇’的名字改为‘李明’; 2、将student表中‘王敏’的年龄改为20岁; 3、将所有学生的年龄增加1岁; 4、修改学生的学号‘95002’为‘95007’,注意会有什么情况发生?为什么? update s set sno='95007' where sno='95002' 与约束条件冲突,因为sno是主键,在sc表中被关联。改动主键会报错。 5、把选修了“2”号课程,且成绩低于70分的成绩提高5%; update sc2 set grade=grade*(1+0.05) where grade<70 and cno= 2 6、将“CS”系全体学生的成绩置零; update sc2 set grade= 0 where'cs'= (select sdept from s where s.sno=sc2.sno) (三)删除表中的数据 1、把选修了“2”号课程,且成绩低于70分的学生的选课记录删除掉; delete from sc2 where cno='2'and grade< 70 2、删除学号为“95003”的学生信息,注意会有什么情况发生?为什么? delete from s where sno='95003' 无法完成删除。因为snow是主键。 3、删除"IS"系选修了"2"号课程的选课记录; delete from sc2 where cno='2'and 'IS'=(select sdept from s where s.sno=sc2.sno)

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