《数据库原理及应用实验指导书》由会员分享,可在线阅读,更多相关《数据库原理及应用实验指导书(26页珍藏版)》请在金锄头文库上搜索。
1、数据库原理及应用编撰闽江学院计算机实验教学中心印制二零零五年 九 月实验一 表的创建与修改【实验目的】1. 学会使用企业管理器创建和修改表结构 2. 学会使用查询分析器 3. 学会使用SQL语句创建和修改表结构【实验内容】1. 使用企业管理器建立和修改班级表、成绩表 2. 使用查询分析器建立和修改课程表、学生表【实验准备】1. 复习与本次实验内容相关知识2. 对本次实验中要求自己完成的部分做好准备 【实验步骤】1. 用企业管理器建立学生表 o 启动企业管理器(使用上次实验建立的帐号注册连接服务器) o 展开服务器(下图中(LOCAL)-展开数据库-展开自己学号所对应的数据库(下图中的51022
2、01101在实验中应为你的学号)。 o 在表上右击,在快捷菜单中单击新建表.,如下图所示 oo 在表结构窗口内建立如下图所示的班级表(ID含义为班号,NAME含义为班名,DEPARTMENT含义为所在 系,各字段类型及是否允许为空按图中设置),如下图所示,左侧三角形标志为当前列,下方的列属性即为该列的。 oo 在第一行上右击,在弹出的快捷菜单中单击设置主键,如下图所示, 则ID字段被设置为主键,在ID列属性中将标识改为:是,则ID字段在新增行时,从标识种子(当前为1)开始,逐行以标识递增量(当前为1)自动递增(即此列在新增行时不用输入数据而自动生成)。 oo 要插入和删除列,请使用类似方法-在
3、快捷菜单中使用插入列(M)和删除列(D)。 o 并在工具栏上单击保存图标,在弹出的保存对话框中输入U_CLASSES,单击确定,然后关闭表结构设计窗口 o 依照上面设计学生表的步骤,设计如下图所示的成绩表(STUDENT_ID含义为学号,COURSE_ID含义为课程号,SCORE为成绩,各字段类型 和是否允许为空,按图中设置),表名保存为U_SCORES(注意设置主键时,先按住Shift,分别单击第一、第二行 左侧-选中这两行,再右击,在快捷菜单单击中设置主键-该操作可设置和取消主键)。 oo 关闭表设计窗口。 2. 用企业管理器修改表 o 如果要修改表,请展开你的数据库,单击其下的表 o 在
4、右边的窗格中,找到要修改的表,在其上右击 o 在弹出的快捷菜单中,单击设计表(S)则打找开表设计窗口进行修改,具体如下图所示 o3. 用SQL语句建立班级表、课程表 o 依照启动企业管理器的方法,启动查询分析器,在连接到SQL Server对话框中,设置SQL Server(S)为local,选择SQL Server身份验证,在登录名中输入你的学号,密码中输入你的密码,单击确定。 oo 启动查询分析器后,注意右上角当前数据库处是否为你的数据库(如果不是,说明登录的名称有问题,或该登录的默认数据库设置不正确).若不是请重新选择.按照下图输入SQL语句(蓝色和黑色部分,其中第一条为建表语句,第二条
5、为设置主键的语句)建立课程表(U_COURSES)(其中ID表示课程编号,该字段自动 递增,COURSE为课程名称),单击分析查询(按钮)按钮,检查语句的正确性。如果检查正确,单击分析查询按钮的右边的执行按钮(右向的三角形按钮)执行(或按F5). oo 右击左侧数据库图标,在快捷菜单击刷新.展开数据库(你的学号),再展开用户表,查看是否已存在班级表(U_COURSES),如下图所示。 oo 依照上述方法输入SQL语句(技巧:在查询命令窗口内,要执行的命令可先选中,再执行,则未选中的语句不会执行)建立学生表(U_STUDENTS),表结构如下: 序号字段类型(长度)主键含义1IDchar(10)
6、是学号2NAMEvarchar(16)姓名3CLASS_IDtinyint所在班级编号4. 用SQL语句修改表结构 o 用SQL语句,给课程表添加一个学时字段(字段名:period,类型:tinyint)。 ALTER TABLE dbo.U_COURSES ADD period tinyint o 用SQL语句,给课程表添加一个学分字段(字段名:CREDIT,类型:tinyint)。 请参照上面SQL命令自行进行 o 用SQL语句,删除课程表学时字段(字段名:period)。 ALTER TABLE dbo.U_COURSES DROP COLUMN period o 用SQL语句,修改成绩
7、表,使SCORE字段类型为tinyint。 ALTER TABLE dbo.U_SCORES ALTER COLUMN SCORE tinyint 5. 用企业管理器检查各表,如果和上面要求的相同,则你的实验就完成了实验2 数据库的更新实验一 实验目的本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。二 相关知识SQL Server提供了很多方法更新表中数据。以插入记录为例,可以使用INSERT语句、VALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLE DB、ODBC和DB-Library)中的函
8、数进行数据插入等。本实验主要掌握INSERT、UPDATE和DELETE语句的基本用法。1 插入操作,其语句的一般格式为INSERTINTO table_or_view (colum_list)VALUES (date_values);此语句是使date_values作为一行数据记录插入已命名的表或视图table_or_view中。Column_list是由逗号分隔的table_or_view的列名列表,用来指定为其提供数据的列。如果没有指定column_list,表或视图中的所有列都将接收数据。如果column_list没有为表或视图中的所有列命名,将在列表中没有命名的任何列中插入一个NUL
9、L值(或者在默认情况下为这些列定义的默认值)。在列的列表中没有指定的所有列都必须允许NULL值或者指定的默认值。否则SQL Server将返回一个错误。2 修改操作语句的一般格式为UPDATE 表名SET =,=where ;其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句用于指定修改方法,即用的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。3 删除语句的一般格式为DELETE FROM WHERE ;其功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示要删除表中的所有元组,但表的定义仍在字典中。三 实验内容1 通过
10、企业管理器,在学生选课数据库的学生、课程和选课3个表中各输入10条记录。要求记录不仅满足数据约束要求,还要有表间关联的记录。2 具体完成以下例题。将它们转换为SQL语句表示,在学生选课库中实现其数据更新操作。例1 将一新学生记录(学号:95050;姓名:陈冬;性别:男;年龄:18;所在系:计算机科学系)插入学生表中。例2 插入一条选课记录(95020,C1)。例3 对每一个系,求学生的平均年龄,并把结果存入数据库。对于这道题,首先要在数据库中建立一个有两个属性列的新表,其中一列存放系名,另一列存放相应系的学生平均年龄。 CREATE TABLE Deptage(所在系 CHAR(20),平均年
11、龄SMALLINT); 然后对数据库的学生表按所在系分组求平均年龄,再把所在系和平均年龄存入新表中。例4 将学生95001的年龄改为22岁。例5 将所有学生的年龄增加一岁。 例6 将计算机科学系全体学生的成绩置零。例7 删除学号为95006的学生记录例8 删除所有的学生选课记录例9 删除计算机科学系所有学生的选课记录四 实验步骤 将查询需求用SQL语言表示;在SQL Server查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进
12、行修改,直到正确为止。 实验3 数据库查询实验一 实验目的本实验的目的是使学生掌握SQL Server查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。二 实验内容1 简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表等。具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数据查询操作。1 求数学系学生的学号和姓名2 求选修了课程的学生学号3 求选修课程号为C1的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。4 求选修课程号为C1且成绩在8090之间的学生学
13、号和成绩,并成绩乘以0.8输出。5 求数学系或计算机系姓张的学生的信息。6 求缺少了成绩的学生的学号和课程号2 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。7 查询每个学生的情况以及他所选修的课程8 求学生的学号、姓名、选修的课程及成绩9 求选修课程号为C1且成绩在90以上的学生学号、姓名和成绩10 查询每一门课程的间接先行课(即先行课的先行课)3 .嵌套查询操作。实验的主要内容是:在SQL Server查询分析器中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。具体完成以下例题。将它们用SQL语句表示,在学
14、生选课中实现其数据嵌套查询操作。例1 求选修了高等数学的学号和姓名例2 求C1课程的成绩高于刘晨的学生学号和成绩例3 求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)例4 求其他系中比计算机系学生年龄都小的学生例5 求选修了C2课程的学生姓名例6 求没有选修C2课程的学生姓名例7 查询选修了全部课程的学生姓名例8 求至少选修了学号为“95002”的学生所选修全部课程的学生学号和姓名4分组、统计、计算和集合的操作1) 分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。2) 使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。3) 集合查询实验。该实验并操作UNION、交操作INTERSECT和差操作MINUS的实现方法。具体完成以下例题,将它们用SQL语句表示,在学生选课中实现其数据查询操作。例1 求学生的总人数例2 求选修了课程的学生人数例3 求课程和选修了该课程的学生人数例4 求选修超过3门课的学生学号例5 查询计算机科学系的学生及年龄不大于19岁的学生例6 查询计算机科学系的学生与年龄不大于19岁的学生的交集例7 查询计算机科学系的学生与年龄不大于19岁的学生的差集例8 查询选修课程C1