数据库程序设计 实验二
VisualFoxPro数据库及程序设计基础实验指导第二版课程设计 (2)
VisualFoxPro数据库及程序设计基础实验指导第二版课程设
计
一、实验目的
本实验旨在通过学生的实际操作,使其对VisualFoxPro数据库及程序设计基础有一个清晰的认识,掌握VisualFoxPro数据库和程序设计的基本操作,能够进行VisualFoxPro数据库应用程序的设计和开发。
二、实验内容
本实验内容包括以下五个部分:
1. VisualFoxPro数据库的基本操作
1.创建数据库及表格
2.插入、修改、删除记录
3.查询、排序、过滤数据
4.外键、索引、约束
5.数据库备份与恢复
2. VisualFoxPro程序设计的基本操作
1.窗体和控件的使用
2.编写代码
3.调试程序
4.打包发布
3. 实验环境搭建
1.下载VisualFoxPro安装文件
2.安装VisualFoxPro
1。
数据库实验二
数据库实验二集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)实验报告册2014 / 2015 学年第2 学期系别计算机科学与技术系实验课程数据库原理专业计算机科学与技术班级姓名学号指导教师实验二——SQL语句一、实验目的1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能理解空值的处理;2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操作;3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;二、实验预习内容在认真阅读教材及实验指导书【实验1.2 数据查询】、【实验1.3 数据更新】、【实验1.4 视图】和【实验1.6 空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1.使用SCHOOL数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下操作。
请在空白处填写相应的SQL命令。
1)查询年级为2001的所有学生的名称,按编号顺序排列;2)查询所有课程名称中含有data的课程编号;3)统计所有老师的平均工资;4)查询至少选了3门课的学生编号;5)6)查询没有学生选的课程编号;7)查询既选了C++又选了Java课程的学生编号;8)查询选了C++但没选Java课程的学生编号;9)向STUDENTS表中插入“LiMing”的个人信息);10)将“LiMing”的年级改为2002;11)删除所有选了Java课程的学生选课记录;12)求出每门课的课程号、选课人数,结果存入数据库表T1中。
13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);14)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结果中NULL的情况);15)按成绩顺序排序显示CHOICES表中所有记录。
数据库实验二
实验二表的连接和嵌套查询实验一、实验目的1、熟练掌握SQL Server查询编辑器的使用方法,加深对SQL和Transact-SQL语言查询语句的理解。
2、掌握多表的连接查询与嵌套查询语句的正确写法和实验操作方法。
二、实验内容1、基于实验一建立的“图书读者数据库”(Book_Reader_DB),输入部分虚拟数据;假定实验一的实验后的结果数据库的关系模式如下:图书(书号,类别,出版社,作者,书名,定价,数量,购买日期,备注)读者(编号,姓名,单位,性别,电话)借阅(书号,读者编号,借阅日期,还书日期)2、打开查询编辑器,并建立与服务器的连接,在数据库对象下拉框中选择“Book_Reader_DB”,在查询编辑器输入区中输入Transact-SQL语句,然后点击“查询”菜单中的“执行”菜单项,执行输入区的Transact-SQL语句,如下图所示;3、用连接查询或嵌套查询的方法实现下列查询在“图书读者数据库”(Book_Reader_DB)中,用连接查询的方法完成下列查询任务:①查询借阅了类别为“环境”类图书的所有读者编号、姓名及单位;②查询借阅过图书的读者编号、姓名及单位;③查询姓名为“李明”的读者目前借阅的图书书号和书名;④查询没有借阅过图书的所有读者姓名;⑤查询借出次数超过10次的所有图书的书号和书名;⑥查询除已还的书以外,目前借了5本或以上图书的读者编号和姓名;上述每项实验内容相应的实验步骤必须进行详细的记录,并将其整理后写在实验报告中。
三、实验环境与实验准备工作实验环境:Microsoft Windows 2000操作系统,Microsoft SQL Server 2005数据库管理系统标准版或企业版。
实验准备工作:在开始本实验之前,请回顾教科书的相关内容(表的连接查询与嵌套查询语句的原理与语句格式)。
四、实验报告要求1、根据实验内容和每一步骤实验的结果,按课程实验报告的撰写规范完成实验报告。
数据库实验报告 数据库设计(二)
沈阳工程学院学生实验报告(课程名称:数据库系统原理)实验题目:数据库设计(二)班级学号姓名日期地点指导教师一、实验目的熟练掌握数据库应用程序中连接数据库的步骤和方法。
二、实验环境安装某一编程语言的微机。
三、实验内容与要求利用实验七设计的数据库编写一简单的数据库应用软件,掌握数据库应用软件的简单编程方法。
具体步骤如下:(1)创建数据源。
(2)利用VB或PB等连接数据库,实现更新和查询数据库中数据的功能。
四、实验过程及结果分析1.利用实验七Oracle9i创建Oracle10g的连接方法,创建连接。
2.创建odbc源。
开始菜单->控制面板->管理工具->数据源(ODBC),如图9.1所示:图9.1 创建odbc数据源3.启动powerbuilder,进入powerbuilder的工作环境,如图9.2所示:图9.2 进入powerbuilder的工作环境4.创建工作空间,单击图9.3 创建工作空间5.创建目标,单击,选择“Target”选项卡,如图9.4所示:图9.4 创建目标6.创建窗口。
单击,选择“PB Object”选项卡图9.5 创建窗口6.编写应用脚本。
获取数据库描述文件语句,单击,如图9.6所示:选择“Preview”选项卡,见如下代码,如图:将代码copy到应用“xgc”的open事件的脚本窗口中(双击应用“xgc”,可以打开脚本窗口)。
并添加连接数据库和打开窗口的代码:编写应用“xgc”的close事件代码:图9.6 编写应用“xgc”的open和close事件代码7.组织主窗体。
利用下拉窗口工具组织主窗体,如图9.7所示:图9.7 组织主窗体8.创建数据窗体。
单击,选择“DataWindow”选项卡,选择“Grid”,如图9.8所示:图9.8 创建数据窗体9.将主窗口和数据窗口关联。
在主窗体中单击数据窗口控件,在General选项卡中对“DataObject”进行选择,加载数据对象,如图9.9所示:图9.9 主窗口和数据窗口关联10.添加窗体open事件。
《数据库实验》实验二 数据操作实验
院系:计算机学院实验课程:数据库实验实验项目:数据操作实验指导老师:XXX开课时间:XXXX ~ XXXX年度第 2学期专业:XXXX班级:XXXX级本X班学生:XXX学号:XXXXXXXX实验二数据操作实验一、实验任务及目的1. 实验任务:上机完成实验内容,主要是编写、运行和分析SQL,请预先自行判断SQL 的运行结果(例如:查询结果包含哪些数据;更新后关系数据如何变化),然后与实际的运行结果比较,以此发现和修正SQL编写中的错误。
2. 实验目的:能够熟练使用MS SQL Server的Query Analyzer工具,联机运行SQL并观察分析SQL的执行结果。
掌握SQL的数据定义、数据查询和数据修改功能,能独立用SQL表述问题,解决较复杂的应用需求。
二、实验的主要硬件软件环境MS SQL Server、计算机磁盘三、实验主要数据结构线性表四、实验的主要算法1.至少向北京或天津的工程提供了零件的供应商名,供应的零件名、工程名和供应数量。
SELECT PNAME,JNAME,SNAME,QTYFROM S,P,J,SPJWHERE SPJ.SNO=S.SNOAND SPJ.JNO=J.JNOAND SPJ.PNO=P.PNOAND (J.CITY=’上海’ OR J.CITY=’天津’)2.供应红色零件给工程J1的供应商名SELECT SNAMEFROM S,P,SPJWHERE SPJ.JNO=’J1’AND SPJ.SNO=S.SNOAND SPJ.PNO=P.PNOAND COLOR=’红’3. 没有使用天津产的零件的工程号SELECT JNOFROM JWHERE JNO NOT IN(SELECT JNOFROM SPJ,SWHERE SPJ.SNO=S.SNOAND CITY=’天津’)4.没有向位于相同城市的工程供应零件的供应商名SELECT SNAMEFROM SWHERE SNAME NOT IN( SELECT SNAMEFROM S,J,SPJWHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNOAND S.CITY=J.CITY)5. 和工程J3位于同一城市且使用过至少一种相同零件的其它工程名SELECT DISTINCT(JNAME)FROM J,SPJWHERE SPJ.JNO=J.JNOAND CITY IN(SELECT CITYFROM JWHERE J.JNO=’J3’)AND JNAME NOT IN(SELECT JNAMEFROM JWHERE J.JNO=’J3’)6. 每种颜色零件的总重量SELECT COLOR,SUM(WEIGHT)FROM PGROUP BY (COLOR)7.红色零件的平均重量SELECT AVG(WEIGHT)FROM PWHERE COLOR=’红’8.供应商最集中的城市(意即,哪个城市的供应商最多?)SELECT S.CITYFROM SGROUP BY (CITY)HAVING COUNT(CITY)>=ALL(SELECT COUNT(CITY)FROM SGROUP BY (CITY))9.对上海和天津,统计该城市的供应商一共供应了多少数量的零件。
ACCESS数据库程序设计—实验二
云南大学滇池学院《access数据库程序设计》实验指导—实验二查询的创建与操作2014年4月目录练习一:利用“简单查询向导”创建选择查询 (3)练习二:在设计视图中创建选择查询 (3)练习三:创建计算查询 (3)练习四:创建交叉表查询 (4)练习五:创建参数查询 (4)练习六:创建操作查询 (4)练习七:创建sql查询 (4)练习八:完善sql语句 (4)练习九:sql数据定义 (6)一、实验目的1. 掌握各种查询的创建方法2. 掌握查询条件的表示方法3. 掌握应用sql中select语句进行数据查询的方法4. 理解sql中数据定义和数据操纵语句二、实验内容与要求1.创建各种查询2.使用sql中select语句进行数据查询3.使用sql语句进行数据定义和数据操纵三、实验步骤注意:(1)若没有创建完整“教学管理”数据库,请下载“教学管理”数据库并将文件名修改为:ACCESS班级+专业班级+学号+姓名+实验二(如:ACCESS 1 班-会计1班-2013201232-王小二-实验二)(2)将练习七、练习八和练习九复制到word中补充完整并保存为:ACCESS班级+专业班级+学号+姓名+实验二(如:ACCESS 1 班-会计1班-2013201232-王小二-实验二。
(3)将数据库文件与word文件封装在一个文件夹中上交,文件夹名为:ACCESS班级+专业班级+学号+姓名+实验二(如:ACCESS 1 班-会计1班-2013201232-王小二-实验二,并于第9周周五78节(即17:00)之前上交完成,过时不予接收,不接收以邮件等方式上交作业,请大家按时完成作业并上交。
(4)上交作业文件夹名务必以:ACCESS班级+专业班级+学号+姓名+实验二(如:ACCESS 1 班-会计1班-2013201232-王小二-实验二)命名,否则将以没上交作业处理。
练习一:利用“简单查询向导”创建选择查询1.单表选择查询要求:以“教师”表为数据源,查询教师的姓名、学历和职称信息,所建查询命名为“教师信息查询”。
数据库应用课程09实验九 程序设计实验二
i=1
Do
sum = sum + i
i=i+1
Loop Until i > 100
Debug.Print "i="; i, "sum="; sum
End Sub
//*******4)FOR-NEXT 结构循环
Public Sub do4()
Dim i, sum As Integer
For i = 1 To 100 Step 1
请编程完成上述题目并验证程序结果,将结果所在数据库上传到毕博平入台第。”K郎=&i玛nnt&(峰s”的个数高:”))
qr(n)A)度=iinft(ia/>1m00a)x then
三、实验结论与分析讨论
max=Ia=(2 8B8=4i8n.t1(3(im
n-S1)e=0x00t *a)/10)
试述你是如何理解循环运行过程的有序性的,即不同循环语句进入循环的条pW件rihn和itleCm退P=arI出xiva循te环的条件分别
sum = sum + i
Next
Debug.Print "i="; i, "sum="; sum
End Sub
(5)阅读下列程序,列出变量 x,y 值变化过程,输出语句处变量 x 的值为多少?输入程序后再执行,
验证变量 x 是否为预先设想值。
Public Sub 验证程序执行过程()
Dim x, y As Integer
CommA设=anv一daP1l(r张_iinvpa足utet够box( “ 请Cli输ck入S(大u第b)的1厚数度”为))
MCN0o=a.m5xinm=mpamuatnd1_的
数据库实验二
数据库实验二实验任务书(实验二)课程名称:数据库原理与技术实验报告要求:1. 列出所有的SQL语句和源代码;2. 程序要求有适当的注释;3. 对数据完整性约束实施要求给出相应的测试用例。
4. 实验报告提交电子档。
实验内容:存储过程与触发器1. 编写一段程序,将每种玩具的价格提高¥0.5,直到玩具的平均价格接近$24.5为止。
此外,任何玩具的最大价格不应超过$53。
原表代码执行操作后12. 创建一个称为prcCharges的存储过程,它返回某个定单号的装运费用和包装费用。
说明该段程序已经存储好了2CREATE PROCEDURE prcCharges @OrderNo char(6),@ShippingCharges money OUTPUT, @GiftWrapCharges money OUTPUT as SELECT@ShippingCharges=mShippingCharges,@GiftWrapCharges=mGiftWrapCharges FROM OrdersWHERE cOrderNo=@OrderNo3. 创建一个称为prcHandlingCharges的过程,它接收定单号并显示经营费用。
PrchandlingCharges过程应使用prcCharges过程来得到装运费和礼品包装费。
提示:经营费用=装运费+礼品包装费方法一:先创建这样一段程序然后再另一个过程执行执行操作3方法二:(1)首先创建一张临时表(2)创建进程prcCharges(3)创建进程prcHandlingCharges,在进程prcHandlingCharges中调用prcCharges(4)调用进程prcHandlingCharges给参数OrderNo为000001,并显示临时表temp中的内容44. 表PickofMonth中保存的是某年(iYear)某月(siMonth)某种玩具(cToyId)的销售总量(iTotalSold)。
最新数据库实验二实验报告
最新数据库实验二实验报告实验目的:1. 熟悉数据库管理系统的基本操作。
2. 掌握数据库的创建、查询、更新和删除等基本操作。
3. 学习并实践SQL语言在数据库管理中的应用。
实验环境:- 操作系统:Windows 10- 数据库管理系统:MySQL 8.0- 开发工具:MySQL Workbench实验内容:1. 创建数据库- 使用MySQL Workbench连接到MySQL服务器。
- 执行CREATE DATABASE命令创建名为“StudentDB”的数据库。
2. 设计数据表- 在“StudentDB”数据库中创建学生表(Students)和课程表(Courses)。
- 学生表包含字段:学号(ID)、姓名(Name)、年龄(Age)、专业(Major)。
- 课程表包含字段:课程号(CourseID)、课程名(CourseName)、学分(Credits)。
3. 插入数据- 向学生表和课程表中插入一定数量的示例数据。
- 使用INSERT INTO命令并指定具体的值进行数据插入。
4. 查询操作- 实现对学生表和课程表的基本查询,如查询所有学生信息、查询特定专业学生信息等。
- 使用SELECT语句进行查询,并尝试使用WHERE子句进行条件筛选。
5. 更新和删除操作- 修改学生表中的部分数据,如更新学生的选课信息。
- 使用UPDATE命令进行数据更新。
- 删除课程表中的某些课程记录。
- 使用DELETE FROM命令进行数据删除。
6. 数据库的完整性约束- 在创建数据表时设置主键、外键等约束。
- 尝试插入违反约束的数据,并观察数据库的响应。
实验结果:- 成功创建了“StudentDB”数据库以及相应的学生表和课程表。
- 插入数据操作顺利,能够正确输入数据至指定数据表。
- 查询操作无误,能够根据不同条件检索所需数据。
- 更新和删除操作执行正确,数据表中的记录得到相应修改。
- 完整性约束有效,违反约束的操作被数据库拒绝执行。
数据库实验二实验报告
_数据库实验二课程实验报告实验名称:姓名班级学号实验台编号同组学生实验课表现出勤、表现得分25% 实验报告得分50%实验总分操作结果得分25%实验目的:1.掌握SELECT语句的基本语法2.掌握SELECT语句中的SELECT子句的作用及使用方法3.掌握SELECT语句中的WHERE子句的作用及使用方法4.掌握SELECT语句中的ORDER BY子句的作用及使用方法5.掌握集合函数的作用及使用方法6.掌握SELECT语句中的GROUP BY子句的作用及使用方法7.熟悉内连接、外连接、自连接和非限制连接的概念8.能够熟练使用连接查询从多个表中查询数据9.能够熟练地使用子查询得到想要的数据实验内容:一、简单查询1.查询XS表中各个同学的所有信息。
select* from XS;2.查询XS表中各个同学的姓名、专业名和总学分。
select姓名,专业,总学分from XS;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name和mark。
select学号num,姓名name,总学分mark from XS;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
select distinct专业from XS;5.查询XS表中各个同学的姓名、专业名和总学分,只返回结果集的前5行。
select top 5 姓名,专业,总学分from XS;6.查询XS表中每个学生的学号、姓名和年龄信息。
select datediff(yyyy,出生日期,'2010')年龄from XS;7.查询XS表中专业为“计算机”的同学的情况。
select*from XS where专业='计算机';8.查询XS表中1979年出生的学生姓名和专业情况。
SELECT姓名,专业from XS where year(出生日期)='1979';9.查询XS表中专业名为“计算机”或“电子”或“数学”的学生的情况。
数据库实验二
院系:计算机科学学院专业:软件工程年级: 2011 课程名称:数据库学号:姓名:指导教师:杨波2013年 10 月 19 日年级2011班号组号学号专业软件工程姓名实验名称创建并管理数据库、数据表实验(二)实验目的或要求( 1 ) 理解T-SQL语句的使用。
( 2 ) 熟练掌握数据查询语句。
实验原理与数据库设计(基础实验无)(写不完时,可另加附页。
)源代码或脚本代码基本表及表中数据插入建表CREATE TABLE学生表(学号int primary key,姓名char(8),性别char(2),年龄smallint,所在院系char(20),班级char(20),入学日期smalldatetime,)CREATE TABLE课程表(课程号char(8)primary key,课程名char(15),先修课char(8),学分smallint,foreign key (先修课)references课程表(课程号))CREATE TABLE成绩表(学号int,课程号char(8),成绩char(2),学分smallint,primary key (学号,课程号),foreign key (学号)references学生表(学号),foreign key (课程号)references课程表(课程号),)CREATE TABLE授课表(教师名char(8),课程号char(8),学时数int,年龄smallint,班级名char(20),primary key (课程号,班级名),foreign key (课程号)references课程表(课程号))数据插入INSERT INTO[学生管理数据库].[dbo].[学生表]([学号],[姓名],[性别],[年龄],[所在院系],[班级],[入学日期]) VALUES('20009001','葛文卿','女','22','国际贸易','国贸班','2000-8-29') INSERT INTO[学生管理数据库].[dbo].[学生表]([学号],[姓名],[性别],[年龄],[所在院系],[班级],[入学日期]) VALUES('20004019','郑秀丽','女','21','会计学','会计班','2001-9-2') INSERT INTO[学生管理数据库].[dbo].[学生表]([学号],[姓名],[性别],[年龄],[所在院系],[班级],[入学日期]) VALUES('20023001','刘成凯','男','18','计算机','软件班','2002-8-27') INSERT INTO[学生管理数据库].[dbo].[学生表]([学号],[姓名],[性别],[年龄],[所在院系],[班级],[入学日期])VALUES('20026002','李涛','女','19','电子学','电子班','2002-8-27') INSERT INTO[学生管理数据库].[dbo].[学生表]([学号],[姓名],[性别][年龄] ,[所在院系][班级],[入学日期]) VALUES('20023002','沈香娜','女','18','计算机','软件,'2002-8-27') INSERT INTO[学生管理数据库].[dbo].[学生表],[入学日期VALUES('20023003','肖一竹','女','19','计算机','软件班','2002-8-27') INSERT INTO[学生管理数据库].[dbo].[学生表]([学号],[姓名],[性别],[年龄],[所在院系],[班级],[入学日期]) VALUES('20026003','李涛','男','19','计算机','软件班','2002-8-27') INSERT INTO[学生管理数据库].[dbo].[课程表]([课程号],[课程名],[学分])VALUES('C801','高等数学','4')INSERT INTO[学生管理数据库].[dbo].[课程表]([课程号],[课程名],[先修课],[学分])VALUES('C802','C++语言','C807','3')INSERT INTO[学生管理数据库].[dbo].[课程表]([课程号],[课程名],[先修课],[学分])VALUES('C803','数据结构','C802','4')INSERT INTO[学生管理数据库].[dbo].[课程表]([课程号],[课程名],[先修课],[学分])VALUES('C804','数据库原理','C803','4')INSERT INTO[学生管理数据库].[dbo].[课程表]([课程号],[课程名],[先修课],[学分])VALUES('C805','操作系统','C807','4')INSERT INTO[学生管理数据库].[dbo].[课程表]([课程号],[课程名],[先修课],[学分])VALUES('C806','编译原理','C803','4') INSERT INTO[学生管理数据库].[dbo].[课程表]([课程号],[课程名],[学分])VALUES('C807','离散数学','4')INSERT INTO[学生管理数据库].[dbo].[成绩表]([学号],[课程号],[成绩],[学分]) VALUES('20023001','C801','98','4') INSERT INTO[学生管理数据库].[dbo].[成绩表]([学号],[课程号],[成绩],[学分]) VALUES('20023002','C804','70','4') INSERT INTO[学生管理数据库].[dbo].[成绩表]([学号],[课程号],[成绩],[学分]) VALUES('20026001','C801','85','4') INSERT INTO[学生管理数据库].[dbo].[成绩表]([学号],[课程号],[成绩],[学分]) VALUES('20023001','C802','99','3') INSERT INTO[学生管理数据库].[dbo].[成绩表]([学号],[课程号],[成绩],[学分]) VALUES('20026006','C803','82','4') INSERT INTO[学生管理数据库].[dbo].[授课表]([教师名],[课程号],[学时数],[班级名]) VALUES('苏亚步','C801','72','软件班') INSERT INTO[学生管理数据库].[dbo].[授课表]([教师名],[课程号],[学时数],[班级名]) VALUES('王文山','C802','64','软件班') INSERT INTO[学生管理数据库].[dbo].[授课表]([教师名],[课程号],[学时数],[班级名]) VALUES('张珊','C803','72','软件班') INSERT INTO[学生管理数据库].[dbo].[授课表]([教师名],[课程号],[学时数],[班级名]) VALUES('王文山','C804','64','软件班') INSERT INTO[学生管理数据库].[dbo].[授课表]([教师名],[课程号],[学时数],[班级名])VALUES('苏亚步','C801','72','软件班')查询语句练习1)列出软工2班女同学的名单select姓名from学生表where班级='软件班'and性别='女';2)列出2002年元旦前注册的同学名单select姓名from学生表where入学日期<'2002-1-1';3)列出所有在19岁以下,或者女同学的名单select姓名from学生表where年龄<'19'or性别='女';4)列出没有先修课的课程号select课程名from课程表where先修课IS NULL;5)列出既不是“电子系”也不是“会计学”的学生的学号、姓名和所在系院select学号,姓名,所在院系from学生表where所在院系NOT IN('电子学','会计学');6)查询选修“C801”课程的学生的最高价select MAX(成绩)最高分from成绩表where课程号='C801';7)统计男、女学生各自的人数和平均年龄select性别,count(学号)人数,avg(年龄)平均年龄from学生表group by性别;8)列出选修一门以上课程的学生学号,及其选修门数select学号,count(课程号)选课数from成绩表group by学号having count(*)>19)查询沈香娜同学所在班级的所有同学的学号和姓名select学号,姓名from学生表where班级in(select班级from学生表where姓名='沈香娜')10)统计每一年龄选修课程的学生人数select年龄,count(学号)人数from学生表where学号in(select distinct学号from成绩表)group by年龄11)在基本表“成绩表”中检索平均成绩最高的学生学号select top 1 学号--avg(成绩)from成绩表group by学号order by avg(成绩)desc12)求表S中男同学的每一年龄组(超过2个人)有多少人?要求查询结果按人数升序排列,人数相等时,按照年龄降序排列。
数据库实验二
数据库实验⼆使⽤商⽤数据库 SQL Server 或 MySQL 实现教务系统的数据库设计实验要求:1. 学习使⽤商⽤数据库SQL Server 或MySQL2. 基于实验⼀的概念模型和逻辑结构,实现数据库分析设计3. 理解和掌握关系数据库存取技术,关系数据操作,完整性约束机制实验内容:1. 创建教务系统各数据库表,包括:Student, Course, SC等。
设置主键和外键,以及⽤户定义的完整性约束条件。
2. 输⼊数据,体验实体完整性,参照完整性,以及⽤户定义的完整性约束。
3. 简单的数据浏览,数据增删改。
实验过程:1. 安装 SQL Server 20162. 安装Microsoft SQL Server Management Studio (SSMS)3. 创建数据库和表选择数据库,右键新建查询,输⼊下⾯语句:CREATE TABLE Department --系表(Dno CHAR(20)PRIMARY KEY,Dname CHAR(20)UNIQUE,Dean CHAR(10),Classnum INT,Crnum INT,Adderss CHAR(20));CREATE TABLE Classroom --教研室表(Crno CHAR(20)PRIMARY KEY,Crname CHAR(10)UNIQUE,Dno CHAR(20),Adderss CHAR(20),FOREIGN KEY (Dno)REFERENCES Department(Dno) );CREATE TABLE Class --班级表(Classno CHAR(20)PRIMARY KEY,Classname CHAR(10)UNIQUE,Dno CHAR(20),Stunum INT,FOREIGN KEY (Dno)REFERENCES Department(Dno) );CREATE TABLE Teacher --教员表(Tno CHAR(10)PRIMARY KEY,Tname CHAR(10)UNIQUE,Title CHAR(10),TSex CHAR(4),Crno CHAR(20),FOREIGN KEY (Crno)REFERENCES Classroom(Crno) );CREATE TABLE Student --学⽣表(Sno CHAR(10)PRIMARY KEY,Sname CHAR(10)UNIQUE,Ssex CHAR(4),Classno CHAR(20),Tno CHAR(10),FOREIGN KEY (Classno)REFERENCES Class(Classno), FOREIGN KEY (Tno)REFERENCES Teacher(Tno));CREATE TABLE Course --课程表(Cno CHAR(10)PRIMARY KEY,Cname CHAR(20)UNIQUE,Credit INT,Chour INT);CREATE TABLE SC --选修表��(Sno CHAR(10),Cno CHAR(10),Mark INT,PRIMARY KEY(Sno,Cno),FOREIGN KEY (Sno)REFERENCES Student(Sno), FOREIGN KEY (Cno)REFERENCES Course(Cno) );4. 直接使⽤SSMS编辑各表数据选中某⼀表,右键选择编辑前200⾏系表:班级表:教研室表:学⽣表:选修表:课程表:5. 导出数据库数据字典选择数据库,右键新建查询,语句如下:SELECT(case when a.colorder=1 then else '' end)表名,a. colorder 字段序号, 字段名,(case when COLUMNPROPERTY( a.id,,'IsIdentity')=1 then '√'else '' end) 标识, (case when (SELECT count(*)FROM sysobjectsWHERE (name in(SELECT nameFROM sysindexesWHERE (id = a.id) AND (indid in(SELECT indidFROM sysindexkeysWHERE (id = a.id) AND (colid in(SELECT colidFROM syscolumnsWHERE (id = a.id) AND (name = ))))))) AND(xtype = 'PK'))>0 then '√' else '' end) 主键, 类型,a.length 占⽤字节数,COLUMNPROPERTY(a.id,,'PRECISION') as 长度,isnull(COLUMNPROPERTY(a.id,,'Scale'),0) as ⼩数位数,(case when a.isnullable=1 then '√'else '' end) 允许空,isnull(e.text,'') 默认值,isnull(g.[value],'') AS 字段说明FROM syscolumns a left join systypes bon a.xtype=b.xusertypeinner join sysobjects don a.id=d.id and d.xtype='U' and <>'dtproperties' left join syscomments eon a.cdefault=e.idleft join sys.extended_properties gon a.id=g.major_id AND a.colid = g.major_idorder by a.id,a.colorder得到结果:数据关系图如图所⽰:6. SQL语句编辑数据:添加:INSERT INTO Department values ('D4','张建','海技系','14','12','松岭路')新增了⼀条记录:删除:DELETE FROM SC WHERE Sno ='S1'此处记录(‘S1’,’C1’,’79’)被删除修改:UPDATE Student set Ssex ='男'WHERE Sno ='S1'Sno为S1的记录性别修改为了‘男’⼼得总结:刚开始在使⽤SSMS编辑数据的时候,总忘记各表中的关系,学⽣表还没定义就编辑选修表,报了不少次错;由此看来,整体设计很重要,像编程之前的流程图⼀样,在建⽴各表之前也应该事先理清楚这些表之间的关系,这样数据库的思路更清晰。
数据库原理实验报告(2)实验二 数据库的创建、管理、备份及还原实验
南京晓庄学院《数据库原理与应用》课程实验报告实验二数据库的创建、管理、备份及还原实验所在院(系):数学与信息技术学院班级:学号:姓名:1.实验目的(1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改数据库的基本方法;(2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。
(3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方法。
2.实验要求(1)使用SQL Server Management Studio创建“教学管理”数据库。
(2)使用SQL Server Management Studio修改和删除“教学管理”数据库。
(3)使用Transact-SQL语句创建“教学管理”数据库。
(4)使用Transact-SQL语句修改和删除“教学管理”数据库。
(5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server ManagementStudio对数据库“教学管理”进行备份和还原。
(6)SQL Server 2005数据库文件的分离与附加。
(7)按要求完成实验报告3.实验步骤、结果和总结实验步骤/结果(1) 总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。
(2) 总结在实验中为创建、修改和删除“教学管理”数据库所编写的各条T-SQL语句及其完成了什么功能。
(3)总结使用SQL Server Management Studio备份与还原数据库的几种方法。
4.实验思考:①SQL Server 2005物理数据库包含了哪能几种类型的文件以及它们的作用?②数据库备份与转储包含那些原理?③如果数据或日志文件非空不能删除,查找SQL Server中缩小文件大小的方法。
VisualFoxPro数据库及程序设计基础实验指导第二版课程设计
VisualFoxPro数据库及程序设计基础实验指导第二版课程设计实验目的本实验旨在通过VisualFoxPro数据库及程序设计基础知识的学习和实践,使学生能够:1.掌握VisualFoxPro数据库及程序设计的基础理论知识2.熟练掌握VisualFoxPro开发工具的使用3.能够编写简单的VisualFoxPro程序4.能够使用VisualFoxPro开发工具实现对数据库的管理和操作实验内容本实验分为三个部分,分别为VisualFoxPro数据库基础实验、VisualFoxPro程序设计基础实验和综合实验。
VisualFoxPro数据库基础实验实验一:VisualFoxPro数据库创建及表格设计1.学生需要熟悉VisualFoxPro数据表格的基本结构和属性要素2.学生需要创建一个简单的数据库,包括两个表,一个存放学生信息,一个存放成绩信息3.学生需要设计表格结构,包括表格名,字段名及数据类型等1.学生需要熟悉VisualFoxPro数据库的基本操作,包括数据库的打开,关闭,新建,删除等常规操作2.学生需要熟悉VisualFoxPro数据库表的基本操作,包括表的打开,关闭,新建,删除,添加记录,修改,删除和查询等操作3.学生需要学会使用VisualFoxPro的查询功能,能够完成基本查询和高级查询实验三:VisualFoxPro数据库的关系设计与应用实例1.学生需要熟悉VisualFoxPro数据库中关系设计的基本概念和原则2.学生需要设计数据库间的关系,并使用SQL命令实现多个表间的查询操作3.学生需要编写程序实现数据库表与表之间的关系查询操作VisualFoxPro程序设计基础实验实验四:VisualFoxPro程序设计基础语法1.学生需要了解VisualFoxPro可视化程序设计语言的基本语法和编程要素2.学生需要学会使用VisualFoxPro的开发环境编写简单的程序代码3.学生需要学会使用VisualFoxPro的调试和运行工具,对程序进行调试和执行1.学生需要熟练掌握VisualFoxPro的程序基本操作,包括程序的新建,打开,保存,复制,粘贴等操作2.学生需要学会使用VisualFoxPro的工具条和菜单栏实现对程序的管理和操作3.学生需要使用VisualFoxPro编写一个简单的程序,实现某个功能综合实验实验六:VisualFoxPro综合实验1.学生需要综合以上所学的知识,完成一个VisualFoxPro程序的开发2.学生需要自己设计程序的功能要求和界面设计3.学生需要最终演示自己所开发的程序,并进行自我评估和总结实验要求1.学生需要认真学习相关教材和在线资源,熟悉VisualFoxPro的数据库管理和程序设计知识2.学生需要遵守实验室相关规定和安全要求,保证实验室设备安全和环境整洁3.学生需要按时提交实验报告,以Markdown文本格式输出实验报告实验报告应包括以下几个方面:1.实验的目的和内容,以及实验中遇到的问题和解决方案2.实验过程中使用的工具和版本信息3.实验过程中的记录和结果截图,以Markdown文本格式输出4.对实验的评估和总结,包括自我评估和问题反思,以及建议和改进建议总结VisualFoxPro数据库及程序设计基础实验是计算机科学与应用专业必修课程,也是培养学生计算机编程能力和数据库管理能力的关键课程。
数据库实验报告二
实验二常量、变量、函数和表达式一、实验目的要求1. 掌握常量的类型及表示方式。
2. 掌握变量的定义、赋值和显示。
3. 掌握各种表达式的使用。
4. 掌握VFP各种常用函数的功能、格式和使用。
二、实验内容1. 在命令窗口中用STORE命令为变量赋值。
2. 用“=”命令为变量赋值。
3. 用“?”命令显示变量的值。
4. 练习各种常量的表示方法及其输入输出方法。
5.练习各种运算符的使用方法。
6.在命令窗口中用“?”命令输出数值处理函数、字符处理函数、日期时间函数、转换函数等Visual FoxPro6.0常用函数的值。
三、实验过程及结果1、设:NAM=“李平”,SEX=“女”,OLD=26,DEPT=“计算机系”,DATE={^1976/09/21}用“?”命令输出算术表达式60- OLD的值。
用“?”命令输出字符表达式“学生:”+ NAM +“”+ DEPT的值。
用“?”命令输出日期表达式DATE()- DATE的值(自出生后的天数)。
用“?”命令输出关系表达式DATE<-{^1980/12/31}的值(判断是否为1980年以前出生)。
用“?”命令输出逻辑表达式OLD >20 AND SEX<>“女”的值。
(1)在命令窗口中分别输入以下命令如下图:(2)在命令窗口分别输入以下语句会输出相应结果如下图:A.在命令窗口再输入?60-OLD然后运行结果如下图:B.在命令窗口再输入?“学生”+NAM+“”+DEPT其结果如下:C.在命令窗口输入?DATE()-DATE其结果如下:D.输入?DATE<={^1980/12/31}其结果如下图:E.输入?OLD>20 AND SEX<>“女”其结果如下图:2、在命令窗口中用STORE命令为变量赋A、B、C赋相同的值,用“=”命令为变量E、F、G、H分别赋值“李平”、“女”、20和当前日期,用“?”命令显示上述变量的值。
数据库实验报告二
《数据库原理》实验报告实验三:数据库完整性与安全性控制实验四:视图与索引学号班级日期2013302534添文10011303 2015.10.17实验三:数据完整性与安全性控制一、实验容1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。
(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。
(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。
(3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。
(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。
(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。
(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表为分别是S表和C表,外键名称分别为fk_sno,fk_cno。
2.在图形用户界面中删除上小题中已经创建的各种约束,用SQL语言分别重新创建第1小题中的(2)-(6)小题。
(15分,每小题3分,提示:alter table add constraint)(2)alter table sadd constraint pk_sno primary key(sno)(3)alter table sadd constraint uk_sname unique(sname)(4)alter table sadd constraint a default('男')for ssex(5) alter table scadd constraint ck_grade check(grade between 0 and 100)(6) alter table scadd constraint fk_sno foreign key(sno)references s(sno)alter table scadd constraint fk_cno foreign key(cno)references c(cno)3.利用图形用户界面根据上述SC表中的外键定义画出由S,C,SC表构成的数据库关系图。
实验二 数据库设计(1)
实验三数据库设计(2)一、实验目的1.熟悉查询设计及运行过程;2.熟悉查询条件的设置;3.熟悉生成表查询的设计;4.熟悉各种操作查询的设计。
二、实验设备及软件环境(一)实验设备服务器、交换机和PC机组成NT网络。
(二)软件环境1.服务器采用Microsoft Windows 2003 Server 操作系统;2.学生客户端采用Windows XP系统、IE6.0以上浏览器、MS Access数据库。
三、实验内容与步骤(一)实验内容1.选择查询2.修改查询3.生成表查询4.参数查询5.更新查询6.汇总查询(二)实验步骤示例1. 选择查询。
在“读者信息”表中查找所有“男讲师”。
操作步骤:1.打开“图书管理”数据库;单击“对象”栏下的“查询”;双击“在设计视图中创建查询”,打开“查询设计器”窗口和“显示表”窗口(如图1),其中后者是顶层窗口,应事先处理。
2.在“显示表”窗口中,双击“读者信息”,将该表添加到查询设计窗口中;单击“关闭”按钮;使“查询设计器”成为当前窗口。
3.单击“查询设计器”窗口下方网格中第一行(“字段”行)第一列的下拉菜单按钮;从列表中选择要添加到查询中的字段“借书证号”(也可直接双击窗口上方“读者信息”表的对应字段名,使该字段添加到网格的字段单元格中);相同操作添加其他字段(如图2)。
4.在“条件”行上输入条件,其中引号可以不用输入,系统会自动添加。
5.单击工具栏上的保存按钮,打开“另存为”对话框,如图3所示;输入查询名称“读者信息1”;单击“确定”按钮,保存查询设计程序。
6.单击工具栏上的运行按钮运行查询,查询结果显示在“数据表”视图中,如图4所示。
图1 查询设计器之“显示表”窗口图2 创建查询示例图3 另存为对话框图4 显示的查询结果示意图示例2. 修改查询“读者信息1”。
操作步骤:1.打开查询设计器窗口:在“查询”对象列表中单击“读者信息1”,然后单击“设计”按钮。
2.删除“职务”字段:单击该字段所在列的任意位置,选择“编辑”菜单,单击“删除列”命令,该字段即在查询中被删除(源数据表中该字段内容不变)。
数据库实验二
数据库实验⼆实验⼀1 实验⽬的1.熟悉数据库的交互式SQL⼯具。
2.熟悉通过SQL对数据库进⾏操作。
3.完成作业的上机练习。
2 实验⼯具KingbaseES或mysql或其他利⽤KingbaseES及其查询分析器或mysql或其他平台来熟悉SQL。
以下为简便起见只提到kingbase.3 实验内容和要求1. 建⽴⼀个数据库,进⾏实验所要求的各种操作,所有的SQL操作均在此建⽴的新库⾥进⾏。
2. 根据以下要求认真填写实验报告,记录所有的实验⽤例。
3.1 数据定义(实验⼆)熟悉基本表的创建、修改及删除。
1、请创建⼀个数据库,并在该数据库内完成以下内容:CREATE DATABASE SCUSE SCCREATE TABLE STUDENT(Sno CHAR(9) PRIMARY KEY ,Sname CHAR(6) NOT NULL,Ssex CHAR (2),Sage INT,Sdept VARCHAR(8))CREATE TABLE COURSE(Cno CHAR(4) PRIMARY KEY,Cname VARCHAR(20) NOT NULL,Cpno CHAR(4),Ccredit INT)CREATE TABLE SC(Sno CHAR(9) ,Cno CHAR (4) ,Gread INT,PRIMARY KEY(Sno,Cno))1)依据数据表的结构创建相对应的数据表,表结构如下所⽰;学⽣信息表(student)字段名称字段类型及长度说明备注Sno Char(9)学⽣学号主关键字Sname Char(6)学⽣姓名⾮空Ssex Char(2)学⽣性别可为空Sage Int 学⽣年龄可为空Sdept VarChar(8)学⽣所在院系可为空课程信息表(course)字段名称字段类型及长度说明备注Cno Char(4)课程编号主关键字Cname VarChar(20)课程名称⾮空Cpno Char(4)先⾏课可为空Ccredit Int 学分可为空选课信息表(sc)字段名称字段类型及长度说明备注Sno Char(9)学⽣学号主关键字Cno Char(4)课程编号主关键字Grade Int 成绩可为空2)在表student中增加新字段 “班级名称(sclass)“;原来的STUDENT表添加班级名称:ALTER TABLE STUDENT ADD Sclass VARCHAR(10)添加后的STUDENT表:3)在表student中删除字段“班级名称(sclass)”;ALTER TABLE STUDENT DROP COLUMN Sclass4)修改表student中字段名为“sname”的字段长度由原来的6改为8;ALTER TABLE STUDENT ALTER COLUMN Sname CHAR(8)5)在表sc中增加外码约束,⼀个是sno参考student表的sno,⼀个是cno参考course表的cno;ALTER TABLE SC ADD CONSTRAINT FK_Sno FOREIGN KEY (Sno) REFERENCES STUDENT(Sno) ALTER TABLE SC ADD CONSTRAINT FK_Cno FOREIGN KEY (Cno) REFERENCES COURSE(Cno) 6)在表course中为cname增加唯⼀值约束;ALTER TABLE COURSE ADD CONSTRAINT UN_Cname UNIQUE(Cname)可以看到键中出现了增加的UN_Cname约束7)删除course表中cname的唯⼀值约束;ALTER TABLE COURSE DROP CONSTRAINT UN_Cname可以看到键中没有UN_Cname约束7)删除数据表student;ALTER TABLE SC DROP CONSTRAINT FK_SnoDROP TABLE STUDENT没有STUDENT表了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实 验 二
【实验名称】
在 2003中利用存储过程实现SQL Server 2000中表的查询
【目的与要求】
1、掌握SQL Server 2000中存储过程的概念和使用方法。
2、在.NET中利用存储过程实现“学生管理”数据库中的Course表的查询,
在屏幕上的文本框中输入一个课程的名称,在Datagrid中显示该课程
的信息。
【实验内容】
1、在C#中创建存储过程。
2、创建一个类,完成存储过程的调用。
【操作步骤】
1、在C#中创建一个窗体并拖入一个文本框、一个按钮和一个DataGrid
控件;
2、创建存储过程;
3、创建类;
4、为按钮控件编写代码。
(详见附录中的代码)
【分析与思考】
在完成该项目的过程中,出现的错误的分析和解决。
【附录:源代码】
SqlConnection myConnection=new SqlConnection("server=.;integrated security=true;database=学生管理"); string coursename =this.textBox1.Text.Trim();
SqlDataAdapter da=new SqlDataAdapter("selectuser",myConnection);
mandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.Add(new SqlParameter("@cname",SqlDbType.Char,20));
da.SelectCommand.Parameters["@cname"].Value = coursename;
DataSet ds=new DataSet();
da.Fill(ds,"course");
dataGrid1.DataSource = ds.Tables[0];
2。