您的当前位置:首页正文

数据库系统原理实验一参考答案

来源:九壹网
韩山师范学院实验报告

姓名:

专业:

班级: 实验日期:

学号:

科目:数据库系统原理

实验题目:实验1 SQL SERVER 的安装及使用,数据库的建立

【实验目的】 安装并熟悉SQL SERVER 2008 环境,通过实验达到能熟练使用“管理器”及“命令窗口”两种方法,建立数据库及数据库表(表结构和表内容)。重点注意数据类型及完整性约束(要求作验证)。 使用的SQL命令:CREATE DATABASE,USE,CREATE TABLE,INSERT等。 【实验内容】 1、课本第一章的例题(学生数据库(Students_Mis_2018):4个数据表) (1)建立数据库(CREATE DATABASE):Students_Mis_2018(存储文件存放在自己建立的文件夹内) (2)调用(USE)数据库:Students_Mis_2018 (3)分别建立4个数据表的表结构(CREATE TABLE):系(Depts),学生(Students),课程(Courses),选课(Reports) (4)插入表数据(INSERT) (5)数据类型及完整性约束验证(难点是主外键约束) 回答以下几个问题: (A)若先建立学生(Students)表,后建立系(Depts)表,行吗?为什么? (B)若先建立选课(Reports)表,后建立课程(Courses)表,行吗?为什么? (C)对INSERT,自己举几个违反约束条件(数据类型、主键约束、非空约束、外键约束、CHECK约束)的例子,并说明理由。 (6)分离数据库、复制数据库存储文件、附加数据库 (7)将调试好的正确命令代码及数据库存储文件保存到自己的备份盘(方便下次实验使用) 2、课本中的习题1.3(零件供应数据库(SPJ_Mis__2018):4个数据表) (说明:要求同上,各表模拟数据可参照课本P110) 【实验过程】 1、 (1)建立数据库(CREATE DATABASE):Students_Mis_2018 USE master GO CREATE DATABASE Students_Mis_2018 ON ( NAME=Students_Data, 第 1 页 共 13 页

韩山师范学院实验报告

FILENAME='E:\\ SQL_DATEBASE\\Students_Mis_data.mdf', SIZE=10, MAXSIZE=50, FILEGROWTH=5 ) LOG ON ( NAME='Students_Log', FILENAME='E:\\ SQL_DATEBASE \\Students_Mis_log.ldf', SIZE=5MB, MAXSIZE=25MB, FILEGROWTH=5MB ) GO (2)调用(USE)数据库:Students_Mis_2018 use Students_Mis_2018 GO (3)分别建立4个数据表的表结构(CREATE TABLE):系(Depts),学生(Students),课程(Courses),选课(Reports) CREATE TABLE Depts ( Dno CHAR(5) PRIMARY KEY, Dname CHAR(20) NOT NULL ) GO 第 2 页 共 13 页

韩山师范学院实验报告

CREATE TABLE Students ( Sno CHAR(5) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage INT, Dno CHAR(5), CONSTRAINT FK_Dno FOREIGN KEY(Dno) REFERENCES Depts ) GO CREATE TABLE Courses ( Cno CHAR(6) PRIMARY KEY, Cname CHAR(20), Pre_Cno CHAR(6), Credits INT ) GO 第 3 页 共 13 页

韩山师范学院实验报告

CREATE TABLE Reports ( Sno CHAR(5), Cno CHAR(6), Grade INT CHECK(Grade>=0 AND Grade<=100), PRIMARY KEY(Sno,Cno), CONSTRAINT Student_Report FOREIGN KEY(Sno) REFERENCES Students, CONSTRAINT Report_Course FOREIGN KEY(Cno) REFERENCES Courses ) GO (4)分别对4个表插入表数据(INSERT) INSERT INTO depts VALUES ('D01','自动化') INSERT INTO depts VALUES ('D02','计算机') INSERT 第 4 页 共 13 页

韩山师范学院实验报告

INTO depts VALUES ('D03','数学') INSERT INTO depts VALUES ('D04','通信') INSERT INTO depts VALUES ('D05','电子') INSERT INTO depts VALUES ('D06','化学') SELECT * FROM Depts INSERT INTO Students VALUES ('S01','王建平','男',21,'D01') INSERT INTO Students VALUES ('S02','刘华','女',19,'D01') INSERT INTO Students VALUES ('S03','范林军','女',18,'D02') INSERT INTO Students VALUES ('S04','李伟','男',19,'D03') INSERT INTO Students VALUES ('S05','黄河','男',18,'D03') INSERT INTO Students VALUES ('S06','长江','男',20,'D03') SELECT * FROM Students 第 5 页 共 13 页

韩山师范学院实验报告

INSERT INTO Courses VALUES ('C01','英语','',4) INSERT INTO Courses VALUES ('C02','数据结构','C05',2) INSERT INTO Courses VALUES ('C03','数据库','C02',2) INSERT INTO Courses VALUES ('C04','DB-设计','C03',3) INSERT INTO Courses VALUES ('C05','C++','',3) INSERT INTO Courses VALUES ('C06','网络原理','C07',3) INSERT INTO Courses VALUES ('C07','操作系统','C05',3) SELECT * FROM Courses INSERT INTO Reports VALUES ('S01','C01','92') INSERT INTO Reports 第 6 页 共 13 页

韩山师范学院实验报告

VALUES ('S01','C03','84') INSERT INTO Reports VALUES ('S02','C01','90') INSERT INTO Reports VALUES ('S02','C02','94') INSERT INTO Reports VALUES ('S02','C03','82') INSERT INTO Reports VALUES ('S03','C01','72') INSERT INTO Reports VALUES ('S03','C02','89') INSERT INTO Reports VALUES ('S04','C03','75') SELECT * FROM Reports (5)数据类型及完整性约束验证: (A)若先建立学生(Students)表,后建立系(Depts)表,行吗?为什么? 答:不行,对Students的Dno作外键约束,必须引用到Depts表的主键Dno。必须先建立系(Depts)表,后才能建立学生(Students)表。 (B)若先建立选课(Reports)表,后建立课程(Courses)表,行吗?为什么? 答:不行,Reports的Cno作外键约束外键,必须引用到Courses表的主键Cno,应该先建课程表,然后再才能对表Report的Cno作外键约束。 (C)对INSERT,自己举几个违反约束条件(数据类型、主键约束、非空约束、外键约束、CHECK第 7 页 共 13 页

韩山师范学院实验报告

约束)的例子,并说明理由。 ①数据类型 INSERT INTO Student(Sno,Sname,Ssex,Sage,Dno) VALUES('S11', '张三,'男','二十','D01') Sage的数据类型是INT, INSERT 失败 ②主键不能为空或重复: INSERT INTO depts VALUES (NULL,'自动化') INSERT 失败,主键Dno不能为空。 INSERT INTO depts VALUES ('D03','数学'),('D03','历史') INSERT 失败,主键Dno不能重复。 ③非空约束 如执行以下命令会违反非空约束。因为Sname 属性是非空的。 INSERT INTO Student(Sno,Ssex,Sage,Dno) VALUES('S01','男','21','D01') 不能将值 NULL 插入列 'Sname',因为Sname 属性是非空约束。INSERT 失败。 ④外键约束 INSERT INTO Student(Sno,Sname,Ssex,Sage,Dno) VALUES('S07', '李四','男',20,'D11') Student外键Dno受Depts的主键Dno的约束,Depts中的Dno没有’D11’,不能在Student表插入’D11’ ⑤CHECK约束 INSERT INTO Reports VALUES ('S01','C02',120') 不能将值 120 插入列 'Grade'违反CHECK(Grade>=0 AND Grade<=100), INSERT 失败 上例中的第一行代码的主键值为空,第二行代码的主键值重复,故插入操作失败。 (6)分离数据库、复制数据库存储文件、附加数据库 (7)将调试好的正确命令代码及数据库存储文件保存到自己的备份盘(方便下次实验使用) 2、课本中的习题1.3(零件供应数据库(SPJ_Mis__2018):4个数据表) (1)建立零件供应数据库(SPJ_Mis__2018) USE master GO CREATE DATABASE SPJ_Mis_2018 ON ( 第 8 页 共 13 页

韩山师范学院实验报告

NAME=student_Data, FILENAME='E:\\SQL_DATABASE\\SPJ_Mis_data.mdf', SIZE=10, MAXSIZE=50, FILEGROWTH=5) LOG ON (NAME='student_Log', FILENAME='E:\\ SQL_DATABASE \\SPJ_Mis_log.ldf', SIZE=5MB, MAXSIZE=25MB, FILEGROWTH=5MB ) GO (2)调用数据库 use SPJ_Mis_2018 GO (3)分别建立4个数据表的表结构 CREATE TABLE S ( Sno CHAR(5) PRIMARY KEY, Sname CHAR(20) NOT NULL , Status INT, SCity CHAR(20) ) GO CREATE TABLE P ( Pno CHAR(6) PRIMARY KEY, Pname CHAR(20) , 第 9 页 共 13 页

韩山师范学院实验报告

Color CHAR(9), Weight FLOAT ) GO CREATE TABLE J ( Jno CHAR(5) PRIMARY KEY, Jname CHAR(20) , JCity CHAR(20) ) GO CREATE TABLE SPJ ( Sno CHAR(5), Pno CHAR(6), Jno CHAR(5), QTY INT CHECK(QTY>=0), PRIMARY KEY(Sno,Pno,Jno), CONSTRAINT S_SPJ FOREIGN KEY(Sno) REFERENCES S, CONSTRAINT P_SPJ FOREIGN KEY(Pno) REFERENCES P, CONSTRAINT J_SPJ FOREIGN KEY(Jno) REFERENCES J ) GO 第 10 页 共 13 页

韩山师范学院实验报告

(4)插入数据 INSERT INTO S VALUES('S1','利群',30,'广州'), ('S2','同方',20,'杭州'), ('S3','天远',60,'北京'), ('S4','精诚',10,'上海'), ('S5','华缘',80,'重庆'), ('S6','弘治',50,'太原') SELECT * FROM S INSERT INTO P VALUES('P1','钉子','绿',34), ('P2','螺丝','蓝',25), ('P3','螺母','橙',12), ('P4','螺栓','紫',27), ('P5','螺钉','红',53), ('P6','齿轮','绿',17), ('P7','传送带','红',28) SELECT * FROM P 第 11 页 共 13 页

韩山师范学院实验报告

INSERT INTO J VALUES('J1','一建','济南'), ('J2','三汽','广州'), ('J3','拉链厂','杭州'), ('J4','无线电厂','北京'), ('J5','机床厂','上海'), ('J6','螺钉厂','重庆'), ('J7','机械厂','天津') SELECT * FROM J INSERT INTO SPJ VALUES('S1','P1','j3',340), ('S1','P1','j2',250), ('S1','P2','j5',120), ('S1','P2','j6',270), ('S1','P2','j7',530) INSERT INTO SPJ VALUES('S2','P2','j1',170), ('S2','P3','j2',280), ('S2','P4','j3',100), ('S2','P4','j4',120), ('S2','P5','j7',310), ('S2','P5','j5',560), ('S2','P6','j6',200) INSERT INTO SPJ 第 12 页 共 13 页

韩山师范学院实验报告

VALUES('S3','P7','j1',300), ('S3','P1','j1',400), ('S4','P3','j2',410), ('S4','P4','j3',330), ('S4','P4','j4',650), ('S4','P5','j4',150) INSERT INTO SPJ VALUES('S5','P7','j5',230), ('S5','P7','j7',280), ('S6','P2','j2',350), ('S6','P2','j3',420), ('S6','P6','j1',310) SELECT * FROM SPJ 【实验结果及分析】 【教师评语和成绩】 成绩: 指导教师: 日期:

第 13 页 共 13 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top