数据库系统概论实验指南:SQL查询与数据库管理

版权申诉
0 下载量 13 浏览量 更新于2024-06-25 收藏 426KB DOC 举报
"数据库系统概论实验指导书.doc" 在《数据库系统概论》的实验指导书中,涵盖了四个关键实验,旨在帮助学生深入理解和实践数据库管理的基础知识。实验一重点在于数据库服务器的连接与数据库的创建,包括理解身份验证模式、熟悉数据库样例,并通过界面操作建立数据库和表。实验中,学生需要了解数据模型、数据库的三级模式结构以及DBMS的功能,同时掌握如何在不同环境下操作数据库,如向表中插入记录。 实验二侧重于SQL查询,特别是简单的查询和多表查询。实验目标包括掌握INSERT、DELETE、UPDATE语句的使用,以及SELECT语句的高级应用,如使用WHERE子句、IN、NOT IN、BETWEEN、LIKE、ORDER BY、GROUP BY子句进行条件查询、模糊查询、排序和分组。此外,学生还需要学习如何运用SQL Server的统计函数进行计算。 实验三涉及视图、索引、存储过程和触发器的运用,这些都是数据库管理和优化的重要工具。通过实验,学生应能理解这些概念的含义,以及它们在实际数据库操作中的作用。 实验四则关注E-R模型与关系模型之间的转换,这是数据库设计的基础。学生需要学习如何将实体-关系模型转化为实际的表结构,理解这两个模型间的对应关系。 每个实验后都有思考题,用于巩固理论知识,实验心得部分要求学生反思实验过程中的学习体验和收获,例如在建立表时应注意数据类型的正确选择。 整个实验指导书通过实际操作帮助学生巩固理论知识,提高他们在数据库领域的实际操作能力,为后续更复杂的数据库管理和应用开发奠定坚实基础。
2023-05-18 上传
10软件1班 22号 周超 实验八 一、实验内容 以SPJ数据库为例,完成以下要求 1. 定义S、P、J、SPJ实体完整性 2. 表间的参照完整性 3. 用户定义完整性 二、实验过程 1. SQL定义各表 SQL: CREATE DATABASE SPJ ON(NAME='SPJ_DATA', FILENAME='E:\SPJ.mdf', SIZE=5MB, FILEGROWTH=10%) USE SPJ CREATE TABLE S (SNO CHAR(4) PRIMARY KEY, SNAME CHAR(20) UNIQUE, STATUS INT CHECK (STATUS>=10 AND STATUS<=50), CITY CHAR (20) NOT NULL); CREATE TABLE P (PNO CHAR(4) PRIMARY KEY, PNAME CHAR(20) NOT NULL, COLOR CHAR (10) NOT NULL, WEIGHT SMALLINT NOT NULL); CREATE TABLE J (JNO CHAR(4) PRIMARY KEY, JNAME CHAR(20) UNIQUE, CITY CHAR(20) NOT NULL); CREATE TABLE SPJ (SNO CHAR(4), PNO CHAR(4), JNO CHAR(4), QTY INT NOT NULL, PRIMARY KEY(SNO,PNO,JNO), FOREIGN KEY(SNO) REFERENCES S(SNO), FOREIGN KEY (PNO) REFERENCES P(PNO), FOREIGN KEY (JNO) REFERENCES J(JNO)); 附表:S表 P表 SPJ表 J表 2、(举例,违反3类完整性) 2.1、违反实体完整性(记下出错提示) 1、主码值不唯一 在J表中插入如下数据时 INSERT INTO J VALUES ('J1','三建','北京'); INSERT INTO J VALUES ('J1','一汽','长春'); 会出现提示错误:消息2627,级别14,状态1,第1 行 违反了PRIMARY KEY 约束'PK__J__0425A276'。不能在对象'dbo.J' 中插入重复键。 语句已终止。 2、主码属性值为空 在J表中插入以下数据时 INSERT INTO J VALUES (null,'无线电厂','常州'); 出现错误提示: 消息515,级别16,状态2,第1 行 不能将值NULL 插入列'JNO',表'SPJ.dbo.J';列不允许有空值。INSERT 失败。 语句已终止。 2.2、违反参照完整性(记下出错提示) 在参照表中插入元组 在SPJ表中插入如下数据 INSERT INTO SPJ VALUES('S6','P1','J1','200'); 出现提示错误: 消息547,级别16,状态0,第1 行 INSERT 语句与FOREIGN KEY 约束"FK__SPJ__SNO__1CF15040"冲突。该冲突发生于数据库"SPJ",表"dbo.S", column 'SNO'。 语句已终止。 在参照表中修改外码值 在SPJ表中修改数据,输入如下SQL语句 UPDATE SPJ SET SNO='S6' WHERE SNO='S1'; 出现提示错误: 消息547,级别16,状态0,第1 行 UPDATE 语句与FOREIGN KEY 约束"FK__SPJ__SNO__1CF15040"冲突。该冲突发生于数据库"SPJ",表"dbo.S", column 'SNO'。 语句已终止。 在被参照表中删除元组 在J表中删除元组,输入如下语句并执行 DELETE FROM J WHERE JNO='J2'; 出现提示错误: 消息547,级别16,状态0,第1 行 DELETE 语句与REFERENCE 约束"FK__SPJ__JNO__1ED998B2"冲突。该冲突发生于数据库"SPJ",表"dbo.SPJ", column 'JNO'。 语句已终止。 在被参照表中修改外码值 在P表中修改数据,输入如下语句 UPDATE p SET PNO='P7' WHERE PNO='P5'; 出现提示错误: 消息547,级别16,状态0,第1 行 UPDATE 语句与REFERENCE 约束"FK__SPJ__PNO__1DE57479"冲突。该冲突发生于数据库"SPJ",表"dbo.SPJ", column 'PNO'。 语句已终止。 2.3、违反用户定义完整性(记下出错提示) 1、违反列值非空 在J 表中插入以下数据时 INSERT INTO J1 VA