附录C 数据库上机实验
数据库上机实验报告

数据库上机实验报告数据库上机实验网络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、总结实验过程中遇到的问题及解决。
数据库上机实验

附录C 上机实验第4章上机实验下列实验均使用SQL Server 的SSMS工具实现。
1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A):数据库名为:学生数据库主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D:盘中无此文件夹,请先建立此文件夹,然后再创建数据库。
),初始大小为:5MB,增长方式为自动增长,每次增加1MB。
日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大小为:2MB,增长方式为自动增长,每次增加10%。
2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。
(注:“说明”部分不作为表定义内容)列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主键Sname姓名普通编码定长字符串,长度为10非空Ssex性别普通编码定长字符串,长度为2取值范围:{男,女}Sage年龄微整型(tinyint)取值范围:15-45Sdept所在系普通编码不定长字符串,长度为20默认值为“计算机系”Sid身份证号普通编码定长字符串,长度为10取值不重Sdate入学日期日期默认为系统当前日期列名说明数据类型约束Cno课程号普通编码定长字符串,长度为10主键Cname课程名普通编码不定长字符串,长度为20非空Credit学时数整型取值大于0Semester学分小整型列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主键,引用Student的外键Cno课程号普通编码定长字符串,长度为10主键,引用Course的外键Grade成绩小整型取值范围为0-100列名说明数据类型约束3. 写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。
(1)在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。
(2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。
c 数据库上机实验

附录C 上机实验第4章上机实验----------------------陈宇超,仅供参考------------------------------下列实验均使用SQL Server 的SSMS工具实现。
1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A):数据库名为:学生数据库主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D:盘中无此文件夹,请先建立此文件夹,然后再创建数据库。
),初始大小为:5MB,增长方式为自动增长,每次增加1MB。
日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大小为:2MB,增长方式为自动增长,每次增加10%。
2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。
(注:“说明”部分不作为表定义内容)列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主键Sname姓名普通编码定长字符串,长度为10非空Ssex性别普通编码定长字符串,长度为2取值范围:{男,女}Sage年龄微整型(tinyint)取值范围:15-45Sdept所在系普通编码不定长字符串,长度为20默认值为“计算机系”Sid身份证号普通编码定长字符串,长度为10取值不重Sdate入学日期日期默认为系统当前日期列名说明数据类型约束Cno课程号普通编码定长字符串,长度为10主键Cname课程名普通编码不定长字符串,长度为20非空Credit学时数整型取值大于0Semester学分小整型列名说明数据类型约束Sno学号普通编码定长字符串,长度为7主键,引用Student的外键Cno课程号普通编码定长字符串,长度为10主键,引用Course的外键Grade成绩小整型取值范围为0-100表C-4 Teacher表结构列名说明数据类型约束Tno教师号普通编码定长字符串,长度为8非空Tname教师名普通编码定长字符串,长度为10非空Salary工资定点小数,小数点前4位,小数点后2位3. 写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。
2023年数据库上机实验报告

一、复杂查询试验目旳1、掌握多表查询旳设计2、熟悉参数查询和记录查询设计试验内容1、创立多表查询2、设计带参数旳查询3、创立记录查询试验分题分析:1、查询出指定商品在规定日期旳销售详情(包括商品名称、销售单号、销售数量、销售单价、折扣、销售日期)(多表之间旳条件查询及参数查询)分析:(1)商品旳销售详情旳字段包括:销售单号、商品名称、销售数量、销售单价、折扣、销售日期和销售总额,为满足这些属性,应在显示表中选出“商品表”、“收货单表”和“售货单明细表”。
(2)为满足规定时间旳规定,对日期作参数查询,在“日期”列旳条件里面设置条件“Between [起始时间] And [截止时间]”,单击右键选择“参数”(如下图:)(3)在指定商品时,对商品设置参数,在商品列旳“条件里”键入“[请输入商品名称]”(4)在计算总额时,在最终一列位置输入体现式“总额: [售货单明细]![单价]*[数量]*(1-[折扣])”,因为在“商品表”和“收货单明细表”里面都具有单价,因此在计算总额时,应用生成器选中“收货单明细表”里面旳单价。
(注:冒号前为计算字段旳显示标题,冒号后为计算体现式),然后点击工具栏中旳总计按钮,在设计网格中出现新旳一栏选项“总计”,各字段默认值为“分组”,对应“总额”计算机字段旳位置点击下拉列表,选择“总计”,如图。
设计视图:运行:2、销售单旳销售额记录:按姓名查询某个销售员所销售旳所有售货单并记录出每个售货单旳总金额(在同一种查询中完成;提醒:销售员姓名、销售单ID为分组字段,新产生一种“总额”字段为总计字段)。
分析:(1) 按题目规定,销售单旳销售额记录应该包括字段:“销售员ID”、“销售员姓名”、“销售单ID”和“总额”;为了计算总额,还需要“数量”、“单价”、“折扣”为此,我们要从显示表中选择“售货单明细表”和“销售员表”,还应选择“售货单表”来连接“售货单明细表”和“销售员表”。
(2) 在查询指定旳销售员时,在“姓名”列旳“条件”里添加参数查询“[输入要查询旳销售员姓名:] ”(3) 在计算销售单总额时,在最终一列位置输入体现式“总额: [单价]*[数量]*(1-[折扣])”(注:冒号前为计算字段旳显示标题,冒号后为计算体现式),然后点击工具栏中旳总计按钮,在设计网格中出现新旳一栏选项“总计”,各字段默认值为“分组”,对应“总额”计算机字段旳位置点击下拉列表,选择“总计”,如图。
《Access(2021版)》 上机实验1-上机实验9题目

《Access(2021版)》上机实验1-上机实验9题目附录2附录2.1 上机实验1上机实验1.启动“MicroSoft Office Access 2021”,单击“文件”选项卡上左侧窗格的“帮助”,单击中间窗格上的“MicroSoft Office帮助”,便显出“Access帮助”窗口。
单击该帮助窗口中的“Access 2021入门”标题下的“Access 2021数据库设计基础”,便可选看列出的“数据库设计基础”的那些内容。
2.启动“MicroSoft Office Access 2021”,单击“文件”选项卡上左侧窗格的“帮助”,单击中间窗格上的“MicroSoft Of fice帮助”,便显出“Access帮助”窗口。
单击该帮助窗口中的“Access 2021入门”标题下的“Access 演示”,显出“演示”的主题列表,单击主题列表中的“演示:认识导航窗格”,便可进行观看。
同理,可查看其他的Access帮助信息。
附录2.2 上机实验21.在用户盘的根目录中(如G:\\)创建一个名为“上机实验”文件夹。
2.在“上机实验”文件夹中创建一个名为“学生管理系统.accdb”的数据库。
3.在“学生管理系统”数据库中创建如下的表:295Access数据库基础与应用教程(1)根据表3-2所示的“学系”表结构,创建一个表名为“学系”的表,主键是“学系代码”。
“学系”表中包含学系代码、学系名称、办公电话、学系简介和学系资料等字段。
表3-2 “学系”表结构字段名字段类型字段大小学系代码文本 2 学系名称文本 30 办公电话文本 11 学系简介备注学系资料附件(2)根据表3-3所示的“专业”表结构,创建一个表名为“专业”的表,主键是“专业代码”。
“专业”表中包含专业代码、专业名称、学制年限、学系代码和专业简介字段。
表3-3 “专业”表结构字段名字段类型字段大小专业代码文本 3 专业名称文本 30 学制年限数字整型学系代码文本 2 专业简介备注(3)根据表3-4所示的“班级”表结构,创建一个表名为“班级”的表,主键是“班级号”。
数据库上机实验报告

数据库上机实验报告数据库上机实验报告试验内容1、数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)2、数据表的修改添加删除列修改列属性类型添加删除约束(约束名)元组的添加,修改,删除删除数据表试验过程1、createtablestudent(snochar(9)primarykey,/*sno是主码列级完整性约束条件*/snamechar(20)unique,/*sname取唯一值*/ssexchar(2),sagesmallint,/*类型为smallint*/sdeptchar(20)/*所在系*/);createtablecourse(cnochar(4)primarykey,/*列级完整性约束条件,cno是主码*/cnamechar(40),cpnochar(4),/*cpno的含义是先行课*/ccreditsmallint,foreignkey(cpno)referencescourse(cno)/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/);createtablesc(snochar(9),cnochar(4),gradesmallint,primarykey(sno,cno),/*主码有两个属性构成,必须作为表级完整性进行定义*/foreignkey(sno)referencesstudent(sno),/*表级完整性约束条件,sno是外码,被参照表是student*/foreignkey(cno)referencescourse(cno),/*表级完整性约束条件,cno是外码,被参照表示course*/);例1、createtables(cnovarchar(3),/*变长的字符串,输入2个字符就是两个字符不会补空格*/snamevarchar(20),statusint,cityvarchar(20),constraintpk_snoprimarykey(sno),/*约束条件的名字为pk_sno*/);createtablep(pnovarchar(3),pnamevarchar(20),colorvarchar(3),weightint,constraintpk_pnoprimarykey(pno),/*约束条件的名字是pk_pno*/);createtablej(jnovarchar(3),jnamevarchar(20),cityvarchar(20),constraintpk_jnoprimarykey(jno)/*约束条件的名字为pk_jno*/);例2、createtablespj(snovarchar(3),/*第一个表中的主码*/pnovarchar(3),jnovarchar(3),qtyint,/*数量*/constraintpk_spjprimarykey(sno,pno,jno),/*主码由3个属性组成*/foreignkey(sno)referencess(sno),/*表级完整性约束条件,sno是外码,被参照表是s*/ foreignkey(pno)referencesp(pno),/*表级完整性约束条件,pno是外码,被参照表是p*/ foreignkey(jno)referencesj(jno),数据库上机实验报告相关文章:实验报告撰写要求“小学教师心理素质优化研究”实验总结《聋校语文教学学生学习兴趣引导的研究》实验报告SQL数据库制作考务管理系统实验报告小学课题阶段实验汇报生物教学中引导学习教学模式的实验报告校本培训课题实验总结报告范文书法教育课题开题实验报告查看更多>>实验报告。
数据库上机实验报告[页2]
![数据库上机实验报告[页2]](https://img.taocdn.com/s3/m/67b696275f0e7cd1842536dd.png)
数据库上机实验报告[页2]数据库上机实验报告数据库上机实验报告/*表级完整性约束条件,jno是外码,被参照表是j*/);2、数据表的更改在s表中添加一个concat列altertablesaddconcatvarchar(20)在s表中删除concat列altertablesdropcolumnconcat更改s表concat列的属性把长度由20改为30altertablesaltercolumnconcatvarchar(30)联系方式名字为concat修改属性为唯一的属性名为con_concataltertablesaddconstraintcon_concatunique(concat)删除约束关系con_concataltertablesdropconstraintcon_concat/*插入一个元组*/insertintosvalus(‘s1’,’精益’,20,’天津’)/*20不能写成’20’*/试验中的问题的排除与总结:1、在创建spj时有三个实体所以从3个实体中取主码,还有一个数量属性也要写上主码由那3个主码确定2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态3、constraint是可选关键字,表示primarykey、notnull、unique、foreignkey或check约束定义的开始。
约束是特殊属性,用于强制数据完整性并可以为表及其列创建索引。
4、--go可以不加但是要注意顺序注:go--注释提示错误5、注意添加一个空元素用null附sql备份--创建一个数据库studentcreatedatabasestudentgo--在数据库student中创建表studentcoursesc注意顺序usestudent---------------------------------------------------------------- createtablestudent(snochar(9)primarykey,/*sno是主码列级完整性约束条件*/ snamechar(10)unique,/*sname取唯一值*/ssexchar(2),sagesmallint,/*类型为smallint*/sdeptchar(20)/*所在系*/);/*;要加*/-----------。
数据库上机实验(二)

数据库上机实验(二)第一篇:数据库上机实验(二)数据库上机实验内容及要求(第二部分)1.建立工厂管理数据库工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息:(1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和联系电话;(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种;(3)一个车间生产多种产品,产品有产品号和价格;每种产品只能由一个车间生产;(4)一个车间制造多种零件,一种零件也可能为多个车间制造。
零件有零件号、重量和价格;(5)一种产品可由多种零件组成,一种零件也可以装配出多种产品;(6)产品和零件均存入仓库;(7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
根据以上需求分析结果,按照下述要求,设计并建立工厂管理数据库。
υ分析实体及联系,设计E-R图。
υ将E-R图转换成关系模式,并规范化到3NF。
υ在Microsoft SQL Server2000中基于“企业管理器”建立数据库及相关对象(主码,外码,索引,约束等)。
υ测试数据入库2.基于“查询分析器”,完成并保存下述题目的SQL脚本(1)建立“工种”是“钳工”的所有职工详细信息的视图;(2)建立“车间号”是“CJ01”的钳工详细信息的视图;(3)建立使用了“零件号”是“LJ0002”的所有产品详细信息的视图;(4)查询使用了“零件号”是“LJ0002”的产品的生产车间号;(5)对零件表按照“零件号”建立唯一索引;(6)对职工表按照“性别”建立聚簇索引;(7)查询“车间主任姓名”是“赵平”的“车间地址”和“联系电话”;(8)查询“职工号”是“ZG0001”的职工所在车间的“车间主任姓名”和“联系电话”;(连接查询实现)(9)查询“产品号”是“CP0001”的产品的生产车间的“车间主任姓名”和“联系电话”;(嵌套查询实现)(10)查询使用了“零件号”是“LJ0002”的所有产品的“产品号”,且查询结果按照“零件数量”降序排列;(11)查询使用了“零件号”是“LJ0002”的所有产品的“产品号”和“产品价格”;(12)查询使用了“零件号”是“LJ0002”的所有产品的生产车间的“车间主任姓名”和“联系电话”;(13)查询使用了“零件号”是“LJ0002”的产品数;(14)查询“LJ0002”号零件装配产品的使用总量;(15)查询使用了3种以上零件的产品号;【注意】:下机时保存数据库文件(.mdf和.ldf)及SQL脚本文件到U盘。
数据库上机实验报告

数据库上机实验报告数据库上机实验报告试验内容1、数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)2、数据表的修改添加删除列修改列属性类型添加删除约束(约束名)元组的添加,修改,删除删除数据表试验过程1、create table student(sno 9) primary key , /*sno是主码列级完整性约束条件*/sname 20) unique, /*sname取唯一值*/ssex 2),sage smallint, /*类型为smallint*/sdept 20) /*所在系*/);create table course(cno 4) primary key, /*列级完整性约束条件,cno是主码*/cname 40),cpno 4), /*cpno的含义是先行课*/ccredit smallint,foreign key (cpno) references course(cno)/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/);create table sc(sno 9),cno 4),grade smallint,primary key (sno,cno),/*主码有两个属性构成,必须作为表级完整性进行定义*/foreign key (sno) references student(sno),/*表级完整性约束条件,sno是外码,被参照表是student*/foreign key (cno) references course(cno),/*表级完整性约束条件,cno是外码,被参照表示course*/);例1、create table s(cno var3), /*变长的字符串,输入2个字符就是两个字符不会补空格*/sname var20),status int,city var20),constraint pk_sno primary key(sno), /*约束条件的名字为pk_sno*/);create table p(pno var3),pname var20),color var3),weight int,constraint pk_pno primary key (pno), /*约束条件的名字是pk_pno*/);create table j(jno var3),jname var20),city var20),constraint pk_jno primary key(jno) /*约束条件的名字为pk_jno*/);例2、create table spj(sno var3), /*第一个表中的主码*/pno var3),jno var3),qty int, /*数量*/constraint pk_spj primary key(sno,pno,jno), /*主码由3个属性组成*/foreign key(sno) references s(sno),/*表级完整性约束条件,sno是外码,被参照表是s*/ foreign key(pno) references p(pno),/*表级完整性约束条件,pno是外码,被参照表是p*/ foreign key(jno) references j(jno),/*表级完整性约束条件,jno是外码,被参照表是j*/ );2、数据表的更改在s表中添加一个concat 列alter table s add concat var20)在s表中删除concat 列alter table s drop column concat更改s表 concat列的属性把长度由20改为30alter table s alter column concat var30)联系方式名字为concat 修改属性为唯一的属性名为con_concatalter table s add constraint con_concat unique(concat)删除约束关系con_concatalter table s drop constraint con_concat/*插入一个元组*/into s valus(‘s1’,’精益’,20,’天津’) /*20不能写成’20’*/试验中的问题的排除与总结:1、在创建spj时有三个实体所以从3个实体中取主码,还有一个数量属性也要写上主码由那3个主码确定2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态3、constraint是可选关键字,表示 primary key、not null、unique、foreign key 或 check 约束定义的开始。
数据库上机实验报告_实验报告_

数据库上机实验报告数据库上机实验报告试验内容1、数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)2、数据表的修改添加删除列修改列属性类型添加删除约束(约束名)元组的添加,修改,删除删除数据表试验过程1、create table student(sno char(9) primary key , /*sno是主码列级完整性约束条件*/sname char(20) unique, /*sname取唯一值*/ssex char(2),sage smallint, /*类型为smallint*/sdept char(20) /*所在系*/);create table course(cno char(4) primary key, /*列级完整性约束条件,cno是主码*/cname char(40),cpno char(4), /*cpno的含义是先行课*/ccredit smallint,foreign key (cpno) references course(cno)/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/);create table sc(sno char(9),cno char(4),grade smallint,primary key (sno,cno),/*主码有两个属性构成,必须作为表级完整性进行定义*/foreign key (sno) references student(sno),/*表级完整性约束条件,sno是外码,被参照表是student*/foreign key (cno) references course(cno),/*表级完整性约束条件,cno是外码,被参照表示course*/);例1、create table s(cno varchar(3), /*变长的字符串,输入2个字符就是两个字符不会补空格*/sname varchar(20),status int,city varchar(20),constraint pk_sno primary key(sno), /*约束条件的名字为pk_sno*/);create table p(pno varchar(3),pname varchar(20),color varchar(3),weight int,constraint pk_pno primary key (pno), /*约束条件的名字是pk_pno*/);create table j(jno varchar(3),jname varchar(20),city varchar(20),constraint pk_jno primary key(jno) /*约束条件的名字为pk_jno*/);例2、create table spj(sno varchar(3), /*第一个表中的主码*/pno varchar(3),jno varchar(3),qty int, /*数量*/constraint pk_spj primary key(sno,pno,jno), /*主码由3个属性组成*/foreign key(sno) references s(sno),/*表级完整性约束条件,sno是外码,被参照表是s*/foreign key(pno) references p(pno),/*表级完整性约束条件,pno是外码,被参照表是p*/foreign key(jno) references j(jno),。
附录C数据库上机实验解析

附录C 上机实验C.1 第4章上机实验----------------------陈宇超,仅供参考------------------------------ 下列实验均使用SQL Server 的SSMS工具实现。
1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A):●数据库名为:学生数据库●主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D:盘中无此文件夹,请先建立此文件夹,然后再创建数据库。
),初始大小为:5MB,增长方式为自动增长,每次增加1MB。
●日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大小为:2MB,增长方式为自动增长,每次增加10%。
2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。
(注:“说明”部分不作为表定义内容)表C-4 Teacher表结构3. 写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。
(1)在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。
ALTER TABLE Teacher ADD Title VARCHAR(4)(2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。
ALTER TABLE Teacher ADD CONSTRAINT Title CHECK(Title IN('教授','副教授','讲师'))(3)将Course表中Credit列的类型改为:tinyint。
注意:这里首先需要先删除Credit的约束,修改完数据类型后再重新添加约束项ALTER TABLE Course DROP CONSTRAINT CK__Course__Credit__2B3F6F97 ALTER TABLE Course ALTER COLUMN Credit TINYINTALTER TABLE Course ADD CONSTRAINT Credit CHECK (Credit>0)(4)删除Student表中的Sid和Sdate列。
数据库上机实验报告

数据库上机实验报告数据库上机实验汇报试验内容⑴数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)⑵数据表的修改添加删除列修改列属性类型添加删除约束(约束名)1 / 12元组的添加,修改,删除删除数据表试验过程⑴createtablestudent(snochar(9)primarykey,/*sno是主码列级完整性约束条件*/ snamechar(20)unique,/*sname取唯一值*/ssexchar(2),sagesmallint,/*类型为smallint*/sdeptchar(20)/*所在系*/2 / 12createtablecourse(cnochar(4)primarykey,/*列级完整性约束条件,cno是主码*/ cnamechar(40),cpnochar(4),/*cpno的含义是先行课*/ccreditsmallint,foreignkey(cpno)referencescourse(cno)/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/);3 / 12createtablesc(snochar(9),cnochar(4),gradesmallint,primarykey(sno,cno),/*主码有两个属性构成,必须作为表级完整性进行定义*/ foreignkey(sno)referencesstudent(sno),/*表级完整性约束条件,sno是外码,被参照表是student*/ foreignkey(cno)referencescourse(cno),4 / 12/*表级完整性约束条件,cno是外码,被参照表示course*/);例⑴createtables(cnovarchar(3),/*变长的字符串,输入2个字符就是两个字符不会补空格*/snamevarchar(20),statusint,cityvarchar(20),constraintpk_snoprimarykey(sno),/*约束条件的名字为pk_sno*/);5 / 12createtablep(pnovarchar(3),pnamevarchar(20),colorvarchar(3),weightint,constraintpk_pnoprimarykey(pno),/*约束条件的名字是pk_pno*/ );createtablej(jnovarchar(3),6 / 12jnamevarchar(20),cityvarchar(20),constraintpk_jnoprimarykey(jno)/*约束条件的名字为pk_jno*/ );例⑵createtablespj(snovarchar(3),/*第一个表中的主码*/pnovarchar(3),jnovarchar(3),qtyint,/*数量*/7 / 12constraintpk_spjprimarykey(sno,pno,jno),/*主码由3个属性组成*/foreignkey(sno)referencess(sno),/*表级完整性约束条件,sno是外码,被参照表是s*/foreignkey(pno)referencesp(pno),/*表级完整性约束条件,pno是外码,被参照表是p*/foreignkey(jno)referencesj(jno),/*表级完整性约束条件,jno是外码,被参照表是j*/);⑵数据表的更改在s表中添加一个concat列8 / 12altertablesaddconcatvarchar(20)在s表中删除concat列altertablesdropcolumnconcat更改s表concat列的属性把长度由20改为30 altertablesaltercolumnconcatvarchar(30)联络方式名字为concat修改属性为唯一的属性名为con_concat altertablesaddconstraintcon_concatunique(concat)删除约束关系con_concataltertablesdropconstraintcon_concat/*插入一个元组*/9 / 12insertintosvalus(‘s1’,’精益’,20,’天津’)/*20不能写成’20’*/试验中的问习题的排除与总结归纳:⑴在创建spj时有三个实体所以从3个实体中取主码,还有一个数量属性也要写上主码由那3个主码确定⑵更改一个数据库中数据表时一定要先使该数据库处于正在使用状态⑶constraint是可选关键字,表示primarykey、notnull、unique、foreignkey或check约束定义的开始。
数据库上机实验报告_0

数据库上机实验报告_0数据库上机实验报告数据库上机实验报告试验内容1、数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)2、数据表的修改添加删除列修改列属性类型添加删除约束(约束名)元组的添加,修改,删除删除数据表试验过程1、create table Student(Sno char(9) primary key , /*Sno是主码列级完整性约束条件*/Sname char(20) unique, /*Sname取唯一值*/Ssex char(2),Sage smallint, /*类型为smallint*/Sdept char(20) /*所在系*/);create table Course(Cno char(4) primary key, /*列级完整性约束条件,Cno是主码*/Cname char(40),Cpno char(4), /*Cpno的含义是先行课*/ Ccredit smallint,foreign key (Cpno) references Course(Cno)/*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/);create table SC(Sno char(9),Cno char(4),Grade smallint,primary key (Sno,Cno),/*主码有两个属性构成,必须作为表级完整性进行定义*/ foreign key (Sno) references Student(Sno),/*表级完整性约束条件,Sno是外码,被参照表是Student*/ foreign key (Cno) references Course(Cno),/*表级完整性约束条件,Cno是外码,被参照表示Course*/);例1、create table S(Cno varchar(3), /*变长的字符串,输入2个字符就是两个字符不会补空格*/Sname varchar(20),Status int,city varchar(20),constraint pk_sno Primary key(Sno), /*约束条件的名字为pk_sno*/ );create table P(Pno varchar(3),Pname varchar(20),Color varchar(3),Weight int,constraint pk_Pno Primary key (Pno), /*约束条件的名字是pk_Pno*/ );create table J(Jno varchar(3),Jname varchar(20),City varchar(20),constraint pk_Jno primary key(Jno) /*约束条件的名字为pk_Jno*/);例2、create table SPJ(Sno varchar(3), /*第一个表中的主码*/Pno varchar(3),Jno varchar(3),QTY int, /*数量*/Constraint pk_SPJ primary key(Sno,Pno,Jno), /*主码由3个属性组成*/foreign key(Sno) references S(Sno),/*表级完整性约束条件,Sno是外码,被参照表是S*/foreign key(Pno) references P(Pno),/*表级完整性约束条件,Pno是外码,被参照表是P*/foreign key(Jno) references J(Jno),/*表级完整性约束条件,Jno是外码,被参照表是J*/);2、数据表的更改在S表中添加一个concat 列alter table s add concat varchar(20)在S表中删除concat 列alter table s drop column concat更改s表concat列的属性把长度由20改为30alter table s alter column concat varchar(30)联系方式名字为concat 修改属性为唯一的属性名为Con_concatalter table s add constraint Con_concat Unique(concat)删除约束关系con_concatalter table s drop Constraint Con_Concat/*插入一个元组*/insert into s Valus(‘S1’,’精益’,20,’天津’) /*20不能写成’20’*/试验中的问题的排除与总结:1、在创建SPJ时有三个实体所以从3个实体中取主码,还有一个数量属性也要写上主码由那3个主码确定2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态3、CONSTRAINT是可选关键字,表示PRIMARY KEY、NOT NULL、UNIQUE、FOREIGN KEY 或CHECK 约束定义的开始。
精选数据库上机实验报告

数据库上机实验报告试验内容1、数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)2、数据表的修改添加删除列修改列属性类型添加删除约束(约束名)元组的添加,修改,删除删除数据表试验过程1、create table student(sno char(9) primary key ,sname char(20) unique,ssex char(2),sage smallint,sdept char(20));create table course(cno char(4) primary key,cname char(40),cpno char(4),ccredit smallint,foreign key (cpno) references course(cno) );create table sc(sno char(9),cno char(4),grade smallint,primary key (sno,cno),foreign key (sno) references student(sno), foreign key (cno) references course(cno), );例1、create table s(cno varchar(3),sname varchar(20),status int,city varchar(20),constraint pk_sno primary key(sno),);create table p(pno varchar(3),pname varchar(20),color varchar(3),weight int,constraint pk_pno primary key (pno),);create table j(jno varchar(3),jname varchar(20),city varchar(20),constraint pk_jno primary key(jno));例2、create table spj(sno varchar(3),pno varchar(3),jno varchar(3),qty int,constraint pk_spj primary key(sno,pno,jno), foreign key(sno) references s(sno),foreign key(pno) references p(pno),foreign key(jno) references j(jno),。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附录C 上机实验C.1 第4章上机实验下列实验均使用SQL Server 的SSMS工具实现。
1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A):●数据库名为:学生数据库●主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D:盘中无此文件夹,请先建立此文件夹,然后再创建数据库。
),初始大小为:5MB,增长方式为自动增长,每次增加1MB。
●日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大小为:2MB,增长方式为自动增长,每次增加10%。
2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。
(注:“说明”部分不作为表定义内容)3. 写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。
(1)在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。
(2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。
(3)将Course表中Credit列的类型改为:tinyint。
(4)删除Student表中的Sid和Sdate列。
(5)为Teacher表添加主键约束,其主键为:Tno。
C.2 第5章上机实验本实验均在SQL Server 的SSMS工具中实现。
首先在已创建的“学生数据库”中创建本章表5-1~5-3所示的Student、Course和SC表,并插入表5-4~5-6所示数据,然后编写实现如下操作的SQL语句,执行所写的语句,并查看执行结果。
1.查询SC表中的全部数据。
2.查询计算机系学生的姓名和年龄。
3.查询成绩在70~80分的学生的学号、课程号和成绩。
4.分别查询学生表和学生修课表中的全部数据。
5.查询计算机系的学生的姓名、年龄。
6.查询选修了c001课程的学生学号和该门课程成绩。
7.查询计算机系年龄在18到20之间且性别为'男'的学生的姓名、年龄。
8.查询0811101号学生的修课情况。
9.查询学生都选修了哪些课程,列出课程号,要求所列课程号不重复。
10.查询C001课程的最高分。
11.查询计算机系学生的最大年龄和最小年龄。
12.统计每个系的学生人数。
13.统计每门课程的选课人数和最高成绩。
14.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
15.列出总成绩超过200的学生的学号和总成绩。
16.查询选了c002课程的所有学生的平均成绩、最高成绩和最低成绩。
17.统计各系的修课学生总数和考试平均成绩。
18.查询选课门数超过2门的学生的平均成绩和选课门数。
19.查询选了C002课程的学生姓名和所在系。
20.查询考试成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。
21.查询与VB在同一学期开设的课程的课程名和开课学期。
22.查询与李勇年龄相同的学生的姓名、所在系和年龄。
23.查询哪些课程没有学生选修,列出课程号和课程名。
24.查询每个学生的选课情况,包括未选课的学生,列出学生的学号、姓名、选的课程号。
25.查询计算机系哪些学生没有选课,列出学生姓名。
26.查询计算机系年龄最大的三个学生的姓名和年龄。
27.列出“VB”课程考试成绩前三名的学生的学号、姓名、所在系和VB成绩。
28.查询选课门数最多的前2位学生,列出学号和选课门数。
29.查询计算机系学生姓名、年龄和年龄情况,其中年龄情况为:如果年龄小于18,则显示“偏小”;如果年龄在18-22,则显示“合适”;如果年龄大于22,则显示“偏大”。
30.统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”;如果此门课程的选课人数在40~100,则显示“一般”;如果此门课程的选课人数在1~40,则显示“人少”;如果此门课程没有人选,则显示“无人选”。
31.查询计算机系选了VB课程的学生姓名、所在系和考试成绩,并将结果保存到新表VB_Grade中。
32.统计每个系的女生人数,并将结果保存到新表Girls中。
33.用子查询实现如下查询:(1)查询选了“C001”课程的学生姓名和所在系。
(2)查询通信工程系成绩80分以上的学生的学号和姓名。
(3)查询计算机系考试成绩最高的学生的姓名。
(4)查询年龄最大的男生的姓名、所在系和年龄。
34.查询C001课程的考试成绩高于该课程平均成绩的学生的学号和成绩。
35.查询计算机系学生考试成绩高于计算机系学生平均成绩的学生的姓名、考试的课程名和考试成绩。
36.查询VB课程考试成绩高于VB平均成绩的学生姓名和VB成绩。
37.查询没选VB的学生姓名和所在系。
38.查询每个学期学分最高的课程信息,列出开课学期、课程名和学分。
39.查询每门课程考试成绩最高的学生信息,列出课程号、学生姓名和最高成绩,结果按课程号升序排序,不包括没考试的课程。
40.创建一个新表,表名为test,其结构为(COL1, COL 2, COL 3),其中,COL1:整型,允许空值。
COL2:普通编码定长字符型,长度为10,不允许空值。
COL3:普通编码定长字符型,长度为10,允许空值。
试写出按行插入如下数据的语句(空白处表示是空值)。
成绩插入到VB_Grade表中。
42.将所有选修C001课程的学生的成绩加10分。
43.将计算机系所有学生的“计算机文化学”的考试成绩加10分。
44.修改“VB”课程的考试成绩,如果是通信工程系的学生,则增加10分;如果是信息管理系的学生则增加5分,其他系的学生不加分。
45.删除成绩小于50分的学生的选课记录。
46.删除计算机系VB考试成绩不及格学生的VB选课记录。
47.删除“VB”考试成绩最低的学生的VB修课记录。
48.删除没人选的课程的基本信息。
下列实验均使用SQL Server 的SSMS工具实现。
利用第4章上机实验创建的“学生数据库”中Student、Course和SC表,完成下列实验。
1.写出实现下列操作的SQL语句,并执行所写代码。
(1)在Student表上为Sname列建立一个聚集索引,索引名为:IdxSno。
(提示:若执行创建索引的代码,请先删除该表的主键约束)(2)在Course表上为Cname列建立一个唯一的非聚集索引,索引名为:IdxCN(3)在SC表上为Sno和Cno建立一个组合的聚集索引,索引名为:IdxSnoCno。
(提示:若执行创建索引的代码,请先删除该表的主键约束)(4)删除Sname列上建立的IdxSno索引。
2.写出创建满足下述要求的视图的SQL语句,并执行所写代码。
(1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。
(2)查询学生的学号、姓名、选修的课程名和考试成绩。
(3)统计每个学生的选课门数,要求列出学生学号和选课门数。
(4)统计每个学生的修课总学分,要求列出学生学号和总学分(说明:考试成绩大于等于60才可获得此门课程的学分)。
3.利用第2题建立的视图,完成如下查询。
(1)查询考试成绩大于等于90分的学生的姓名、课程名和成绩。
(2)查询选课门数超过3门的学生的学号和选课门数。
(3)查询计算机系选课门数超过3门的学生的姓名和选课门数。
(4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。
(5)查询年龄大于等于20岁的学生中,修课总学分超过10分的学生的姓名、年龄、所在系和修课总学分。
4.修改第3题(4)定义的视图,使其查询每个学生的学号、总学分以及总的选课门数。
C.4 第7章上机实验利用第5章建立的学生数据库以及Student、Coures和SC表,完成下列操作。
1.创建满足如下要求的后触发型触发器。
(1)限制学生的考试成绩必须在0-100之间。
(2)限制不能删除成绩不及格的考试记录。
(3)限制每个学期开设的课程总学分不能超过20。
(4)限制每个学生每学期选的课程不能超过5门。
2.创建满足如下要求的存储过程。
(1)查询每个学生的修课总学分,要求列出学生学号及总学分。
(2)查询学生的学号、姓名、修的课程号、课程名、课程学分,将学生所在的系作为输入参数,执行此存储过程,并分别指定一些不同的输入参数值。
(3)查询指定系的男生人数,其中系为输入参数,人数为输出参数。
(4)删除指定学生的修课记录,其中学号为输入参数。
(5)修改指定课程的开课学期。
输入参数为:课程号和修改后的开课学期。
利用第4、5章建立的学生数据库和其中的Student、Course、SC表,并利用SSMS工具完成下列操作。
1.用SSMS工具建立SQL Server身份验证模式的登录名:log1、log2和log3。
2.用log1建立一个新的数据库引擎查询,在“可用数据库”下列列表框中是否能选中学生数据库?为什么?3.用系统管理员身份建立一个新的数据库引擎查询,将log1、log2和log3映射为学生数据库中的用户,用户名同登录名。
4.在log1建立的数据库引擎查询中,现在在“可用数据库”下列列表框中是否能选中学生数据库?为什么?5.在log1建立的数据库引擎查询中,选中学生数据库,执行下述语句,能否成功?为什么?SELECT * FROM Course6.在系统管理员的数据库引擎查询中,执行合适的授权语句,授予log1具有对Course表的查询权限,授予log2具有对Course表的插入权限。
7.用log2建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?INSERT INTO Course VALUES('C1001','数据库基础',4,5)再执行下述语句,能否成功?为什么?SELECT * FROM Course8.在log1建立的数据库引擎查询中,再次执行下述语句:SELECT * FROM Course这次能否成功?但如果执行下述语句:INSERT INTO Course VALUES('C103', '软件工程', 4, 5)能否成功?为什么?9.log3建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?CREATE TABLE NewTable(C1 int,C2 char(4))10.授予log3在学生数据库中具有创建表的权限。
11.在系统管理员的数据库引擎查询中,执行下述语句:G RANT CREATE TABLE TO log3G OC REATE SCHEMA log3 AUTHORIZATION log3G OA LTER USER log3 WITH DEFAULT_SCHEMA = log312.在log3建立一个新的数据库引擎查询中,再次执行第9题的语句,能否成功?为什么?如果执行下述语句:SELECT * NewTable能否成功?为什么?。