第一篇:SQL数据库上机练习3
SQL数据库上机练习3
在C:盘根目录下用自己的名字加“_DB”建立一个文件夹。(例:“王平_DB”)
一.(6分)在SQL Server Management Studio中建立满足如下要求的数据库:
1. 数据库名字为:TGDB;
2. 此数据库包含的一个主数据文件和一个辅助数据文件。主数据文件的逻辑文件名为:TG_data1,物理文件名为TG_data1.mdf,存放在新建文件夹下,初始大小为4MB,自动增长,每次增加20%,最多增加到8MB。辅助数据文件的逻辑文件名为:TG_data2,物理文件名为TG_data2.ndf,同主数据文件存放在相同的位置,初始大小为2MB,不自动增长。
3. 日志文件包含一个,其逻辑文件名为:TG_log,物理文件名为TG_log.ldf,同主数据文件存放在相同的位置,初始大小为3MB,增长方式为自动增长,每次增加1MB,文件增长不受限制。二.(10分)为描述作者向期刊的投稿情况,建立了三张表:作者表、期刊表和投稿表。期刊表用于描述期刊的基本信息,作者表用于描述作者的基本信息,投稿表用于描述作者向期刊的投稿情况。在查询分析器中写出创建这三张表的语句,并将语句以文件形式保存下来,文件名为“考生名.sql”,存放在新建的文件夹下。可以将后续所有的SQL语句均保存在此文件中,在文件中注明题号,不用抄题)。
注:括号中为表名和列名的拼音表示,建表时用拼音表示表名和列名,不区分大小写。三张表的结构如下: 1.作者表(ZZB)
作者号(zzh)普通字符编码定长字符型,长度为4,主码;
作者名(zzm)统一字符编码可变长字符型,最多5个汉字,取值不重复。
2.期刊表(QKB)
期刊号(qkh)
普通字符编码定长字符型,长度为4,主码;
期刊名(qkm)
普通字符编码可变长字符型,最大长度为20,非空;
类别(lb)
普通字符编码定长字符型,长度为2,取值为“是”或“否”
(说明:“是”表示此期刊为核心期刊,“否”表示此期刊为非核心期刊)。
版面费(bmf)
整型。
3.投稿表(TGB)
作者号(zzh)
普通字符编码定长字符型,长度为4,非空; 期刊号(qkh)
普通字符编码定长字符型,长度为4,非空; 投稿日期(tgrq)
小日期时间型,非空,默认值为系统当前时间; 文章名称(wzmc)普通字符编码定长字符型,长度为50;
审稿结果(sgjg)
统一字符编码定长字符型,长度为3,取值范围为{通过,未通过},默认值为“未通过”。
其中,主码为(作者号,期刊号,投稿日期),“作者号”为引用作者表的“作者号”的外码; “期刊号”为引用期刊表的“期刊号”的外码。
三.(6分)运行C:exam.exe程序解压缩数据文件(可解压到任何地方),解压缩的密码为“dbok”。利用SQL Server的导入导出向导,将“期刊表.txt”文件中的数据导入到“期刊表”中,将解压后的 “作者与投稿表.xls”文件中的数据分别导入到 “作者表”和“投稿表”中。四.(6分)在SQL Server Management Studio中创建“SQL Server身份验证”模式的登录帐号:TG_User,其中账户密码为空,默认数据库为Master。并完成如下操作: 1.让TG_User成为TGDB数据库的合法用户。
2.在TGDB数据库中建用户自定义角色:MyRole,让TG_User成为MyRole角色中的成员。3.用较好的方法授予MyRole在TGDB数据库中具有所有用户表的查询权。
五.(4分)在SQL Server Management Studio中按要求完成下列操作:
1.创建一个永久备份设备,备份设备的名字为“TG_BK”,存放在新建文件夹下,物理文件名为“TG_BK.bak”。
2.用“TG_BK”备份设备对“TGDB”进行一次完全备份。六.(28分)利用第二题的三张表,在查询分析器中写出实现如下要求的SQL语句,注明题号。并将这些语句与第二题所写的语句保存在一起。(注:要求下述语句均使用一条SQL语句完成)1.查询2006年以后(包括2006年)的投稿情况,列出作者名、期刊名、文章名称和投稿日期。2.查询姓哪个姓的作者最多,列出这个姓氏和姓这个姓氏的作者人数,包含并列的情况。3.查询作者“杨伍华”没有投过稿的核心期刊的名称。
4.查询“杨伍华”投过稿的期刊的投稿情况,显示期刊号,审稿通过总次数,版面费总金额(说明:只有审稿结果为“通过”时,作者才需向期刊缴纳相应版面费),要求只列出投稿次数超过5次(不包括5次)且版面费总金额大于7000的情况。
5.查询全体作者(包括还没有投过稿的作者)的人均投稿次数,列出总投稿次数、总人数和人均投稿次数。要求平均投稿次数保存到小数点后2位。
6.向投稿表中插入一条记录,作者号为“zz01”,期刊号为“qk02”,文章名称为“地铁限界系统的研究”,投稿日期和审稿结果为默认值。7.删除投稿表中2000年以前(包括2000年),期刊名为“哲学研究”中审稿未通过的的投稿记录。七.(10)统计每位作者的投稿情况,列出作者名,投稿通过率(保留到小数点后2位),评价。其中,当投稿通过率高于0.7,评价为“高”;当投稿通过率在0.4到0.7之间,评价为“中”;当投稿通过率低于0.4,评价为“低”。(可分步骤实现)八.(10)用游标实现按如下报表形式显示结果的SQL语句。该报表首先输出期刊名称(只包括有投稿记录的期刊),然后显示此期刊的详细投稿情况,包括是否为核心期刊、作者名、投稿日期、审稿结果和文章名称。(说明:“是否为核心期刊”一项填写要求:如果是核心就写“是”,否则就写“否”。注意:报表的显示格式。)提示:有关游标的语句格式如下:
声明游标:declare 游标名 cursor for select 语句 打开游标:open 游标名 关闭游标:close游标名
提取数据:fetch next from 游标名 into„„ 释放游标:deallocate 游标名 全局变量:@@fetch_status 报表形式大致如下:(下表只列出了部分数据)
期刊名称:计算机应用研究
是否为核心期刊
作者姓名
投稿日期
审稿结果
文章名称
是
陈毅华
2007年6 月3 日
通过
信息安全的第二道防线——入侵检测系统
是
杨晓光
2008年6 月9 日
通过
一种基于移动agent技术的分布式数据检索系统的实现
是
杨伍华
2007年8 月29日
通过
无线传感器网络的研究
是
杨伍华
2008年2 月1 日
通过
基于Web的考试系统新方案
是
陈晓立
2006年3 月9 日
通过
基于J2EE的分布式事务研究
是
田令洋
2006年1 月26日
通过
个性化协同学习环境本体的研究
期刊名称:交通与计算机
是否为核心期刊
作者姓名
投稿日期
审稿结果
文章名称
是
田令洋
2007年4 月8 日
未通过
CORBA和Java的结合使用
是
田令洋
2008年1 月3 日
未通过
高速公路通信系统的整合利用初探
„„
是
杨晓光
2006年3 月1 日
未通过
基于VC与Ansys的参数化有限元分析
第二篇:Access上机练习2(SQL上机练习1)
实验项目名称:SQL简单查询 所属课程名称:数据库原理与应用 实验类型:操作型
实验要求:使用SQL视图完成SQL简单查询 实验目的:
1.熟悉SQL语言的数据查询功能; 2.熟悉Access中SQL视图的使用;
3.通过SQL语言的数据查询语句SELECT熟悉Access中表达式的构成与使用。*4.熟悉简单的多表查询。实验方案设计:
1.使用“教学管理.mdb”中的表,练习教材例【6-1】~【6-13】内容,熟悉Access中SQL视图的使用与SQL简单查询的实现。2.利用“教学管理.mdb”,独立完成布置的SQL查询要求。
练习:
1.显示“课程信息表”表中所有字段和记录。2.显示所有教师的姓名、性别,所属院系和职称情况。3.显示每位教师的工龄。
4.查询来校10年以上(含10年)的党员教师信息。5.查询所有财政学院和经济学院的教师信息。6.查询40岁以上(不含40岁)的非党员教师信息。7.查询姓名中含有“海”字的教师信息。8.显示全部学生的班级。
9.查询成绩在60分(含60分)到90分(含90分)之间的学生的学号。*10.显示有不及格成绩的学生名单。
*11.显示每位教师的公积金缴存情况,显示属性包括教师编号、姓名、公积金。*12.显示所有女党员的工龄和薪级工资。
*13.显示财政学院每位教师的姓名和他们的实发工资额。(提示:实发工资=岗位工资+薪级工资+岗位津贴-公积金)
14.自己设计一个查询,并用SQL命令实现(要求:对设计要有合理的解释,且最好有新意)。
第三篇:sql上机实验报告
实验一(2.20)
实验内容:熟悉sql server 2005
实验目的:掌握sql服务器的启动和停止方法、熟悉management studio 的操作界面和新建查询。
重点:使用数据库引擎启动数据库服务器、停止数据库服务;服务器的认识以及如何启动查询分析器
难点:无
实验操作:
1.使用数据库引擎启动数据库服务器:
开始->程序->microsoft sql server 2005->
sql server management studio->数据库引擎->服务器名称(选择)->连接。
2.分别打开数据库,安全性和管理文件夹查看文件内容。
3.点击新建查询建立一个查询窗口。
4.打开model数据库,查看其中的文件。
实验二(2.27)
实验内容:使用manegement studio和查询分析器创建数据表
实验目的:掌握创建数据表的方法
重点:学会使用查询分析器创建数据表
难点:字段数据类型的选择以及数据长度的定义
实验操作:
在basetest数据库中创建学生表,学生(sno,sname,ssex,sage,sdept)。其中sno,sname,ssex,sdept字
段数据类型设为char,长度为10;sage字段数据类型设为int!create table 学生
实验三(3.5)
实验内容:添加表的约束
实验目的:掌握使用alter table 语句修改表的时候添加表的约束
重点:为表添加主键外键约束
难点:为列设置列级完整性约束;使用sql语句为表设置外键。
实验操作:
1:为学生表添加主键约束pk约束,设置sno为主键
alter table 学生
add constraint pk约束
primary key(sno)
实验四(3.12)
查询
(一)实验目的:掌握Select语句的使用方法
实验重点:Select语句的语法结构
实验难点:连接查询
实验步骤:1.练习查找指定列的查询
2.练习查找经过计算的列
3.练习为查找字段设置字段别名
4.Where子句的使用
5.多表连接查询
实验五(3.19)
查询
(二)实验目的:掌握SQL语句的使用方法
实验重点:统计查询和嵌套查询和联合查询
实验难点:子查询的方法
实验步骤:1.1.Compute与Compute By的区别
2.子查询 In与Exsits的区别
3.比较运算的子查询
4.联合查询
5.OrderBy子句的使用
6.统计函数的使用
7.Group By 与Having的使用
实验六(3.36)
查询
(三)实验目的:掌握SQL语句的使用方法
实验重点:简单查询和统计查询和嵌套查询
实验难点:嵌套查询的方法
实验步骤:1.在student表中查询CS系学生信息,并产生一个总人数行
2.查询学生信息,统计总人数并对每个系产生一个学生总人数行
3.按系分组,并在每组下显示本系中年龄最大学生年龄
4.按系和性别分组并统计最大年龄和最小年龄
实验七(4.2)
实验内容:创建索引
实验目的:掌握创建索引的方法
重点:掌握索引的基本功能
难点:使用sql语句创建索引
实验操作:
1:使用manegement studio 创建索引
2:创建一表myfriend,所包含的属性列为(名字char(10),性别(10),地址(100)),并在该表上基于名字创建一个唯一聚集索引wj索引,索引的填充为100。
实验八(4.9)
实验内容:创建视图
实验目的:掌握创建视图的方法
重点:掌握视图的基本功能
难点:使用sql语句创建视图
1、在basetest数据库中创建一个MA系的学生信息视图
2、创建IS系女生选课信息,指定字段中文名
3、使用WITH CHECK OPTION子句创建男生信息视图
4、在CS系学生信息视图中查询女生的信息
5、修改cs系学生05008的年龄为21岁
实验九(4.16)
实验内容:流程控制语句与用户自定义函数的使用
实验目的:掌握流程控制语句与用户自定义函数的使用
重点:掌握自定义函数的创建
难点:表值用户自定义函数的创建
实验操作:
1:计算1+2+3+...+100的和
2:计算n!(n=10)
3: 查询是否有选修成绩高于90分的学生,有则输出该生信息,没有就输出“不存在选修成绩高于90分的学生。”
实验十(4.23)
实验内容:存储过程、事务及游标
实验目的:掌握存储过程、事务及游标的使用
重点:掌握存储过程的创建、事务创建及游标的使用方法
难点:带参数的存储过程的创建、游标的使用
实验操作:
1:创建存储过程ppa,能根据给定的‘系别’返回该系对应的学生的sno,sname,ssex 2:创建存储过程ppb,能根据给定的‘系别’统计该系的人数,并将人数输出显示!
第四篇:SQL数据库心得
黄淮学院 2015---2016学年第 一 学期 《C#数据库应用程序开发技术与案例教程》课程
题目:
学习报告
院
系:数学科学系 专
业:数学与应用数学 年
级:1301B 姓
名:曹占营 学
号:1331110101 任课教师:杨锋英
2015年 12 月 30日
C#数据库学习报告
在日常生活中,我们和朋友、亲戚联系,会广泛用到通讯录,因此这门课程以通讯录开发为案例,教我们学习软件开发。
软件开发是一项非常注重实践工作,不可能只凭看书、看视频就学会软件开发,必须扎扎实实、一行一行的编写代码,不断积累项目经验,才能真正掌握编程技术,所以我们要亲自上级编写程序,才能真正掌握软件开发技术。
本书分为基础篇、进阶篇、高级篇,由浅入深地介绍了基于C#的数据库编程技术,所用的开发工具为Visual Studio 2008、SQL Server 2005以及Access 2007。
学习数据库的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从课程中让我更明白一些知识,查询可以通过SQL语言进行完成,这样加深了查询语句的基本结构,让我们能更好的掌握其中语句,方便于我们后面的学习和应用。表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。在编程方面是需要我们对于编程有逻辑思维能力及一定的编程技巧。在数据库中插入表、表中的信息等都需要注意,不然很容易出错。
在基础篇中,详细讲解了通讯录系统的设计、开发和安装部署这样一个完整过程,对各个任务进行详细讲解。基础篇学习分为9个任务,分别为系统分析与设计、用户登录、主窗体设计、联系人分组管理、联系人管理、用户密码修改、数据库备份与恢复、设计“关于”窗体、系统安装与部署。学完基础篇,即可开发出一个功能较为完备的通讯录系统。在联系人管理任务学习中,由于在Contact表中保存的是分组编号,而窗体上要显示的是分组名称,所以在查询语句中需要级联查询,即SQL语句为”select Contact.Id, Name, Phone, Email, QQ, GroupName from Contact, ContactGroup where Contact.GroupId = ContactGroup.Id”。为了实现代码复用,可以提供查询功能,根据用户选择的擦寻天剑,拼接产生SQL语句。同时为了支持模糊查询,还在SQL语句中用了like语句。通过SqlDataAdapter的Fill方法填充数据集,获取数据。数据集中有了数据以后,我们只需设置DataGridView控件的DataSource属性,就可以显示数据了。
在进阶篇中,介绍了企业项目开发中广发用到的参数化SQL语句、存储过程使用及定义数据库操作类,分为3个任务学习,分别为使用参数化SQL语句、使用存储过程、使用自定义数据库操作类,进一步提高我们的数据库编程能力。在使用存储过程任务学习中,了解到存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在性能方面,存储过程有如下的优点。(1)与编译,存储过程预先编译好放在数据库内,减少编译语句所花的时间。(2)缓存,编译好的存储过程会进入缓存,所以对于经常执行的存储过程,除了第一次执行外,其他次执行的书都会有明显提高。(3)减少网络传输,特别对于处理一些数据的存储过程,不必像直接用SQL语句实现那样多次传送数据到客户端。通过前面的学习,细细体会对数据库的操作,可以发现,这么多操作其实可以分为4种。(1)对数据库进行非连接式查询操作,返回多条记录。这种操作可以通过SqlDataAdapter对象的Fill方法来完成,即把查询得到的结果填充到DataTable(或DataSet)对象中。(2)对数据库进行连接式查询操作,返回多条查询记录。这种操作可以通过SqlCommand对象的ExecuteReader方法来完成,返回SqlDataReader对象。(3)从数据库中检索单值。这种操作可以通过SqlCommand对象的ExecuteNonQuery方法来完成。ExecuteScalar方法返回的是Object类型,需要根据实际情况进行类型转换。(4)对数据库执行增、删、改操作。这种操作可以通过SqlCommand对象的ExecuteNonQuery方法来完成,返回增、删、改操作后数据库中受影响的行数。
在高级篇中,分为4个任务学习,分别为开发基于三层构架的通讯录程序、开发基于Access的通讯录程序、实现基于抽象工厂模式的三层架构、使用MD5加密用户密码。首先详细讲解了基于三层构架的通讯录程序开发过程以及如何开发一个基于Access的通讯录系统。最后,介绍了如何采用MD5加密技术对用户密码加密。MD5加密技术也是实际项目开发中广泛用到的,通过MD5加密用户密码,可以提高程序的安全性。“三层架构”一词中的“三层”是指:“表示层”、“业务逻辑层”、“数据访问层”。表示层:位于最外层,离用户最近。用于显示和接收用户输入的数据,为用户提供一种交互式操作界面。表示层的常见形式为WinFrom和WebForm。业务逻辑层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。业务逻辑层也可以包括一些对“商业逻辑”描述代码在里面。数据访问层:仅实现对数据的保存和读取操作。可以访问数据库系统、二进制文件、文本文档或是XML文档。
在这一学期有限的几次实验课后,我虽然没有学会很多,但也学会了一些简单的操作,我学会了一些简单的数据运算,会建立一些简单的表。有时候在做实验时,对于实验中的一些东西我不怎么了解,但我还会去做,因为我想只有多练习才能熟练,也才能理解掌握知识。我不知道这一门课对其他同学来说怎么样,但对我来说却有些难,但我会努力。因为我认为它对我以后考计算机二级有很大的帮助。
很快这一学期马上就要结束了,数据库这一门课也很快就要结束了,但这一学期的学习让我知道了很多,也告诉了我在以后的人生中如何去做事,如何去做人。尤其是老师的耐心,老师的敬业精神感动了我,再做任何事时都应该认真负责,任何一个人都应该被尊重。
第五篇:数据库上机心得体会
数据库上机心得体会
数据库的课程结束了,通过对数据库的学习也初步掌握其各方面的知识,数据库的功能是强大的,面对目前的信息化社会,在整理、查询、分析数据方面是一款强有力的工具。
学习的目的在于将知识能合理顺利的运用,将书本知识化为自己所用,是一个不知到知道,了解完善应用的过程,尤其是计算机方面的课程更是如此,必要的上机练习是必不可少的。之前的计算机语言、汇编语言等,都是在上机练习中得到顺利掌握。面对这学期的数据库也是如此的过程,在开始对理论知识的学习,然后进行上机练习,目的在于让我们更好的掌握其知识,熟悉数据库编程语言等。
当然上机可也不是轻松是课程,在课前还是应该做些相应的准备。首先在理论知识的学习中必须先打好基础,经过预习、听课、复习、作业四个环节的学习,对于这门课的理论知识有了一定了解,才便于我们的上机课程,理论与上机的结合这样才有助于我们更好的掌握知识。
在数据库上机中主要是用到的SQL(Structured
Query
Language)结构化查询语言,它是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。可以帮我们做到面向数据库执行查询、取回数据、插入新的记录、更新数据库中的数据、删除记录、创建新数据库、新表和视图、设置表、存储过程和视图的权限,功能非常强大。
学习数据库的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从课程中中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。在编程方面是需要我们对于编程有逻辑思维能力及一定的编程技巧。在数据库中插入表、表中的信息等都需要注意,不然很容易出错。
通过上机练习让我比较容易的掌握理论知识的难点,以及一些平时不注意的问题,在上机练习的过程中需要对每个细节都要留心,这样才不至于出错,这就加强了我们对平时不注意的问题得到回应,从而加深了细节问题的处理方式。在上机的学习之后更加了解了表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容应该如何设置比较好一些,需要具体,但是避免繁琐,对表的概念和应用有了更深的理解。
上机的学习中也了解到数据库的视图和查询。查询可以通过SQL语言进行完成,这样加深了查询语句的基本结构,让我们能更好的掌握其中语句,方便于我们后面的学习和应用;在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的其中一些操作,可以使用视图来完成。视图的功能也是强大的,使用视图不仅可以简化数据操作,还可以提高数据库的安全性,不仅可以检索数据,也可以通过视图向基表中添加、修改和删除数据。
在学习过程中也遇到了不少问题,积极询问老师,和同学共同商讨,查询资料把问题得以解决,培养了解决问题的能力,查阅资料是很好的手段,在今后的学习过程中应该继续发扬这些能力。数据库的学习是在学习与探索中度过的,短暂的课程时间的学习是结束了,但其中学到了许多知识,也有诸多的问题需要今后去解决,学习一门课程,学到的是如何学会,而不是随随便便的学完,在今后还要自己强化各方面的知识,真正学以致用。通过这次的学习,我了解了数据库的概念与重要性,还有今后的发展方向,明白数据库的应用是广泛的,不可小觑,在今后应该再进行加强学习。