附录C 数据库上机实验
- 格式:doc
- 大小:296.00 KB
- 文档页数:23
数据库上机实验报告一、实验目的。
本次数据库上机实验的主要目的是帮助学生熟悉数据库的基本操作和SQL语句的使用,通过实际操作加深对数据库管理系统的理解,提高学生的实际操作能力和解决问题的能力。
二、实验环境。
本次实验使用的数据库管理系统为MySQL,操作系统为Windows 10。
实验中使用的工具包括MySQL Workbench和命令行工具。
实验中使用的数据库为一个包含学生信息、课程信息和成绩信息的简单数据库。
三、实验内容。
1. 创建数据库和表格。
首先,我们使用SQL语句在MySQL中创建一个名为“student”的数据库,并在该数据库中创建三个表格:student、course和score。
表格的结构如下:student表格包括学生的学号、姓名和性别信息;course表格包括课程的编号、名称和学分信息;score表格包括学生的学号、课程的编号和成绩信息。
2. 插入数据。
接下来,我们使用SQL语句向创建好的表格中插入一些示例数据,以便后续的操作和查询。
我们插入了一些学生、课程和成绩的信息,以便后续的查询和操作。
3. 查询操作。
在插入数据之后,我们进行了一系列的查询操作,包括简单的SELECT查询、带有条件的查询、多表连接查询等。
通过这些查询操作,我们可以对数据库中的数据进行检索和分析,了解数据库中数据的结构和关联关系。
4. 更新操作。
除了查询操作,我们还进行了一些更新操作,包括UPDATE语句和DELETE语句。
通过这些更新操作,我们可以对数据库中的数据进行修改和删除,保持数据的一致性和准确性。
5. 索引和视图。
最后,我们学习了如何在数据库中创建索引和视图,以提高数据库的查询性能和数据的可视化展示。
四、实验总结。
通过本次数据库上机实验,我们对数据库的基本操作和SQL语句的使用有了更深入的了解和掌握。
我们学会了如何创建数据库和表格,如何插入和查询数据,以及如何进行更新操作和创建索引和视图。
这些知识和技能对我们日后的数据库管理和应用开发都将有很大的帮助。
数据库系统原理上机实验预备知识一、本实验指导书采用的数据库例子(见本课程参考用书《数据库系统概论》(第三版)P59) Student-Course-SC数据库:一个学生可以修多门课程,一门课程可以被多个学生选修,则学生、课程之间的E-R图如下:转化为关系数据模型:Student(Sno, Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)物理数据模型如下:索引:对表Course中的字段Ccredit创建降序索引,索引名为IX_Course_Ccredit;检查约束:对表Student中的字段Sno创建检查约束LEN(Sno)>4,约束名为CK_Student_Sno;图表:建立名为“SC_Diagrame1”的图表,反映“SC”、“Student”、“Course”三张表间的备份和维护计划:为自己所建立的数据库创建备份和维护计划。
二、实验过程中,除了通过实验讲义中的练习熟悉SQL Server2000系统外,同学们必须完成一个数据库应用系统的大作业,题目为“简单的学生选课系统”,编程语言自选,但后台数据库必须采用SQL Server2000。
三、安排的实验总课时为16(不包括编程),实验一至实验四均为2课时,实验五为8课时。
实验一开始使用SQL Server2000一、实验目的1、学会安装SQL Server 2000系统:2、掌握Enterprise Manager的基本用法,熟悉SQL Server 2000环境;3、掌握使用Enterprise Manager创建数据库、表、索引、关系、检查约束、数据库图表以及管理SQL Server的方法。
二、实验内容l、安装SQL Server 2000系统(示例:在Windows2000 Professional上安装SQL Server 2000(个人版)2、启动Enterprise Manager,浏览分层结构3、创建数据库4、创建表5、创建索引6、创建关系7、创建检查约束8、刨建数据库图表9、管理SQL Server三、实验步骤l、在Windows2000 Professional上安装SQL Server 2000个人版请看这部分的演示SQL Server 2000 setup2、启动Enterprise Manager,浏览分层结构在启动Enterprise Manager之前,检查服务管理器,确保服务器正在运行;现在,选择“开始/程序/Microsoft SQL Server/企业管理器(Enterprise Manager)”,这时,将出现Enterprise Manager窗口;Enterprise Manager窗口又被分为两个大的窗格,在左边的窗格——树(Console Tree)中,以分层结构显示了Enterprise Manager所能识别的所有SQL Server对象,可以通过单击“展开”图标展开分层结构中的项目(当然,也可以通过双击该项目完成这个功能),相应地,可以通过单击“折叠”图标折叠分层结构中的项目,浏览SQL Server对象;注意:当单击或双击某个项目时,它所包含的子项目还将显示在右边的大窗格中;在左边的窗格——树(Console Tree)中,找到“数据库”,展开该对象,其中,“master”、“model”、“msdn”、“tempdb”为“系统数据库”,注意:只许看,不许动!展开除系统数据库以外的其它数据库,浏览数据库对象。
数据库原理实验指导书实验1 数据库模式设计及建立一、实验目的:(1)掌握数据库模式设计,依据实际要求设计表结构,建立表的关系; 比较SQL命令方式和可视化环境管理器方式设计的异同点。
(2)掌握SQL Server查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。
熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二、实验内容:1、分别用sql查询分析器和企业管理器创建表,并设定相应的约束。
要求:在学生管理数据库XSGL中创建如下三个表。
创建名为student(学生信息)的表,表中的各列要求如下:2、创建score –>student表,以及score –>course表的外部键。
3、增加、修改和删除字段,要求:1) 给student表增加一个memo(备注)字段,类型为varchar(200)。
2) 将memo字段的类型修改为varchar(300)。
3) 删除memo 字段。
4、简单查询操作。
该实验包括投影、选择条件表达,数据排序,使用临时表等。
具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数据查询操作。
1)求数学系学生的学号和姓名2)求选修了课程的学生学号3)求选修课程号为‘C1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。
use student;select Student.Sno,Gradefrom SC,Studentwhere Cno='3' and SC.Sno=Student.Snoorder by Grade asc ,student.Sno desc4)求选修课程号为‘3’且成绩在80~90之间的学生学号和成绩,并成绩乘以0.8输出。
use student;select distinct Student.Sno,Grade*0.8from SC,Studentwhere Cno='3' and student.Sno=SC.Sno andgrade>80 and grade<905)求数学系或计算机系姓张的学生的信息。
数据库上机实验报告试验内容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)熟悉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设为主键。
Access数据库上机实验报告陶瓷公司管理信息系统项目1 实验目的1.了解信息系统开发的主要过程,体会在系统开发中系统实施的主要步骤。
2.掌握使用Access的表、查询、窗体、报表等工具开发一个小型信息系统的主要方法。
3.通过此系统开发实践,理解数据库的基础知识,软件开发工具的知识以及管理信息系统得知识,了解如何将它们融会贯通。
同时通过实践培养学生综合运用知识和开发应用系统的能力。
2 实验内容1、以“陶瓷公司管理信息系统”的名称创建数据库。
2、根据给定的字段信息,创建散件表、套件表、陶瓷组成表、制造商表。
3、录入数据根据给定的excel文件,利用导入功能将数据导入到相应的表中。
4、建立查询先建立散件表与制造商表的中相同字段“制造商编号”对应关系。
通过向导完成制造商散件库存量查询。
5、开发报表使用报表向导设计报表,通过添加散件成本、散件出售价格、散件编号、散件名称、库存、制造商名称完成字段分组。
6、窗体设计通过窗体设计向导,绘制界面,并定义功能键的操作功能。
添加文本框,并定义数据源,完成表的数据关联,定义好查询、添加等按钮的功能。
3 实验结果实验总结在短暂的学习中设计视图,Aceess简单查询向导,交叉表查询向导,引入数据等操作。
学习数据库的过程中感觉跟学习其他课程一样,也有丰富的知识。
查询的创建共有五种创建查询的方法,习惯采用的是设计查询和向导的查询。
设置查询方面的知识:添加表/查询,更改表或查询间的关系,删除表/查询。
设置查询结果的排序,设置字段的显示属性等等。
感谢这次教学实验,使我对数据库有了更深的了解,希望在以后的学习中,数据库的运用可以对我有更大的帮助。
数据库实验报告(所有实验)院系:信息科学与工程学院专业:网络工程电子商务班级:姓名:学号:指导老师:年月日一、实验目的熟练掌握SQL语句的插入、修改、删除、查询等相关语法。
能够使用Microsoft SQL Server和MySQL软件进行相关的数据库操作。
二、实验内容1数据库的创建和使用;2表的创建和使用;3数据的插入、删除和修改;4数据的查询;5.视图的创建和使用。
实验一、创建学生成绩管理数据库在学生成绩管理数据库中,包括基本的三个关系:student,course,sc 。
(1)student(sno,sname,ssex,sage,sdept),表示学号,姓名,性别,年龄,所在系。
主键学号,姓名唯一,系默认cs。
(2)Course (cno,cname,cpno,ccredit),表示课程号,课程名,先行课程号,学分。
主键课程号(3)SC (sno,cno,grade),表示学号,课程号,成绩。
外键,学号和课程号。
创建该数据库代码及其最后结果图如下:create table student(sno char(20) primary key,sname char(10) unique,ssex char(2),sage smallint,sdept char(12) default'cs')create table course(cno char(10) primary key,cname char(20),cpno char(10),ccredit char(6))create table sc(sno char(20),cno char(10),grade smallint,primary key(sno,cno),foreign key(sno) references student(sno), foreign key(cno) references course(cno))实验二、在实验一的结果上进行各种操作练习及其代码一修改表结构,对学生表增加,电话号码一列,删除年龄一列。
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
数据库上机实验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、完成实验报告。
数据库上机实验报告总结
本次数据库上机实验主要是学习和练习 SQL 语句的应用,以及实现数据的增删改查等操作。
通过实验,我深刻理解到数据库在现代信息系统中的重要性,同时也加深了对SQL 语言的认识和理解。
实验一:建立数据库和数据表
在此实验中,我们学会了如何使用 SQL 创建数据库和数据表,并加深了对 SQL 语言的理解。
此外还学会了如何定义主键、外键、约束和索引等。
实验二:数据查询操作
在此实验中,我们学会了如何使用基本的 SELECT 语句实现数据查询的功能,如使用WHERE 子句和 ORDER BY 子句来筛选和排序数据。
综上所述,通过本次上机实验,我深刻认识到数据库在现代信息系统中的重要性,并加深了对 SQL 语言的理解和应用。
此外,还学会了如何使用事务来保障数据的完整性和一致性,这对我今后的工作和学习都是非常有帮助的。
同时,通过实践,我也掌握了实际应用中的操作技巧和实现方法,这对我今后的实际工作也会有所帮助。
数据库上机实验报告数据库上机实验报告试验内容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),。
《数据库系统上机报告》 学籍管理系统
学 号: 03124021 姓 名: 王 冰 班 级: 1303041 指导老师: 赵 亮 主要上机内容 1. 数据库的创建: 我使用自行创建数据库的方式进行创建,数据库文件名为学生信息管理系统。数据库要实现的主要功能:学生基本信息及学习成绩情况的统计,通过窗体进行学生信息的查询、学生信息及成绩的普通查询、打印学生信息报表等。
2. 表的创建: 学生信息表结构:
在学生信息表中设置了学号为主键,为了方便输入又在学号字段中设置了掩码(如下图) 学生年龄一般不会太大或太小,于是为了防止填写信息时出错,添加了有效性规则
性别只有男和女之分,于是为了方便,选择了查询向导 同样在入学日期和电话字段也设置了输入掩码 头像属于图片类型,其数据类型为“OLE对象”,所得荣誉和自我介绍选择了“备注”类型。
学生成绩表记录和结构: 教师信息表记录和结构:
课程信息表: 建立表间关系:
3. 查询的创建: 创建查询从学生信息表中查找数据,使用查询设计器创建,保存为“学生信息组合模糊查询”。功能是通过学生的性别和姓名快速查找学生信息。
查询结果以表格的形式输出。 4. 窗体的创建: 在“学生课程窗体”中引入“列表框”控件
5. 报表的创建 通过“使用向导创建报表”可以既方便又简洁的创建所需报表。报表的创建方法基本与窗体的创建相同。通过不同类型的报表形式的创建可以打印出既方便观看又美观的报表。
学生信息报表 学生成绩报表 课程信息报表 学生的选修课表报表
6. 宏的创建 使用宏可以提高数据库的使用效率,简化数据库的操作。它是Access专门提供的一种可以控制其他数据库对象,自动执行某种操作任务的数据库对象。
在主窗体中使用了多个宏命令,使得窗体更为便捷美观。 首先,在打开时使用了“宏1”命令 “宏1”的使用效果 在打窗体时,会听到“滴”的一声,弹出一个对话框
“宏2”是一个和“宏1”一样也是弹出一个对话框 “宏4”选择类的提示,可以选择“确定”也可以选择“取消” “口令验证使用的宏”用于输入密码登陆,要使这个宏命令运行要先创建口令验证窗体 这个宏命令的功能是只有知道口令的人才能查看学生信息管理系统窗体。
实验一:建立数据库及基本表一、实验目的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。
二、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器工具的使用方法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1) 使用企业管理器建立图书管理数据库,数据库名为BM,初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名和物理文件名均采用默认值。
详细步骤:(2) 在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。
(3) 通过企业管理器,在建好了图书管理数据库BM中建立图书(book)、读者(reader)和借阅(borrow)3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅日期)。
三个表各个字段的数据类型:(4) 利用企业管理器向表中输入数据。
2、在查询分析器中创建数据库和数据表(1) 创建数据库S-C 的sql语句:create database s_c(2) 在数据库S-C下,创建基本表学生表student(sno,sname,ssex,sage,sdept)的sql语句:create table student( sno c(8),sname c(10),ssex c(2),sage(4),sdept c(8) )创建基本表课程表course(cno,cname, ccredit)的sql语句:create table course( cno c(4),cname c(10),ccredit c(2) )创建基本表成绩表sc(sno,cno,grade)的sql语句:create table sc( sno c(8),cno c(4),grade n(4) )(3) 在窗口下分别键入DROP TABLE Student及DROP TABLE SC命令,运行后观察结果。
数据库上机实验报告数据库上机实验报告试验内容1、数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)2、数据表的修改添加删除列修改列属性类型添加删除约束(约束名)元组的添加,修改,删除删除数据表试验过程1、create table studentsno char(9) primary key , /*sno是主码列级完整性约束条件*/sname char(20) unique, /*sname取唯一值*/ssex char(2),sage smallint, /*类型为smallint*/sdept char(20) /*所在系*/create table coursecno 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 scsno 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 scno varchar(3), /*变长的字符串,输入2个字符就是两个字符不会补空格*/sname varchar(20),status int,city varchar(20),constraint pk_sno primary key(sno), /*约束条件的名字为pk_sno*/create table ppno varchar(3),pname varchar(20),color varchar(3),weight int,constraint pk_pno primary key (pno), /*约束条件的名字是pk_pno*/create table jjno varchar(3),jname varchar(20),city varchar(20),constraint pk_jno primary key(jno) /*约束条件的名字为pk_jno*/例2、create table spjsno 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/*插入一个元组*/ins ert 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、createtabletudent(nochar(9)primarykey,/某no是主码列级完整性约束条件某/ namechar(20)unique,/某name取唯一值某/e某char(2),agemallint,/某类型为mallint某/deptchar(20)/某所在系某/);createtablecoure(cnochar(4)primarykey,/某列级完整性约束条件,cno是主码某/cnamechar(40),cpnochar(4),/某cpno的含义是先行课某/ccreditmallint,foreignkey(cpno)referencecoure(cno)/某表级完整性约束条件,cpno是外码,被参照表是coure,被参照列是cno某/);createtablec(nochar(9),cnochar(4),grademallint,primarykey(no,cno),/某主码有两个属性构成,必须作为表级完整性进行定义某/ foreignkey(no)referencetudent(no),/某表级完整性约束条件,no是外码,被参照表是tudent某/ foreignkey(cno)referencecoure(cno),/某表级完整性约束条件,cno是外码,被参照表示coure某/);例1、createtable(cnovarchar(3),/某变长的字符串,输入2个字符就是两个字符不会补空格某/ namevarchar(20),tatuint,cityvarchar(20),);createtablep(pnovarchar(3),pnamevarchar(20),colorvarchar(3),weightint,contraintpk_pnoprimarykey(pno),/某约束条件的名字是pk_pno某/ );createtablej(jnovarchar(3),jnamevarchar(20),cityvarchar(20),);例2、createtablepj(novarchar(3),/某第一个表中的主码某/pnovarchar(3),jnovarchar(3),qtyint,/某数量某/contraintpk_pjprimarykey(no,pno,jno),/某主码由3个属性组成某/foreignkey(no)reference(no),/某表级完整性约束条件,no是外码,被参照表是某/foreignkey(pno)referencep(pno),/某表级完整性约束条件,pno是外码,被参照表是p某/foreignkey(jno)referencej(jno),/某表级完整性约束条件,jno是外码,被参照表是j某/);2、数据表的更改在表中添加一个concat列altertableaddconcatvarchar(20)在表中删除concat列altertabledropcolumnconcat更改表concat列的属性把长度由20改为30altertablealtercolumnconcatvarchar(30)altertableaddcontraintcon_concatunique(concat)删除约束关系con_concataltertabledropcontraintcon_concat/某插入一个元组某/inertintova lu(‘1’,’精益’,20,’天津’)/某20不能写成’20’某/试验中的问题的排除与总结:1、在创建pj时有三个实体所以从3个实体中取主码,还有一个数量属性也要写上主码由那3个主码确定2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态3、contraint是可选关键字,表示primarykey、notnull、unique、foreignkey或check约束定义的开始。
实验四:T-SQL语句及存储过程徐瑞福 20082603 信管1班1. 实验特点:类型:验证类别:专业基础计划学时:4学时每组人数:1人2. 实验目的与要求:1)掌握 T-SQL语句的基本语法格式,熟练使用查询语句,熟练使用流程控制语句2)掌握在查询分析器中创建存储过程,掌握利用企业管理器创建用户存储过程3. 主要仪器设备:安装SQL Server 2000中文版的微型计算机。
4. 实验内容提要:1)变量的定义、赋值、输出2) IF…..ELSE 语句3)WHILE 语句4)常用系统标量函数和用户定义函数5)游标的使用6)存储过程的创建、调用、删除7)触发器的创建、执行、删除8)数据库完整性中默认值、规则对象的创建、绑定、删除完成包含以上内容的课上例题及补充作业题5. 上机操作要点:上机前要认真阅读教材的有关例题,要将上机操作的语句事先写在提纲上。
6. 注意事项:操作命令在查询分析器中完成,注意保存SQL文件,上机结束时一定要将数据库和表与系统有效“分离”后,才能存盘带走。
T-SQL查询、存储过程、触发器、完整性上机作业题第一部分:T-SQL程序设计(1).如果3号课程的平均成绩在80分以上,则输出“3号课程成绩良好”,否则输出“3号成绩一般”declare @avg float set @avg=(select avg(grade)from sc where cno='3')if @avg>80print'3号课程成绩良好'else print'3号成绩一般'(2)计算并输出95003号学生的平均成绩,若无该生信息,则显示“该生未选课”,提示信息.declare @avg float if(select count(*)from sc where sno='95003')=0 print '该生未选课' else begin select @avg=avg(grade)from sc where sno='95003' print'95003号学生平均成绩' print @avg end(3).如果有成绩在90分以上的学生,则显示他的学号,课程和成绩,否则显示“没有学生的课程成绩在90分以上”提示信息declare @text char(10) if exists(select grade from SC where grade>90)select Sno,Cno,Grade from SC where Grade>90 else begin set @text='没有学生的课程成绩在90分以上' print @text end(4).利用游标逐行显示student表中的记录。
. Word 文档 附录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-1 Student表结构 列名 说明 数据类型 约束 Sno 学号 普通编码定长字符串,长度为7 主键 Sname 普通编码定长字符串,长度为10 非空 Ssex 性别 普通编码定长字符串,长度为2 取值围:{男,女} Sage 年龄 微整型(tinyint) 取值围:15-45 Sdept 所在系 普通编码不定长字符串,长度为20 默认值为“计算机系” Sid 号 普通编码定长字符串,长度为10 取值不重 Sdate 入学日期 日期 默认为系统当前日期
表C-2 Course表结构 列名 说明 数据类型 约束 Cno 课程号 普通编码定长字符串,长度为10 主键 Cname 课程名 普通编码不定长字符串,长度为20 非空 Credit 学时数 整型 取值大于0 Semester 学分 小整型
表C-3 SC表结构 列名 说明 数据类型 约束 Sno 学号 普通编码定长字符串,长度为7 主键,引用Student的外键 Cno 课程号 普通编码定长字符串,长度为10 主键,引用Course的外键 Grade 成绩 小整型 取值围为0-100 . Word 文档 表C-4 Teacher表结构 列名 说明 数据类型 约束 Tno 教师号 普通编码定长字符串,长度为8 非空 Tname 教师名 普通编码定长字符串,长度为10 非空 Salary 工资 定点小数,小数点前4位,小数点后2位
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 TINYINT ALTER TABLE Course ADD CONSTRAINT Credit CHECK (Credit>0) (4) 删除Student表中的Sid和Sdate列。 注意:这里首先需要先删除约束
ALTER TABLE Student DROP CONSTRAINT
UQ__Student__CA1E5D79B3204FCF ALTER TABLE Student DROP CONSTRAINT DF__Student__Sdate__3B75D760 ALTER TABLE Student DROP COLUMN Sdate,Sid (5) 为Teacher表添加主键约束,其主键为:Tno。 ALTER TABLE Teacher ADD PRIMARY KEY(Tno) ※建立数据库主要文件和日志文件 . Word 文档 ※我们可以看到D盘增加了主要数据文件.mdf和日志文件.ldf ※给students_data建立表格 create table Student( Sno char(7), Sname char(10) not null, Ssex char(2) check( Ssex='男' or Ssex='女' ) , Sage tinyint check(Sage >14 AND Sage<46), Sdept varchar(20) default '计算机系', Sid char(10) unique,--号 Sdate date default getdate() primary key(Sno) ) create table Course( Cno char(10) primary key, Cname varchar(20) not null, Credit int check (Credit>0), Semester tinyint, ) create table SC( Sno char(7), Cno char(10), . Word 文档 Grade tinyint check( Grade>=0 AND Grade<=100) foreign key(Sno) references Student(Sno), foreign key(Cno) references Course(Cno) )
create table Teacher( Tno char(8) not null, Tname char(10) not null, Salary decimal(6,2) )
C.2 第5章上机实验 本实验均在SQL Server 的SSMS工具中实现。首先在已创建的“学生数据库”中创建本章表5-1~5-3所示的Student、Course和SC表,并插入表5-4~5-6所示数据,然后编写实现如下操作的SQL语句,执行所写的语句,并查看执行结果。 有关建表及所需要的数据,见本章末尾 1. 查询SC表中的全部数据。
SELECT * FROM SC
2. 查询计算机系学生的和年龄。 SELECT Sname, Sage FROM Student WHERE Sdept='计算机系'
3. 查询成绩在70~80分的学生的学号、课程号和成绩。 SELECT Sno,Cno,Grade FROM SC WHERE Grade between 70 AND 80
4. 查询计算机系年龄在18~20岁的男生和年龄。 SELECT Sname,Sage FROM Student WHERE Sdept='计算机系' AND Sage
BETWEEN 18 AND 20 AND Ssex='男'
5. 查询C001课程的最高分。 SELECT MAX(grade) AS 最高成绩 FROM SC WHERE Cno='C001' . Word 文档 6. 查询计算机系学生的最大年龄和最小年龄。 SELECT MAX(Sage) AS 年长,MIN(Sage) AS 年幼 FROM Student WHERE
Sdept='计算机系'
7. 统计每个系的学生人数。 SELECT Sdept,COUNT(Sno) AS 人数 FROM Student GROUP BY Sdept
8. 统计每门课程的选课人数和最高成绩。 SELECT Cno,COUNT(Sno) AS 人数,MAX(Grade) AS 最高成绩 FROM SC
GROUP BY Cno
9. 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。 SELECT Sno,COUNT(Cno) AS 选课数量,SUM(Grade) AS 考试总成绩 FROM
SC GROUP BY Sno
10. 列出总成绩超过200的学生的学号和总成绩。 SELECT Sno,SUM(Grade) AS 考试总成绩 FROM SC GROUP BY Sno HAVING
SUM(Grade)>200
11. 查询选了C002课程的学生和所在系。 SELECT Sname,Sdept FROM Student st,SC sc WHERE st.Sno=sc.Sno AND
Cno='C002' 或者 SELECT Sname,Sdept FROM Student WHERE Sno IN(SELECT Sno FROM SC . Word 文档 WHERE Cno='C002') 或者 SELECT Sname,Sdept FROM Student WHERE EXISTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno = 'C002')
12. 查询考试成绩80分以上的学生、课程号和成绩,并按成绩降序排列结果。 SELECT Sname,Cno,Grade FROM Student,SC WHERE Student.Sno=SC.Sno
AND Grade>80 ORDER BY Grade DESC
13. 查询与VB在同一学期开设的课程的课程名和开课学期。 SELECT c2.Cname,c2.Semester FROM Course c1,Course c2
WHERE c1.Cname=c2.Cname AND c1.Cname='VB' AND c2.Cname!='VB'
14. 查询与勇年龄相同的学生的、所在系和年龄。 SELECT s2.Sname,s2.Sdept,s2.Sage FROM Student s1,Student s2
WHERE s1.Sage=s2.Sage AND s1.Sname='勇' AND s2.Sname!='勇' 或者 SELECT Sname,Sdept,Sage FROM Student WHERE Sage=(SELECT Sage FROM Student WHERE Sname='勇') AND Sname!='勇'
15. 查询哪些课程没有学生选修,列出课程号和课程名。 SELECT Course.Cno,Course.Cname FROM Course LEFT JOIN SC on