数据库系统实验报告学院计算机学院专业计算机科学与技术班级级班学号姓名指导教师(2016 年12 月)实验__一__题目数据库及基本表的建立实验__二__题目查询数据库_实验__三__题目创建和使用视图、索引、存储过程实验__四_题目小型数据库规划设计实验平台:SQL Sever 2005实验题目实验一数据库及基本表的建立一、实验目的1、掌握SQL SERVER的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作;二、实验内容和要求1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库;2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/xp;2.数据库管理系统:SQL sever 2000/2003/2005;四、实验方法、步骤及结果测试创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。
创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。
1、创建数据库:确定数据库名称;数据库用于学生管理,命名为SC确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。
确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。
确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。
(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库;利用查询分析器,使用SQL语句方式创建方式将下面各表建立到教学管理数据库中。
字段名代码类型约束学号s_no char(8) 主键姓名sname char(8) 非空性别sex char(2)出生日期sbirthday Smalldatetime学生所在院系编号dno char(6) 外键专业代码spno char(8) 外键班级编码class_no char(4)字段名代码类型约束课程编号cno char(10) 主键课程名称cname char(20) 非空专业代码spno char(8) 外键课程类型编号ctno tinyint理论学时lecture tinyint实验学时experiment tinyint开课学期semester tinyint课程学分credit tinyint字段名代码类型约束学号s_no char(8) 主键,与student表中s_no 外键关联,级联删除上课编号tcid smallint 主键学生成绩score tinyint字段名代码类型约束教师编号t_no char(8) 主键教师姓名t_name char(8) 非空(8)创建班级表(class)class_3114006159spno class_no headercourse_3114006159deparment_3114006159dno dept_nam headerspeciality_3114006159spno dno spnam student_3114006159student_course_3114006159teacher_3114006159teacher_course_3114006159SQL语句USE SC_3114006159GOCREATE TABLE student_3114006159 (s_no char(8)PRIMARY KEY,sname char(8)NOT NULL,sex char(2),sbirthday smalldatetime,dno char(6),spno char(8),class_no char(4));CREATE TABLE course_3114006159 (cno char(10)PRIMARY KEY,cname char(20)NOT NULL,spno char(8),ctno tinyint,lecture tinyint,experiment tinyint,semester tinyint,credit tinyint);CREATE TABLEstudent_course_3114006159(s_no char(8),tcid smallint,score tinyint,PRIMARY KEY(s_no,tcid));CREATE TABLE teacher_3114006159 (t_no char(8)PRIMARY KEY,t_name char(8)NOT NULL,t_sex char(2),t_birthday smalldatetime,dno char(6),tech_title char(10));CREATE TABLEdeparment_3114006159(dno char(6)PRIMARY KEY,dept_name char(20)NOT NULL,header char(8)); 查询分析器执行情况:SQL语句及执行结果截图显示ADD FOREIGN KEY(dno)REFERENCESdeparment_3114006159 (dno);ALTER TABLEteacher_course_3114006159ADD FOREIGN KEY(t_no)REFERENCESteacher_3114006159(t_no);ALTER TABLEteacher_course_3114006159ADD FOREIGN KEY(spno)REFERENCESspeciality_3114006159(spno);ALTER TABLEteacher_course_3114006159ADD FOREIGN KEY(cno)REFERENCEScourse_3114006159(cno);ALTER TABLE class_3114006159ADD FOREIGN KEY(spno)REFERENCESspeciality_3114006159(spno);5、利用查询分析器修改上述各表。
(1)、用INSERT语句向各个表中插入数据录入5 条记录。
录入时注意体会外键约束。
实验结果截图显示(插入数据的表格)查询分析器执行情况:SQL语句及执行结果显示insert into deparment_3114006159values('659801','计算机','周杰伦');insert into deparment_3114006159values('659802','机电','陈奕迅');insert into deparment_3114006159values('659803','外国语','章子怡');insert into deparment_3114006159values('659804','土木','梁朝伟');insert into deparment_3114006159values('659805','环境','张国荣');insert into teacher_3114006159values('65980101','刘德华','男','1975-03-25','659801','高级');insert into teacher_3114006159values('65980201','周润发','男','1964-09-24','659802','高级');insert into teacher_3114006159 values('65980301','张学友','男','1956-06-15','659803','高级');insert into teacher_3114006159 values('65980401','张曼玉','女','1965-04-21','659804','高级');insert into teacher_3114006159 values('65980501','陈坤','男','1988-03-02','659805','高级');insert into speciality_3114006159 values('65980110','659801','计算机科学与技术');insert into speciality_3114006159 values('65980210','659802','自动化'); insert into speciality_3114006159 values('65980310','659803','商务英语'); insert into speciality_3114006159 values('65980410','659804','土木工程'); insert into speciality_3114006159 values('65980510','659805','环境工程');insert into class_3114006159values('65980110','1401','刘德华'); insert into class_3114006159values('65980210','1402','周润发'); insert into class_3114006159values('65980310','1403','张学友'); insert into class_3114006159values('65980410','1404','张曼玉'); insert into class_3114006159values('65980510','1405','陈坤');insert into course_3114006159values('6598011001','数据库','65980110',1,48,12,1,2);insert into course_3114006159values('6598021001','制图','65980210',2,56,6,2,2);values('31140005','郭敬明','男','1995-12-03','659805','65980510','1405');insert into student_course_3114006159values('31140001',1,96);insert into student_course_3114006159values('31140002',3,67);insert into student_course_3114006159values('31140003',2,91);insert into student_course_3114006159values('31140004',4,89);insert into student_course_3114006159values('31140005',5,96);(2)、用UPDATE语句更改student表中数据;实现代码:use SC_3114006159update student_3114006159set sname='村上春树'student表更改前的内容截图显示查询分析student表更改后的内容截图显示实现代码:use SC_3114006159deletewhere s_no in(select s_nofrom student_3114006159where sname='郭敬明');deletefrom student_3114006159student表更改前的内容截图显示查询分析student表更改后的内容截图显示五、实验中出现的问题及解决方案在插入数据时没注意外键约束,结果导致插入失败,于是根据数据表关系图先插入没有外键约束的表,再根据外键约束关系按照一定顺序插入表。