数据库技术实验指导书1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库技术实验指导书(计算机通信工程学院)二OO八年四月实验1创建数据库和创建表一.实验目的:掌握创建数据库和定义表结构的方法。二.实验平台:MicrosoftSQL_Server2000的查询分析器三.实验内容:根据教材§3.3的内容,用SQL语言完成下列操作。1.创建一个教学数据库,数据库的名称为MIS;2.创建MIS数据库中的5个关系模式,要求包含完整性约束的定义。系(系编号,系名称)教工(教工号,姓名,性别,职称,工资,系编号)学生(学号,姓名,性别,出生年月,专业,家庭地址,系编号)课程(课程编号,课程名称,学时,系编号)成绩(学号,课程编号,分数)四.SQL语句的参考脚本:在SQLServer中使用批处理和脚本两个术语。批处理是一个以“go”结束的SQL语句集,这些语句是作为一批执行并一起提交的。“go”是SQLServer2000批处理的结束标志,不是SQL语句。createdatabase语句将创建一个数据库,在使用这个数据库时,还需要打开这个数据库,打开语句是use。下面这段SQL脚本程序存储在光盘的实验脚本子目录下,可以在查询分析器中打开这个文件,也可以直接将下面这段SQL脚本复制(粘贴)到查询分析器的编辑窗口。为了简化中文输入的烦琐操作过程,在实验脚本子目录下,还有一个全英文的脚本文件。/*注释:实验一中文脚本.sql创建数据库*/createdatabaseMISgo/*打开数据库*/useMIS/*创建5个表*/createtable系(系编号smallintnotnull,系名称char(12),primarykey(系编号))gocreatetable课程(课程编号char(8)notnull,课程名称char(16),学时smallint,系编号smallint,primarykey(课程编号),foreignkey(系编号)references系(系编号))gocreatetable教工(教工号smallint,姓名char(8),性别char(2),职称char(10),工资numeric(8,2),系编号smallint,primarykey(教工号),foreignkey(系编号)references系(系编号))gocreatetable学生(学号char(6),姓名char(8),性别char(2),出生年月datetime,系编号smallint,primarykey(学号),foreignkey(系编号)references系(系编号))gocreatetable成绩(学号char(6)notnull,课程编号char(8)notnull,分数numeric(4,1),primarykey(学号,课程编号),foreignkey(学号)references学生(学号),foreignkey(课程编号)references课程(课程编号))go五.实验过程1.进入查询分析器,参见进入查询分析器演示。2.在查询分析器的命令编辑窗口输入SQL语句,点击执行键,将执行SQL语句。参见执行SQL语句的演示。3.在调试程序过程中,可以用鼠标选择某些要执行的SQL语句,再点击执行键,执行选择的语句。参见执行SQL语句的演示。4.注意:当多个SQL语句执行时,可能出现的逻辑错误,即就单个语句来说,语句没有错误,但多条语句顺序执行时可能出错。例如,上述5个表创建的顺序必须是“先父后子”,而删除的顺序则是“先子后父”。DROPTABLE成绩DROPTABLE学生DROPTABLE教工DROPTABLE课程DROPTABLE系5.保存调试通过的SQL程序。实验2数据库的基本操作一.实验目的:掌握数据的插入、删除、修改、复制等方法。二.实验平台:MicrosoftSQL_Server2000的查询分析器三.实验内容:根据教材§3.4的内容,用SQL语言完成下列操作。已创建的MIS数据库的5个表中,插入如下样本数据。系系编号系名称101数学102计算机103外语104经济教工教工号姓名性别职称工资系编号2101葛小平女教授3420.001012203李长江男副教授3190.001022405姜立伟男副教授3140.001042104张丽丽女讲师2243.001012302康立华女教授3740.001032205王伟平男讲师2130.00102课程课程号课程名学时系编号C101数学68101C102英语85103C103计算机102102C104经济学51104成绩学号课程编号分数991022C10188991022C10267992124C10177992124C10295992124C10345994021C10487学生学号姓名性别出生年月系编号族别991022田平平女08/05/1980101汉992124郭黎明男03/04/1981102汉994021何明慧女04/12/1982104回991223姜明明男12/05/1980101苗993012何漓江男10/05/1979103汉992104康纪平女03/04/1981102汉994125康嘉家男07/05/1980104汉2.用SQL语言完成下列操作(1)在系表中插入一行数据{105,’管理’}。(2)向教工表中插入一行数据{2001,’葛小平’,’女’,’教授’,3420.00,102}。(3)向教工表中插入一个教工号、姓名和工资,数据是{2109,’田新民’,2650}。(4)将教工表的姓名和工资拷贝到一个酬金表中。(5)将教工表中职称为“教授”的工资增加15%。(6)将教工表中职称不是教授的人,工资增加10%。(7)从教工表中删除教工号为2001的教工。(8)删除酬金表的所有数据。(9)删除酬金表。(10)在系表中添加一个电话号码属性,属性类型为CHAR(8)。ALTERTABLE系ADD电话号码CHAR(8)(11)修改系表中电话号码属性的宽度为CHAR(13)。ALTERTABLE系ALTERCOLUMN电话号码CHAR(13)(12)删除系表中电话号码属性。ALTERTABLE系DROPCOLUMN电话号码(13)在学生表中删除何漓江同学的信息,包括他选课的信息。提示:先删除子表中的选课信息,再删除主表中的信息。思考:为什么必须这样做?四.SQL语句的参考脚本:1.在5个表中插入数据(光盘\实验脚本\在5个表中插入数据实验脚本.sql)insertinto系values(101,'数学')insertinto系values(102,'计算机')insertinto系values(103,'外语')insertinto系values(104,'经济')goinsertinto课程values('c101','数学',68,101)insertinto课程values('c102','英语',85,103)insertinto课程values('c103','计算机',102,102)insertinto课程values('c104','经济学',51,104)goinsertinto教工values('2101','葛小平','女','教授',3420.00,101)insertinto教工values('2203','李长江','男','副教授',3190.00,102)insertinto教工values('2405','姜立伟','男','副教授',3140.00,104)insertinto教工values('2104','张丽丽','女','讲师',2243.00,101)insertinto教工values('2302','康立华','女','教授',3740.00,103)insertinto教工values('2205','王伟平','男','讲师',2130.00,102)goinsertinto学生values('991022','田平平','女','08/05/1980',101)insertinto学生values('992124','郭黎明','男','03/04/1981',102)insertinto学生values('994021','何明慧','女','04/12/1982',104)insertinto学生values('991223','姜明明','男','12/05/1980',101)insertinto学生values('993012','何漓江','男','10/05/1979',103)insertinto学生values('992104','康纪平','女','03/04/1981',102)insertinto学生values('994125','康嘉家','男','07/05/1980',104)insertinto学生values('991134','包立琪','女','03/14/1981',101)insertinto学生values('994115','王海洋','男','04/13/1982',104)insertinto学生values('991354','王立平','女','12/05/1981',101)goinsertinto成绩values('991022','c101',88)insertinto成绩values('991022','c102',67)insertinto成绩values('992124','c101',77)insertinto成绩values('992124','c102',95)insertinto成绩values('992124','c103',45)insertinto成绩values('994021','c104',87)insertinto成绩values('994021','c102',78)insertinto成绩values('994021','c103',67)insertinto成绩values('991223','c101',66)insertinto成绩values('991223','c102',89)insertinto成绩values('993012','c102',93)insertinto成绩values('993012','c103',84)2.完成实验操作的SQL语言(光盘\实验脚本\数据库基本操作实验脚本.sql)--(1)在系表中插入一行数据{105,’管理’}。insertinto系values(105,'管理')--(2)向教工表中插入一行数据{2001,’葛小平’,’女’,’教授’,3420.00,102}。insertinto教工values(2001,'葛小平','女','教授',3420.00,102)--(3)向教工表中插入一个教工号、姓名和工资,数据是{2109,’田新民’,2650}。insertinto教工(教工号,姓名,工资)values(2109,'田新民',2650)--(4)将教工表的姓名和工资拷贝到一个酬金表中。--创建一个酬金表。createtable酬金(教工姓名char(8),工资numeric(8,2))--将教工表中姓名和工资两列数据拷贝到酬金表中。insertinto酬金(教工姓名,工资)select姓名,工资from教工--(5)将教工表中职称为“教授”的工资增加15%。update教工set工资=工资*1.15where职称='教授'--(6)将教工表中职称不是教授的人,工资增加10%。update教工set工资=工资*1.1where职称NOTLIKE'教授'--(7)从教工表中删除教工号为2101的教工。deletefrom教工where教工号='2101'--(8)删除酬金表的所有数据。deletefrom酬金--(9)删除酬金表。droptable酬金--(10)在系表中添加一个电话号码属性,属性类型为char(8)。altertable系add电话号码char(8)--(11)修改系表中电话号码属性的宽度为char(13)。a

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功