数据库系统及应用 上机实验报告
数据库上机实验报告

数据库上机实验报告数据库上机实验网络1002 3100610055一、实验目的1.通过上机操作,加深对数据库理论知识的理解。
2.通过使用具体的微机DBMS(SQL Server),了解一种实际的数据库管理系统,并掌握其操作技术。
3.通过实际题目的上机实验,提高动手能力,提高分析问题和解决问题的能力。
二﹑实验题目某供应商(S)供应(SPJ)某种零件(P)给某个工程项目(J),其中一个供应商可以供给多个项目零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,S﹑P﹑J﹑SPJ的数据见附表1。
三、实验报告实验报告按照各实验的实验报告内容来整理。
实验报告提交地址:ftp://202.195.168.13/(在“up”文件夹里的“《数据库系统原理A》上机实验”文件夹中找到班级文件夹)用户名:nianyi密码:123456实验报告命名规则:班级+学号+姓名,如“软件080101王鹏晓”。
四、考核上机实验采用书面分析、平时实验和最后抽查考核相结合的方法评定成绩。
实验一数据库的定义和建立一、实验目的要求学生熟练掌握和使用T-SQL﹑SQL Server对象资源管理器创建数据库﹑基本表和修改表结构,及向数据库输入数据的操作,学会创建和使用表的主码、外码和约束。
二、实验内容1﹑利用SQL Server对象资源管理器创建数据库和查看数据库属性;2﹑利用T-SQL创建基本表﹑确定表的主码、外码和相应的约束;3﹑利用SQL Server对象资源管理器创建表之间的关系图;4﹑利用T-SQL向数据库输入数据。
三、注意事项1﹑输入数据时要注意数据类型、主码和数据约束的限制。
2﹑注意数据库的主码﹑外码和数据约束的定义。
3、注意参照表和被参照表之间的关系,主码和外码间的关系。
四、实验报告内容1﹑创建基本表(包括表的主码、外码和相应的约束)的SQL语句;3﹑输入数据的SQL语句。
create table s(sno char(8) primary key,sname char(20) unique,statuss smallint,city char(20));create table p(pno char(8) primary key,pname char(20),color char(8),weightt smallint);create table j(jno char(8) primary key,jname char(20),city char(20));create table spj(sno char(8),pno char(8),jno char(8),qty smallint,primary key(sno,pno,jno),foreign key(sno) references s(sno),foreign key(pno) references p(pno), foreign key(jno) references j(jno));insertinto svalues('s1','精益','20','天津');insertinto svalues('s2','盛锡','10','北京');insertinto svalues('s3','东方红','30','北京'); insertinto svalues('s4','丰泰盛','20','天津'); insertinto svalues('s5','为民','30','上海');select*from s;insertinto pvalues('p1','螺母','红','12');insertinto pvalues('p2','螺栓','绿','17');into pvalues('p3','螺丝刀','蓝','14'); insert into pvalues('p4','螺丝刀','红','14'); insert into pvalues('p5','凸轮','蓝','40'); insert into pvalues('p6','齿轮','红','30'); select* from p;into jvalues('j1','三建','北京'); insert into jvalues('j2','一汽','长春'); insert into jvalues('j3','弹簧厂','天津'); insert into jvalues('j4','造船厂','天津'); insert into jvalues('j5','机车厂','唐山'); insert into jvalues('j6','无线电厂','常州');into jvalues('j7','半导体厂','南京'); select* from j;insertinto spjvalues('s1','p1','j1','200'); insertvalues('s1','p1','j3','100'); insert into spjvalues('s1','p1','j4','700'); insert into spjvalues('s1','p2','j2','100'); insert into spjvalues('s2','p3','j1','400'); insert into spjvalues('s2','p3','j2','200'); insert into spjvalues('s2','p3','j4','500'); insert into spjvalues('s2','p3','j5','400'); insert into spjvalues('s2','p5','j1','400'); insert into spjvalues('s2','p5','j2','100'); insert into spjvalues('s3','p1','j1','200'); insert into spjvalues('s3','p3','j1','200'); insert into spjvalues('s4','p5','j1','100'); insert into spjvalues('s4','p6','j3','300'); insert into spjvalues('s4','p6','j4','200'); insert into spjvalues('s5','p2','j4','100'); insertvalues('s5','p3','j1','200'); insert into spjvalues('s5','p6','j2','200'); insert into spjvalues('s5','p6','j4','500'); select* from spj;2﹑表之间的关系图;4、总结实验过程中遇到的问题及解决。
数据库应用上机实训报告

一、实训背景随着信息技术的飞速发展,数据库技术已经成为现代信息系统的核心组成部分。
为了提高学生的数据库应用能力,我校特开设了数据库应用上机实训课程。
本次实训旨在通过实际操作,使学生掌握数据库的基本原理、设计方法、开发工具以及数据库应用系统的搭建与维护。
二、实训目的1. 掌握数据库的基本概念、原理和设计方法。
2. 熟练运用数据库开发工具进行数据库的创建、维护和管理。
3. 学会使用SQL语言进行数据库的查询、更新、删除和插入操作。
4. 具备搭建数据库应用系统的基本能力。
三、实训内容1. 数据库设计:包括需求分析、概念设计、逻辑设计和物理设计。
2. 数据库开发工具:使用SQL Server Management Studio进行数据库的创建、维护和管理。
3. SQL语言:学习SQL语句的基本语法,掌握查询、更新、删除和插入操作。
4. 数据库应用系统搭建:以实际项目为例,学习数据库应用系统的搭建与维护。
四、实训过程1. 数据库设计(1)需求分析:了解项目背景,明确数据库应用系统的功能需求。
(2)概念设计:根据需求分析结果,设计实体-关系模型。
(3)逻辑设计:将实体-关系模型转换为关系模型,并定义表结构。
(4)物理设计:选择合适的存储引擎和数据类型,设计索引和视图。
2. 数据库开发工具使用SQL Server Management Studio创建数据库,并进行以下操作:(1)创建表:根据逻辑设计结果,创建相应的表。
(2)插入数据:向表中插入测试数据。
(3)查询数据:使用SQL语句查询表中的数据。
(4)更新数据:使用SQL语句更新表中的数据。
(5)删除数据:使用SQL语句删除表中的数据。
3. SQL语言(1)查询语句:掌握SELECT语句的基本语法,包括条件查询、排序查询、分组查询等。
(2)更新语句:掌握INSERT、UPDATE和DELETE语句的基本语法。
(3)子查询:学习使用子查询进行嵌套查询。
4. 数据库应用系统搭建以一个实际项目为例,学习数据库应用系统的搭建与维护:(1)需求分析:明确项目功能需求。
数据库系统原理上机实验报告(样例)

《数据库系统原理》上机实验一.实验目的围绕数据库设计和上机编程实践这两方面工作进行,通过对某种数据库产品及开发工具(Access,SQL Server,Oracle,VFP,PB,VB,VC,Delphi等)的熟悉和了解,对于给出的一个具体问题,首先通过对其综合分析,进行数据库的概念模型设计、关系数据库的逻辑结构设计,使其达到3NF或BCNF模式,然后进行在RDBMS下的设计和各个具体功能模块的编程,要求调试、测试成功,最后完成一个小型数据库应用系统。
二.实验内容对于给出的一个现实世界的实际应用项目,在正确分析问题的基础上,完成以下任务:1、用ER图方法设计概念数据库;2、用关系规范化方法设计数据库逻辑模型;3、用VFP(或任何一种关系型数据库产品)建立关系数据库;4、用PB(VFP, VB, VC,Delphi等)操纵数据库;5、用WEB数据库开发工具如JSP、ASP、操纵Web数据库(可选择)。
6、编制一个小型数据库应用系统。
三.实验过程实验一:概念数据库及逻辑数据库的设计,进一步熟悉VFP等编程语言,完成数据库的建立、数据的录入(至少5个记录,要求数据要典型)(一)问题的描述:一个图书借阅管理数据库要求提供下述服务:1)可随时查询书库中现有书籍的品种、数量与存放位置。
所有各类书籍均可由书号唯一标识。
2)可随时查询书籍借还情况。
包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:任何人可借多种书。
任何一种书可为多个人所借。
借书证号具有惟一性。
3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。
我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。
(二)概念模型:满足上述需求的E-R图:(三)关系数据库模型:定义如下基本表:1)借书人(借书证号,姓名,单位)借书证号:读者编号,长度为4的字符型,要求唯一、非空姓名:读者姓名,长度为10的字符型单位:读者地址,长度为20的字符型2)图书(书号,书名,数量,位置,出版社名)书号:图书编号,长度为4的字符型,要求唯一、非空书名:图书书名,长度为20的字符型出版社名:出版社,长度为20的字符型,默认为’河北工业大学’作者:图书作者,长度为10的字符型价格:书价,带两位小数三位整数的数值型,要求大于0,并给出出错提示3)借阅(借书证号,书号,借书日期,还书日期)借书证号:读者编号,类型与借书人中的一致书号:图书编号,类型与图书中的一致借书日期:借阅日期,日期型,默认填写当天日期(提示:获取当前日期的函数为DATE())4)出版社(出版社名,电报,电话,邮编,地址)……(四)数据库的建立与记录的录入:1)VFP提供的开发环境:(练习基本操作)2)数据库操作:创建数据库:文件→新建→数据库→新建文件→输入库名和保存位置→建库(建立以上各表)关闭、打开、修改数据库:……往库中加入、删除表,表的修改:……3)组织数据入库:直接往数据库中录入:……通过自己开发的数据录入子系统录入:…………实验二:完成系统总体功能模块设计,利用VFP等操纵数据库,包括编程序设计一个人机交互界面,使之具有插入、修改、删除、查询等基本模块,有能力的同学可以进一步完成数据库的维护,包括权限设置、用户管理、系统维护、报表输出、数据库备份、恢复等功能。
数据库技术与应用实验报告

数据库技术与应用实验报告《数据库技术与应用》上机实验报告目录:一、概述二、主要上机实验内容1.数据库的创建2.表的创建3.查询的创建4.窗体的创建5.报表的创建6.宏的创建三、总结一、概述(一)上机内容:第七周:熟悉Access界面,数据库和表的创建,维护与操作1. 熟悉Access的启动,推出,界面,菜单,工具栏等;2. 练习使用向导创建数据库、创建空数据库;3. 练习创建表结构的三种方法(向导、表设计器、数据表)、表中字段属性设置;4. 练习向表中输入不同类型的数据;5. 练习创建和编辑表之间的关系;6. 练习表的维护(表结构、表内容、表外观)7. 练习表的操作(查找、替换、排序、筛选等)第八周:练习创建各种查询1.选择查询(单表、多表、各种查询表达式)2.参数查询3.交叉表查询4.操作查询(生成查询、删除查询、更新查询、追加查询)第十周:练习创建各种类型的窗体1.自动创建纵栏式窗体和表格式窗体;2.向导创建主|子窗体3.图表窗体的创建4.练习通过设计器创建窗体5.练习美化窗体第十三周:练习创建各种类型的报表1.自动创建纵栏式报表和表格式报表;2.向导创建报表(多表报表、图表报表、标签报表)3.练习通过设计视图创建报表(主|子报表、自定义报表)4.练习在报表中添加计算字段和分组汇总数据第十五周:综合应用1.了解Access数据库系统开发的一般方法;2.课程内容的综合练习;3.编写上机实验报告、答疑(二)上机完成情况第七周:熟悉Access界面,数据库和表的创建,维护与操作完成了创建表,向表中输入不同类型的数据,创建和编辑表之间的关系,进行了表的维护,修改了表的结构、内容、外观,最后进行了表的操作,查找、替换、排序、筛选等。
已完成第八周:练习创建各种查询练习选择查询、参数查询、交叉表查询,然后练习并操作查询,生成查询、删除查询、更新查询、追加查询等。
已完成第十周:练习创建各种类型的窗体自动创建纵栏式窗体和表格式窗体,向导创建主|子窗体和图表窗体,练习通过设计器创建窗体,美化窗体。
数据库上机实验报告

《数据库技术与应用》上机实验报告姓名:谢优贤学号:020*******专业班级:安全工程1003班通过这次上机实验,我做了学生信息管理系统数据库,通过创建表、查询、窗体、报表和宏对输入数据库中的学生的基本信息进行整理和操作,以便得到我们想要的信息。
学生信息管理系统可以实现对学生的基本信息:学号、姓名、联系方式、性别、成绩等的查询,还有对教师的情况进行比较了解从而可以帮助学生更好地选课和学习,省去了纸质档案管理不方便的方面。
通过窗体的创建和美化,使我们在操作数据时有一个简洁明了美观的窗口,简化了用户的操作程序,方便用户的使用。
报表的创建可以使用户想要的数据很好地呈现在纸上。
使用宏命令还使数据库有了设置密码的功能,很好的保护了数据的使用权限;也可以使用宏命令打开我们希望打开的窗口。
一、主要上机内容1. 数据库的创建:我使用自行创建数据库的方式进行创建,数据库文件名为学生信息管理系统。
数据库要实现的主要功能:学生基本信息及学习成绩情况的统计,通过窗体进行学生信息的查询、学生信息及成绩的普通查询、打印学生信息报表等。
2. 表的创建:基本表为学生信息表、学生成绩表、教师信息表、课程信息表等均使用设计器创建表学生信息表的记录:学生信息表结构:在学生信息表中设置了学号为主键,为了方便输入又在学号字段中设置了掩码(如下图)学生年龄一般不会太大或太小,于是为了防止填写信息时出错,添加了有效性规则性别只有男和女之分,于是为了方便,选择了查询向导同样在入学日期和电话字段也设置了输入掩码头像属于图片类型,其数据类型为“OLE对象”,所得荣誉和自我介绍选择了“备注”类型。
学生成绩表记录和结构:教师信息表记录和结构:课程信息表:建立表间关系:3. 查询的创建:创建查询从学生信息表中查找数据,使用查询设计器创建,保存为“学生信息组合模糊查询”。
功能是通过学生的性别和姓名快速查找学生信息。
查询结果以表格的形式输出。
4. 窗体的创建:使用“在设计视图中创建窗体”创建“学生信息管理系统窗体”:同理,依次创建“户籍调查窗体”“教师信息窗体”“课程信息窗体”“学生成绩窗体”“学生课程窗体”“学生信息查询窗体”“学生信息管理系统登录窗口窗体”。
数据库上机实验报告

数据库上机报告(一)上机实验项目名称:库以及表的基本操作学号:项目学时:姓名:班级:目录一、实验目的二、实验内容三、设计步骤以及实验结果四、实验总结一、实验目的(1)熟悉SQL Sever数据库组成(2)了解如何创建、导入以及删除数据库(3)熟悉表的创建与管理二、实验内容:(1)数据库由包含数据的基本表和其他对象(视图、索引、存储过程和触发器)组成。
系统数据库包括master数据库(记录所有其他的数据库以及相关信息)tempdb数据库(保存所有的临时表和临时存储过程)msdb数据库。
(2)建立所需要的数据库(3)建立学生表课程表以及选课表三、设计步骤以及实验结果(3.2.1)新建数据库操作:打开SQL Sever软件点开资源管理器下数据库标志左侧的加号,在下拉菜单中右键点击,(见右上图)之后点击新建数据库之后在弹出的对话框中数据库名称一栏输入你所要的数据库名称;单击确定,建立数据库完成。
(3.2.2)导入数据库一种方法是将数据库的两个源文件放在数据库存放源文件的文件夹里,之后在数据库上右击点击附加,在弹出的窗口选择添加,会弹出另一个窗口选择你要附加的数据库的源文件将其导入进来。
第二种方法是新建一个数据库,名字最好与你即将要导入进来的数据库名称一致,在所建立好的数据库上单击右键选择任务--还原--数据库,选择设备选项,接着将要导入的源文件都添加进来点击确定(3.2.3)删除数据库首先需要在你所要删除的数据库上单击右键选择任务--分离,之后要在存放数据库源文件的根目录下将有关其数据库的内容删除掉(根目录具体位置见上图)。
(3.3)创建学生表,课程表以及选课表并且对其进行适当的约束(3.3.1)创建学生表展开已经创建好的数据库student,在【表】上单击右键,选择【新建表】在前5列设计写入列名为Sno,Sname,Ssex,Sage,Sdept数据类型分别为nchar(10) ,varchar(50) ,nchar(2),int,nchar(10),其中后四项可以为null值,且将学生号Sno设为主键。
数据库技术与应用上机实验报告

《数据库技术与应用》上机实验报告姓名:***学号:***专业班级:***完成时间:***一、概述数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,通过一学期对数据库的学习,让我基本上熟悉了数据库的使用方法,后来通过进一步的上机实验,加上自己的摸索,使我对表、窗体、查询、报表、宏等内容的创建与设计有了一个系统性的提高,完成了实践,制作出《学生基本信息及成绩更新查询系统》数据库文件。
该数据库的主要功能是存储学生的基本信息、高考成绩以及录取情况等内容,并提供信息录入、查询、更新等服务。
用户可以通过进入该系统后,按照界面提示进行操作。
该系统简单明了,很直观的就把功能展现在用户面前,极易上手。
下面就简单的对该系统的使用做一个介绍。
首先点击进入“学生基本信息及成绩更新查询系统”,界面如图所示:共有8个按钮,都是通过宏从而完成命令的执行,用户可以按照文字提示点击不同的按钮进行操作。
下面对各个选项框做一个简单的介绍。
1、学生基本信息更新点击“学生基本信息更新”按钮,会进入“学生基本信息”表,用户可以在这里进行学生基本信息的录入及更新,如图所示,使用完毕后,关闭该表,系统提示保存,返回登录界面。
2、学生高考成绩更新点击“学生高考成绩更新”按钮,会进入“学生成绩”表,用户可以在这里进行学生成绩的录入及更新,如图所示,使用完毕后,关闭该表,系统提示保存,返回登录界面。
3、学生录取情况更新点击“学生录取情况更新”按钮,会进入“学生录取情况”表,用户可以在这里进行学生录取情况的录入及更新,如图所示,使用完毕后,关闭该表,系统提示保存,返回登录界面。
4、打印成绩点击“打印成绩”按钮,进入学生成绩报表,用户可以在这里以报表的形式查看学生成绩,并将其打印,使用完毕后,关闭该报表,返回登录界面。
5、学生基本信息查询点击“学生基本信息查询”按钮,进入学生基本信息查询界面,用户可以在这里逐项浏览、查看学生基本信息,使用完毕后,关闭查询,返回登录界面。
数据库上机实验8实验报告

数据库上机实验8实验报告第一篇:数据库上机实验8实验报告上机实验八——完整性约束的实现一、实习目的:掌握SQL中实现数据完整性的方法,加深理解关系数据模型的三类完整性约束。
二、实习准备:1.复习“完整性约束SQL定义”2.完成习题四第10题中的各项操作的SQL语句。
3.了解SQL Server 中实体完整性、参照完整性和用户自定义完整性的实现手段三、实习内容:1.验证习题四第10题四个表结构的SQL语句。
表一:Sstudent CREATE TABLE Sstudent(Sno char(7)NOT NULL PRIMARY KEY, Sname VarChar(20)NOT NULL, Ssex Char(2)NOT NULL DEFAULT('男')check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5)NOT NULL REFERENCES Cclass(Clno)ON UPDATE CASCADE);表二:Ccourse CREATE TABLE Ccourse(Cno Char(1)NOT NULL PRIMARY KEY, Cname VarChar(20)NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));表三:Cclass CREATE TABLE Cclass(Clno Char(5)NOT NULL PRIMARY KEY, Speciality VarChar(20)NOT NULL, Inyear Char(4)NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7)REFERENCES Student(Sno));表四:Ggrade CREATE TABLE Ggrade(Sno Char(7)NOT NULL REFERENCES Student(Sno)ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1)NOT NULL REFERENCES Course(Cno)ON DELETE CASCADE ON UPDATE CASCADE, GmarkNumeric(4,1)CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno));2.SQL Server中提供了那些方法实现实体完整性、参照完整体和用户自定义完整性答:实体完整性:是通过主码的定义(PRIMARY KEY)来实现的;参照完整性:是利用外部码(REFERENCES)的说明,以限制相关表中某些属性的取值,当用户违反规则时,提供三种:RESTRICT (限制策略),CASCADE(级联策略),SET NULL(置空策略);用户自定义完整性:check约束,对元组的CHECK约束第二篇:数据库上机实验报告兰州理工大学学生上机报告学院计算机与通信学院课程名称数据库原理学生姓名侯予南学号05550204专业班级基地班05级1班上机日期2008年4月17日指导教师李明上机实验报告(一)实验内容:1、熟悉SQL Server 2000应用环境;熟悉查询分析器的使用方法;2、运行课堂示例:建立表T eacher , Course ;进行数据插入、查询、更新、建立视图、创建触发器等操作;3、完成作业(P108 第5题,P145第5题);4、完成实验报告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统及应用上机实验报告实验1一、实验目的:理解SQL Server数据库的存储结构,掌握SQL Server数据库的建立方法和维护方法。
二、实验内容:在SQL Server环境下建立数据库和维护数据库。
三、程序源代码:--1CREATE DATABASE test1ON(NAME=test1_dat,FILENAME='f:\DB\data\test1dat.mdf',SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 )LOG ON(NAME=order_log,FILENAME='f:\DB\data\test1log.ldf',SIZE= 5MB,MAXSIZE= 25MB,FILEGROWTH= 5MB)--2create database test2onprimary(name=test2_dat1,filename='f:\DB\data\test2dat1.mdf'), (name=test2_dat2,filename='f:\DB\data\test2dat2.ndf'), (name=test2_dat3,filename='f:\DB\data\test2dat3.ndf') log on(name=test2_log1,filename='f:\DB\data\test2log1.ldf'), (name=test2_log2,filename='f:\DB\data\test2log2.ldf') --3create database test3onprimary(name=test3_dat1,filename='f:\DB\data\test3dat1.mdf'), (name=test3_dat2,filename='f:\DB\data\test3dat2.mdf'), filegroupg2(name=test3_dat3,filename='d:\DB\data\test3dat3.ndf'), (name=test3_dat4,filename='d:\DB\data\test3dat4.ndf'), filegroupg3(name=test3_dat5,filename='e:\DB\data\test3dat5.ndf'), (name=test3_dat6,filename='e:\DB\data\test3dat6.ndf') log on(name=test3_log,filename='f:\DB\data\test3log.ldf')--4alter database test1add file(name=test1new_dat,filename='f:\DB\data\test1newdat.ndf', size=5MB)--5alter database test1modify file(name=test1_dat,size=15MB)--6dropdatabasetest3四、实验数据、结果分析:若没有指定size,则默认为1MB,没有指定Maxsize,文件可以增长到磁盘满为止,没有指定Filegrowth,则默认为10%。
五、总结:CREATE DATABASE dataname 创建数据库ALTER DATABASE database 修改数据库DROP DATABASE dataname 删除数据库实验21.创建客户表:create table 客户(客户号char(8) check(unicode(客户号) between 65 and 122) primary key,/*check(客户号like '[a-z]%')*/客户名称varchar(40) not null,联系人char(8),地址varchar(40),邮政编码char(6) check(len(邮政编码)=6 and isnumeric(邮政编码)=1),/* check(邮政编码like '[0-9][0-9][0-9][0-9][0-9][0-9]')*/电话char(12) check(isnumeric(电话)=1))2.创建产品表:create table 产品(产品号char(8) primary key check(unicode(产品号) between 65 and 122and unicode(substring(产品号,2,1)) between 65 and 122),产品名称varchar(40) unique,规格说明char(40),单价smallmoney check(单价>0))3.创建订购单表:create table 订购单(客户号char(8) foreign key references 客户(客户号) not null,订单号char(8) primary key,订购日期datetime default getdate())4.创建订单明细表:create table 订单明细(订单号char(8) foreign key references 订购单(订单号),序号tinyint,产品号char(8) foreign key references 产品(产品号) not null,数量smallint check(数量>0),primary key (订单号,序号))实验3一、实验目的:为实验2建立的表设计一组数据进行插入、删除、修改等操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
二、实验内容:数据的插入、更新和删除。
三.、程序源代码:--1、部分记录insert into 客户 values('C001','A公司','小明','北京','123456','143567568457')insert into 客户 values('C002','B公司','小李','上海','234567','146389045634')insert into 客户(客户号,客户名称) values('C009','J商场')insert into 产品 values('GD001','iphone','4s','5000')insert into 产品 values('GD002','ipad','2g','5500')insert into 产品(产品号,产品名称) values('GD010','Mac Pro')insert into 订购单(客户号,订单号) values('C001','or01')insert into 订购单(客户号,订单号) values('C001','or02')insert into 订购单(订单号) values('or19')insert into 订单名细 values('or01','1','GD001','4')insert into 订单名细 values('or01','2','GD001','3')insert into 订单名细 values('or01','3','GD002','6')insert into 订单名细(订单号,序号,产品号) values('or14','28','GD006')--2delete from 客户 where 客户号='C001' --受参照完整性约束delete from订购单 where 订单号='or01' --受参照完整性约束--3update 订购单 set 订单号=null where 客户号='C001' --受实体完整性约束update 订购单 set 客户号='C011' where 订单号='or04'--受参照完整性约束update 订购单 set 客户号='C009' where 订单号='or07' --更新成功update 订单名细 set 数量=0 where序号='9' --受用户定义完整性约束--4update 订单名细 set 数量=数量+10from 订购单where 订购单.订单号=订单名细.订单号 and 客户号='C002'--5delete from 订单名细from 订购单where 订购单.订单号=订单名细.订单号 and 客户号='C002'四、实验数据、结果分析:--2在删除客户号为“C002”的记录时无法删除,因为客户表被订购单表参照。
删除订购单号为“or01”的记录时无法删除,因为订单名细表参照订购单表。
--3第一个更新根据实体完整性约束,订单号是主关键字,不能为空值。
第二个更新根据参照完整性约束,订购单表参照客户表,而客户表中没有客户号为“C011”的客户。
第四个更新根据用户定义完整性约束,数量必须为正整数。
--4使客户号为C002的订购单的订购数量增加10.--5删掉客户号为C002的订单名细记录。
五、总结:插入:INSERT INTO <表名>[(<列名>[,<列名>…])]values(<表达式>[,<表达式>…])更新:update <表名> set <列名>=<表达式>[,<列名>=<表达式>…] [[from<表名>] where<逻辑表达式>]删除:DELETE FROM <表名>[[FROM <表名>]WHERE <逻辑表达式>]完整性约束影响插入、更新和删除等操作实验4一、实验目的:熟练掌握SQL SELECT语句,能够运用该语句完成各种查询。