㈠ 数据库实习心得体会
数据库是一门非常实用的技术语言,通过实习的方式能够快速提升我们对这门语言的掌控,下面是由我为大家整理的“数据库实习心得体会”,仅供参考,欢迎大家阅读。
数据库实习心得体会(一)
时间一晃而过来公司x个月的时间,以快速了解xx银行实物资产系统的业务需求,进行对系统的分析,这是我人生中弥足珍贵的一段经历。在这段时间里领导在工作上给予了我极大的帮助,让我充分感受到了领导们“海纳百川”的胸襟悉伍,感受到了大发人“不经历风雨,怎能见彩虹”的豪气。肃然起敬的同时,也为我有机会成为一份子而自豪。每个人都是在不断的总结中成长,在不断的审视中完善自己。在这段时间里自己也是在总结、审视中脚踏实地地完成好本职工作,现将这段时间总结如下:
1、对xx银行的实物资产系统的整个数据库的规划;
2、分拆库设计,登陆及权限库,全行库,分行库,批处理库,建示意图,开发部和业务部开会讨论确认,最后按方案设计;
3、数据库设计、数据分析、系统开发维护和管理工作;
4、设计备份与恢复策略并贯彻实施、设计数据库高可用性方案并贯彻实施;
5、设计数据库高可用性方案并贯彻实施、根据业务及应用开发需求进行数据建模、开发较复杂的后台存储过程及触发器;
6、主持开发过大型数据库系统,能够通过良好数据库结构设计解决海量数据的高效处理;
7、我以前一直从事编程方面,在编程的思想上去考虑问题,在公司紧缺数据库设计工程师,在项目经理的安排下,我主要负责数据库设计,在数据库设计方面,我学会数据库优化,准确理解需求;掌握常见互联网应用服务的配置与管理,开发过大容量数据库、高性能的服务。
我有一个人生目标:做最有影响力的自己。它不是靠哗众取宠能够得来的,而是需要不断提升梦想的高度、拓展心灵的宽度、累积思想的厚度!我相信,我的人生目标在以后的路上会一直影响我的职业生涯。熟练掌握我们的产品。力争做个技术骨干!这是我对自己一个总体要求!
数据库实习心得体会(二)
一个月的数据库实训就转眼间就上完了,期间讲解了一个学生管理系统,最后还做了一个小的数据库链接作业。现在就说说关于vb链接的数据库的一些方法。
首先说数据库,简单的说就是建表格,然后把一张一张的表格和在一起,成为一大堆的数据集合。他是依照某种数据结构组织起来并存放二级存储器中的数据集合,基本分为三个层次,物理数据层,概念数据层和逻辑数据层。不同层次间的联系是通过映射来转换的。
大多数vb链接数据库都使用ado控件,他可以分为分为有源数据库和无源数据库,即是否使用了dsn数据源。在连接数据库前首先要在vb菜单中“工程““引用”或“部件”从中选择microsoft activex data objects 2.6 library和microsoft activex data objects recordset 2.6两个组件,然后定义链接的对象,用什么名字由自己决定。这样数据库也就基本上链接好了。
x月x号进入宏天实训公司参加软件开发实训的,在此次实训中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心就由然而生,这应该就是工作的乐趣。有时岩清候不懂的就需要问别人了,虚心请教,从别人的身上真的能学到自己没有的东西,每一次的挫折都会使我更接近成功。还有学会了在工作中与人的合作与交流,同乐同累,合作互助,这是团体的精神,也是必须学习的东西。
经过之前的在校学习,对程序设计有了一定的认识与理解。在校期间,一直都是学习理论知识,没有机会去参与项目的开发。所以说实话,在实训之前,软件项目开发对我来说是比较抽象的,一个完整的项目要怎么分工以及完成该项目所要的步骤也不是很明确。而经过这次实训,让我明白了一个完整项目的开发,必须由团队来分工合作,并在每个阶段中进行必要的总结与论证。
一个完整项目的开发它所要经历的阶段包括:远景范围规划和用例说明睁枣或、项目结构和风险评估、业务功能说明书、详细设计说明书、代码实现、测试和安装包等等。一个项目的开发所需要的财力、人力都是很多的,如果没有一个好的远景规划,对以后的开发进度会有很大的影响,甚至会出现在预定时间内不能完成项目或者完成的项目跟原来预想的不一样。一份好的项目结构、业务功能和详细设计说明书对一个项目的开发有明确的指引作用,它可以使开发人员对这个项目所要实现的功能在总体上有比较明确的认识,还能减少在开发过程中出现不必要的麻烦。代码的实现是一个项目开发成功与否的关键,也就是说,前期作业都是为代码的实现所做的准备。
我深刻的认识到要成为一名优秀的软件开发人员不是一件容易的事情,不仅要有足够的干劲和热情,还要有扎实的编写代码基础,必须要有事先对文档进行可靠性报告,功能说明书,详细设计说明书等的编写和一些风险评估的编写的能力。
除了图书馆,最能让我感觉到身在大学的就是实训机房,在匆匆过去的两个月内,我往返于实训机房与宿舍之间,使我享受了一个充实的学习时期,让我感受到了大学的魅力,对自己充满信心,对大学充满信心,以积极的心态迎接明天挑战。
实训中要求有扎实的理论基本知识,操作起来才顺心应手,我这时才明白什么是“书到用时方恨少”。这就激发了学习的欲望。
“学以致用”,就是要把学来的知识能运用到实际操作当中,用实践来检验知识的正确性。我想,这是实训的最根本目的。
“纸上得来终觉浅,绝知此事要躬行!”,在短暂的实训过程中,让我深深感受到自己在实际运用中专业知识的匮乏。以前总以为自己学的还不错,一旦应用到实际就大不一样了,这时才真正领悟“学无止境”的含义。
数据库实习心得体会(三)
在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。
当我们这组决定做大学生就业咨询系统时,我们并没有着手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块的分工。每个人都有自己的模块设计,而且写出来的代码要求可以实现相应模块的功能,得到理想的效果。当每个人都把自己的分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用的是html和php相互嵌套使用,当一个系统做好了之后,我会好好地把程序都看一遍,理会其中的奥秘。
我所负责的是数据库的备份和还原还有一些界面的实现。还记得自己刚接触html的时候,觉得很感兴趣,所以有一段时间几乎到了痴迷的程度。然而php是我刚接触不久的一种编程语言。不过觉得它的功能真的很强大,可以开发出很多大型的系统。但是在做备份和还原的时候,要考虑的东西还是很多的。当我遇到错误的时候,感到很受打击。值得欣慰的是,在同学的帮助和大量参考书的查阅下,我把自己的模块做好了。这就是我收获最大的地方。而且,我明白了遇到困难永不放弃的重要性,我知道了团队合作的重要性,我领悟了只有坚持不懈才会取得胜利。
知识的获得是无止境的,只要你想学,只要你行动,没有什么会难倒我们的。回首这一个多星期的课程设计,我很欣慰。因为我有了动力,有了勇气。谢谢老师对我们的不懈帮助,谢谢学校给了我们这一次实践的机会,也谢谢组员们的关怀。这些美好的回忆美好的东西将永远伴随着我。
㈡ 数据库实验总结
数据库实验总结【一】
试验内容
春茄消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改为30
alter table s alter column concat varchar(30)
联系方式 名字为concat 修改属性为唯一的 属性名为con_concat
alter table s add constraint con_concat unique(concat)
删除约束关系con_concat
alter 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 约束定义的开始。约束是特殊属性,用于强制数据完整性并可以为表及其列创建索引。
4、--go可以不加但是要注意顺序 注:go --注释 提示错误
5、注意添加一个空元素用 null
附 sql备份
--创建一个数据库 student
create database student
go
--在数据库student中创建表student course sc 注意顺序
use student
----------------------------------------------------------------
create table student
(
sno char(9) primary key, /*sno是主码 列级完整性约束条件*/
sname char(10) unique, /*sname取唯一值*/
ssex char(2),
sage smallint, /*类型为smallint*/
sdept char(20) /*所在系*/
); /*;要加*/
-----------
数据库实验总结【二】
我在sql server 索引基础知识系列中,第一篇就讲了记录数据的基本格式。那里主要讲解的是,数据库的最小读存单元:数据页。一个数据页是8k大小。
对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘。而是变化达到一定数量级后才会作这个操作。 这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据(8个数据页,一个区)作为操作单元。
区是管理空间的基本单位。一个区是八个物理上连续的页(即 64 kb)。这意味着 sql server 数据库中每 mb 有 16 个区。
为了使空间分配更有效,sql server 不会将所有区分配给包含少量数据的表。sql server 有两种类型的区:
统一区,由单个对象所有。区中的所有 8 页只能由所属对象使用。
混合区,最多可由八个对象共享。区中八页的每页可由不同的对象所有。
通常从混合区向新表或索引分配页。当表或索引增长到 8 页时,将变成使用统一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都使用统一区进行。
为何会这样呢?
其实很简单:
读或写 8kb 的时间与读或写 64 kb的时间几乎相同。
在 8 kb 到 64 kb 范围之内,单个磁盘 i/o 传输操作所花的时间主要是磁盘取数臂和读/写磁头运动的时间。
因此,从数学上来讲,当需要传输 64 kb 以上的 sql 数据时,
尽可能地执行 64 kb 磁盘传输是有益的,即分成数个64k的操作。
因为 64 kb 传输基本上与 8 kb 传输一样快,而每次传输的 sql server 数据是 8 kb 传输的 8 倍。
我们通过一个实例来看 有and 操作符时候的最常见的一种情况。我们有下面一个表,
create table [dbo].[member]( [member_no] [dbo].[numeric_id] identity(1,1) not null, [lastname] [dbo].[shortstring] not null, [firstname] [dbo].[shortstring] not null, [middleinitial] [dbo].[letter] null, [street] [dbo].[shortstring] not null, [city] [dbo].[shortstring] not null, [state_prov] [dbo].[statecode] not null, [country] [dbo].[countrycode] not null, [mail_code] [dbo].[mailcode] not null, [phone_no] [dbo].[phonenumber] null, [photograph] [image] null, [issue_dt] [datetime] not null default (getdate()), [expr_dt] [datetime] not null default (dateadd(year,1,getdate())), [region_no] [dbo].[numeric_id] not null, [corp_no] [dbo].[numeric_id] null, [prev_balance] [money] null default (0), [curr_balance] [money] null default (0), [member_code] [dbo].[status_code] not null default (' '))
这个表具备下面的四个索引:
索引名 细节 索引的列
member_corporation_link nonclustered located on primary corp_no
member_ident clustered, unique, primary key located on primary member_no
member_region_link nonclustered located on primary region_no
memberfirstname nonclustered located on primary firstname
当我们执行下面的sql查询时候,
select m.member_no, m.firstname, m.region_nofrom dbo.member as mwhere m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go
sql server 会根据索引方式,优化成下面方式来执行。
select a.member_no,a.firstname,b.region_nofrom(select m.member_no, m.firstname from dbo.member as m where m.firstname like 'k%' and m.member_no < 5000) a , -- 这个查询可以直接使用 memberfirstname 非聚集索引,而且这个非聚集索引覆盖了所有查询列-- 实际执行时,只需要 逻辑读取 3 次
(select m.member_no, m.region_no from dbo.member as mwhere m.region_no > 6) b
-- 这个查询可以直接使用 member_region_link 非聚集索引,而且这个非聚集索引覆盖了所有查询列-- 实际执行时,只需要 逻辑读取 10 次
where a.member_no = b.member_no
不信,你可以看这两个sql 的执行计划,以及逻辑读信息,都是一样的。
其实上面的sql,如果优化成下面的方式,实际的逻辑读消耗也是一样的。为何sql server 不会优化成下面的方式。是因为 and 操作符优化的另外一个原则。
1/26 的数据和 1/6 的数据找交集的速度要比 1/52 的数据和 1/3 的数据找交集速度要慢。
select a.member_no,a.firstname,b.region_nofrom(select m.member_no, m.firstname from dbo.member as mwhere m.firstname like 'k%' -- 1/26 数据) a,
(select m.member_no, m.region_no from dbo.member as mwhere m.region_no > 6 and m.member_no < 5000-- 1/3 * 1/ 2 数据) bwhere a.member_no = b.member_no
当然,我们要学习sql 如何优化的话,就会用到查询语句中的一个功能,指定查询使用哪个索引来进行。
比如下面的查询语句
select m.member_no, m.firstname, m.region_nofrom dbo.member as m with (index (0))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go
select m.member_no, m.firstname, m.region_nofrom dbo.member as m with (index (1))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000goselect m.member_no, m.firstname, m.region_nofrom dbo.member as m with (index (membercovering3))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000goselect m.member_no, m.firstname, m.region_nofrom dbo.member as m with (index (memberfirstname, member_region_link))where m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go
这里 index 计算符可以是 0 ,1, 指定的一个或者多个索引名字。对于 0 ,1 的意义如下:
如果存在聚集索引,则 index(0) 强制执行聚集索引扫描,index(1) 强制执行聚集索引扫描或查找(使用性能最高的一种)。
如果不存在聚集索引,则 index(0) 强制执行表扫描,index(1) 被解释为错误。
总结知识点:
简单来说,我们可以这么理解:sql server 对于每一条查询语句。会根据实际索引情况(sysindexes 系统表中存储这些信息),分析每种组合可能的成本。然后选择它认为成本最小的一种。作为它实际执行的计划。
成本代价计算的一个主要组成部分是逻辑i/o的数量,特别是对于单表的查询。
and 操作要满足所有条件,这样,经常会要求对几个数据集作交集。数据集越小,数据集的交集计算越节省成本。
的项目中,竟然出现了滥用聚集索引的问题。看来没有培训最最基础的索引的意义,代价,使用场景,是一个非常大的失误。这篇博客就是从这个角度来罗列索引的基础知识。
使用索引的意义
索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。
使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。
使用索引的代价
索引需要占用数据表以外的物理存储空间。
创建索引和维护索引要花费一定的时间。
当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。
创建索引的列
主键
外键或在表联接操作中经常用到的列
在经常查询的字段上最好建立索引
不创建索引的列
很少在查询中被引用
包含较少的惟一值
定义为 text、ntext 或者 image 数据类型的列
heaps是staging data的很好选择,当它没有任何index时
excellent for high performance data loading (parallel bulk load and parallel index creation after load)
excellent as a partition to a partitioned view or a partitioned table
聚集索引提高性能的方法,在前面几篇博客中分别提到过,下面只是一个简单的大纲,细节请参看前面几篇博客。
何时创建聚集索引?
clustered index会提高大多数table的性能,尤其是当它满足以下条件时:
独特, 狭窄, 静止: 最重要的条件
持续增长的,最好是只向上增加。例如:
identity
date, identity
guid (only when using newsequentialid() function)
聚集索引唯一性(独特型的问题)
由于聚集索引的b+树结构的叶子节点必须指向具体数据。如果你要建立聚集索引的列不唯一,并且你指定的创建的聚集索引是非唯一的聚集索引,则会有以下情况:
如果未使用 unique 属性创建聚集索引,数据库引擎 将向表自动添加一个四字节 uniqueifier 列。必要时,数据库引擎 将向行自动添加一个 uniqueifier 值,使每个键唯一。此列和列值供内部使用,用户不能查看或访问。
㈢ “笔记”数据库查询机制以及select的使用
查询语法
asc升序(从小到大,默认就是升序,可以不写) desc降序(从大到小) order by这句一定是放在最后。如果有多个列名,使用英文逗号分开,优先排序前面的,先排列前面的列名,然后再排序后面的列名。
查询全部行和列:
查询部分行业列:
select Sname,SGrade from Students
where
as取别名
取别名,再给领导汇报数据的时候,字段都是是用自己定义的数据,领导可能看不懂,怎么办?把字段换成中文来显示:
判断空值有两种,一种是有值删除后,使用=,where Name=’‘
如果是值默认的空值NULL,只能使用is,where Name is NULL
使用 top 数字 取前几条查询语句
使用百分比 top 数字 percent
另外只有日期类型比较特殊,可以使用大于等于小于的,带引号,格式不能写错。
系统函数:
字符串函数
charindex
select charindex(参数1需要找的,数据源,起始位置数字)
LEN 返回长度。(去掉最右边的空格,中间和前面的空格去不掉)
selcet len(’ M y ‘)
LTRIM 去左边的空格,嵌套使用
select len(ltrim(' M y ') //去掉左边的空格,返回
……太多了,记不住,需要的时候,到网上搜索
还有日期函数,数学函数,……
cast数据转换
select cast(文本数字 as int)
convert有格式的转换
㈣ 计算机三级数据库技术笔记
网络数据库技术
一、单项选择题
1. 存储在计算机内有结构的数据的集合,称为数据库。
2. 以二维表格的形式组织数据库中的数据,这种数据模型是关系模型
3. 下面哪个数据库属于中小规模数据库管理系统Access。
4. SQL Server 2000有两类数据库,分别是用户数据库和系统数据库。
5. 两个实体:学院和学生之间的联系应为一对多联系。
6. 错误的对象部分限定名是服务器名.对象名。
7. SQL Server字符型包括char和varchar。
8. 下列SQL语句中,修改表结构的是ALTER TABLE。
9. 下列SQL语句中,向表中插入数据的是INSERT。
10. 关系运算的特点是运算的对象和结果都是表。
11. 两个表连接最常用的条件是两个表的某些列值相等,这样的连接称为等值连接。
12. 在数据库查询语句SELECT中,指定分组表达式的子句是GROUP BY子句。
13. 用以限制查询结果集中的行数过多,仅指定部分结果所采用的关键字是TOP。
14. 能够在LIKE子句中匹配多个字符的通配符是%。
15. 统计组中满足条件的行数或总行数的聚合函数是COUNT。
第16到第19题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
16. 检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=‘王华’)
17. 检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是SELECT S# FROM SC WHERE C#=‘C2’ AND GRADE>= ALL (SELECT GRADE FROM SC WHERE C#=‘C2’)
18. 检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是SELECT S.SN, SC.C#, SC.GRADE FROM S, SC WHERE S.S#=SC.S#
19. 检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60 GROUP BY S# HAVING COUNT(*)>=4 ORDER BY 2 DESC
20. 创建视图的SQL命令是CREATE VIEW
22. 打开游标所使用的SQL命令是OPEN。
23. 请选出不属于T-SQL语言组成部分的是数据转换语言。
24. 声明变量所使用的关键字为DECLARE。
25. 按照索引的组织方式,可以将索引分为聚集索引和非聚集索引。
26. 又称为列完整性,指给定列输入的有效性的是域完整性。
27. 创建存储过程的SQL命令是CREATE PROCEDURE。
28. 不属于维护数据的触发器的是SELECT。
29. 只备份自上次备份以来发生过变化的数据库的数据,也称增量备份的是差异备份。
30. 数据库系统与外部进行数据交换的操作是导入/导出。
31. 具有数据表达方式简洁、直观,插入、删除、修改操作方便等特点的数据模型是关系模型.
32. 按一定的数据模型组织数据,对数据库进行管理的是数据库管理系统.
33. 对于这样一个关系:学生(学号、姓名、专业名、性别、出生日期、总学分),请选出关系的码(关键字)为学号
34. 两个实体:学院和学生之间的联系应为一对多联系.
35. 数据库对象的名称中各部分使用何种符号隔开“.”。
36. 每个表可以有多少个列设置为标识属性identity1。
37. 下列SQL语句中,创建表结构的是CREATE TABLE。
38. 下列SQL语句中,删除表中的指定数据的是DELETE。
39. 关系运算的特点是运算的对象和结果都是表。
40. 从表中选出指定的属性值(列名)组成一个新表,这样的关系运算是投影。
41. 在数据库查询语句SELECT中,指定表或视图的子句是FROM子句。
42. 在数据库查询语句中,为使用自己选择的列标题而更改查询结果的列标题名,所使用的关键字是AS。
43. 在WHERE子句中,可以使用通配符来对字符串进行模糊匹配的关键字是LIKE。
44. 在学生表XS表中查询总学分尚未定的学生情况,正确的查询语句是SELECT * FROM XS WHERE 总学分 IS NULL。
45. 在查询语句中对查询的结果进行排序,用于升序排序的关键字是ASC。
第16到第19题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
46. 检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是;SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=‘王华’)
47. 检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是;SELECT S# FROM SC WHERE C#=‘C2’ AND GRADE>= ALL (SELECT GRADE FROM SC WHERE C#=‘C2’)
48. 检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是;SELECT S.SN, SC.C#, SC.GRADE FROM S, SC WHERE S.S#=SC.S#
49. 检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是;SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60 GROUP BY S# HAVING COUNT(*)>=4 ORDER BY 2 DESC
50. 修改视图的SQL命令是ALTER VIEW。
51. 若用如下的SQL语句创建一个student表:(‘1031’, ‘曾华’, NULL, NULL)
52. 在使用游标时首先要执行的是声明游标。
53. SQL语言是一种用于数据库查询的结构化语言。
54. 请选出不属于T-SQL语言组成部分的是数据转换语言。
55. T-SQL中局部变量用哪种符号进行标识@。
56. 请选择不是索引的作用的是使表中数据排列更为美观。
57. 如果一个表中的一个字段或若干个字段的组合是另一个表的码,则称该字段或字段组合为该表的外码。
58. 执行存储过程的SQL命令是EXEC 。
59. SQL Server 2000中不允许使用的备份介质是只读光盘。
60. 从外部数据源中检索数据,并将数据插入到SQL Server表的过程,称为导入数据。
61、表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。
62、SQL Server 2000有两类数据库:系统数据库和用户数据库。
63、在设计表时列的identity属性:实现的是自动增长的功能。
64、创建数据库的SQL命令:CREATE DATABASE。
65、删除数据库的SQL命令:DROP DATABASE。
66、创建表的SQL命令:CREATE TABLE。
67、删除表的SQL命令:DROP TABLE。
68插入表数据的SQL 命令:INSERT。
69、删除表数据的SQL命令:DELETE和TRUNCATE TABLE,了解二者的区别。
70、修改表数据的SQL命令:UPDATE。
71、使用SQL命令创建视图:CREATE VIEW。
72、使用SQL命令修改视图:ALTER VIEW。
73、当视图所依赖的基本表有多个时,不提倡向该视图插入数据,因为这会影响多个基本表。
74、使用SQL命令删除视图:DROP VIEW。
75、使用SQL命令声明游标:DECLARE。
76、声明游标时SCROLL的用法:可以使游标向前、向后滚动。
77、使用SQL命令打开游标:OPEN。
78、使用SQL命令利用游标读取数据:FETCH。
79、控制游标的关键字:NEXT| PRIOR| FIRST | LAST| ABSOLUTE n| RELATIVE n。
80、使用SQL命令关闭游标:CLOSE。
81、使用SQL命令删除游标:DEALLOCATE。
82、 SQL语言是用于数据库查询的结构化语言。
83、T-SQL语言的组成部分:数据定义语言、数据操纵语言和数据控制语言。
84、变量的命名:以字母、_、@或#开头,后接多个字母、数字、_、@或#构成。
85、运算符与表达式:AND和OR
86、按照索引的组织方式,可将索引分为聚集索引和非聚集索引。
87、惟一索引:不会有两行记录相同的索引键值。
88、使用SQL命令删除索引:DROP INDEX。
89、使用SQL命令创建带参数的存储过程的格式:
CREATE PROCEDURE procere_name @variable_name datatype
AS
<sql_statement>
90、使用SQL命令执行带参数的存储过程:EXEC procere_name value。
91、使用SQL命令修改存储过程的格式:
ALTER PROCEDURE procere_name
AS
<sql_statement>
92、使用SQL命令删除存储过程:DROP PROCEDURE。
93、设计备份策略的指导思想是:以最小的代价恢复数据。
94. 假定学生关系是S(S#, SNAME, SEX, AGE),课程关系是C(C#, CNAME, TEACHER),学生选课关系是SC(S#, C#, GRADE)。要查找选修课程名“COMPUTER”的性别为“女”的学生姓名,将涉及到的关系是:S, C, SC。
95. 数据库对象的名称中各部分使用何种符号隔开“.”。
96. 在SQL Server 2000中,精确整数型包括decimal和numeric。
97. 下列SQL语句中,实现删除数据库的语句是DROP DATABASE。
98. 下列SQL语句中,向表中插入数据的是INSERT。
99. 把两个表中的行按照给定的条件进行拼接而形成新表,这样的关系运算是连接。
100. 在数据库查询语句SELECT中,指定表或视图的子句是FROM子句。
101. 在数据库查询中,消除结果集中的重复行所使用的关键字是DISTINCT。
102. 能够在LIKE子句中匹配单个字符的通配符是“_”。
103. 在查询语句中对查询的结果进行排序,用于降序排序的关键字是。DESC
104. 若用如下的SQL语句创建一个student表:
CREATE TABLE student(NO C(4) NOT NULL,
NAME C(8) NOT NULL,
SEX C(2),
AGE N(2))
可以插入到student表中的是(‘1031’, ‘曾华’, NULL, NULL)
第16到第19题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
105. 检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是
SELECT SN, AGE, SEX FROM S
WHERE AGE>(SELECT AGE FROM S
WHERE SN=‘王华’)
106. 检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是
SELECT S# FROM SC
WHERE C#=‘C2’ AND GRADE>= ALL
(SELECT GRADE FROM SC
WHERE C#=‘C2’)
107. 检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是
SELECT S.SN, SC.C#, SC.GRADE
FROM S, SC
WHERE S.S#=SC.S#
108. 检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是
SELECT S#, SUM(GRADE) FROM SC
WHERE GRADE>=60
GROUP BY S#
HAVING COUNT(*)>=4
ORDER BY 2 DESC
109. 创建视图的SQL命令是
CREATE VIEW
110、局部变量在声明后初始化为NULL。
二、多项选择题
1. 关系数据库模型的优势在于;数据表达方式简洁、直观;插入、删除、修改操作方便。
2. 请选出SQL Server 2000的两种常用工具;企业管理器;查询分析器。
3. 设计表时空值的作用;表示不需要添加的数据;表示将在以后添加的数据。
4. 数据库的查询语句SELECT的语法格式中不包含以下哪些内容;DROP子句;UPDATE子句。
5. 在比较子查询可以使用的比较关键字包括;ALL ; ANY。
6. 在使用游标读取数据时,可用来滚动记录的关键字是;NEXT;LAST;PRIOR;FIRST。
7. 索引的功能包括;快速存取数据;保证数据记录的惟一性;实现表与表之间的参照完整性;利用索引可减少排序和分组的时间。
8. 数据库中的数据丢失或被破坏的原因是;计算机软、硬件故障;误操作;自然灾害;盗窃。
9. 确定备份频率主要考虑的是;系统恢复的工作量;系统执行的事务量。
10. 导入/导出操作包括数据传输;数据转换。
11. 目前,大型的数据库管理系统主要包括;Oracle;SQL Server;DB2。
12. SQL Server 2000的数据库可以分为;系统数据库;用户数据库。
13. 数据库对象包括;表;视图;索引;存储过程;触发器。
14. 设计表时空值的作用;表示不需要添加的数据;表示将在以后添加的数据。
15. 数据库的查询语句SELECT的语法格式中包括以下哪些内容;FROM子句;WHERE子句;GROUP BY子句;HAVING子句;ORDER BY子句。
16. 可以用于SELECT语句的聚合函数包括;SUM和AVG;MAX和MIN;COUNT。
17. T-SQL语言包含以下哪些重要部分;数据定义语言 ;数据操纵语言;数据控制语言。
18. 数据完整性包括;域完整性;实体完整性;参照完整性。
19. 数据库中的数据丢失或被破坏的原因是;计算机软、硬件故障;误操作;自然灾害;盗窃。
20. 对导入/导出操作描述正确的是;导入/导出是数据库系统与外部进行数据交换的操作;导入数据是把其他系统的数据引入到SQL Server的数据库中;导出数据是把数据库从SQL Server数据库中引导其他字段。
21、流行的中小型数据库包括Access和Visual Foxpro。大型数据库管理系统包括Oracle,Microsoft的SQL Server,Sybase和IBM的DB2。
22、数据模型分为关系模型、层次模型、网状模型。所划分原则是数据之间的联系。关系模型优势:数据表达方式简洁、直观,插入、删除、修改操作方便。
23、实体之间的联系有如下几种:一对一的联系(1: 1)、一对多的联系(1: n)、多对多的联系(m: n)。
24、 SQL Server 2000的两种常用工具:企业管理器,查询分析器。
25、SQL Server 2000的数据库对象包括:表、视图、索引、存储过程、触发器和约束。
26、数据库对象的完全限定名包括:服务器名、数据库名、所有者名和对象名。其中前三个可以省略,掌握省略的格式。
27、常用的关系运算包括:连接、选择和投影。关系运算的特点是运算的对象和结果都是表。
28、SQL Server对游标的使用要遵循的步骤:声明游标;打开游标;读取数据;关闭游标;删除游标。
29、全局变量和局部变量分别用@@和@进行标识。
30、数据完整性的分类:域完整性、实体完整性和参照完整性。
31. 数据库管理系统采用的数据模型有;层次模型;网状模型;关系模型。
32. SQL Server 2000的数据库可以分为;系统数据库;用户数据库。
33. 数据库对象包括;表;视图;索引;;存储过程;触发器。
34. 常见的连接操作包括;等值连接;自然连接。
35. 数据库的查询语句SELECT的语法格式中不包含以下哪些内容;DROP子句;UPDATE子句。
36. 请从下面的关键字中选出能够用于WHERE子句中进行范围比较的是;IN;BETWEEN。
37. 请选出对视图描述正确的项;数据库中只存储视图的定义;对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。
38. 按照索引的组织方式,可将索引分为;聚集索引;非聚集索引。
39. 存储过程包括以下哪些类型;系统存储过程;本地存储过程;临时存储过程;远程存储过程;扩展存储过程。
40.SQL Server 2000中,允许使用的备份介质包括;硬盘;磁带;命名管道。
三、名词解释
1、码:在关系表中,如果一个字段或几个字段组合的值可惟一标识其对应记录,则称该字段或字段组合为码。
2、记录:每个表包含了若干行数据,它们是表的“值”,表中的一行称为一个记录。
3. 投影:投影运算从表中选出指定的属性值(列名)组成一个新表,记为:∏A(R)。
4. 索引: 根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表。
5. 参照完整性: 又称为引用完整性。参照完整性保证主表中的数据与从表中数据的一致性。
6. 数据库:是存放数据及相关信息的仓库。
7. 字段:每个记录由若干个数据项构成,将构成记录的每个数据项称为字段。
8. 连接:连接运算把两个表中的行按照给定的条件进行拼接而形成新表,记为: 。
9. 数据的完整性:是指数据库中的数据在逻辑上的一致性和准确性。
10. 数据库恢复:就是当数据库出现故障时,将备份的数据库加载到系统,从而使数据库恢复到备份时的正确状态。
11、数据库(DB):数据库是存放数据及相关信息的仓库。
12、数据库管理系统(DBMS):数据库管理系统是管理数据库的系统,它按一定的数据模型组织数据。
13、实体和实体集:每一类数据对象的个体称为实体,而每一类对象个体的集合称为实体集。
14、记录:每个表包含了若干行数据,它们是表的“值”,表中的一行称为一个记录。
15、字段:每个记录由若干个数据项构成,将构成记录的每个数据项称为字段。
16、选择运算:选择运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果,选择运算的记号为σF(R)。
17、投影运算:投影运算从表中选出指定的属性值(列名)组成一个新表,记为:∏A(R)。
18、连接运算:连接运算把两个表中的行按照给定的条件进行拼接而形成新表,记为: 。
19、等值连接:两个表的某些列值相等,这样的连接称为等值连接。
20、自然连接:自然连接运算要求两个表有共同属性,自然连接运算的结果表是在参与操作两个表的共同属性上进行等值连接后再去除重复的属性后所得的新表,自然连接运算记为: 。
21、局部变量:DECLARE @local_variable data_type,所有局部变量在声明后均初始化为NULL。
22、域完整性:域完整性又称为列完整性,指给定列输入的有效性。
23、实体完整性:实体完整性又称为行的完整性,要求表中有一个主键,其值不能为空且能惟一地标识对应的记录。
24、参照完整性:参照完整性又称为引用完整性。参照完整性保证主表中的数据与从表中数据的一致性。
25、外码:如果一个表中的一个字段或若干个字段的组合是另一个表的码则称该字段或字段组合为该表的外码。
26、存储过程:在SQL Server中,可以定义子程序存放在数据库中,这样的子程序称为存储过程。
27、触发器:触发器是一类特殊的存储过程。触发器与表的关系密切,用于保护表中的数据。当有操作影响到触发器保护的数据时,触发器自动执行。
28、导入/导出:导入/导出是数据库系统与外部进行数据交换的操作。
导入数据是从外部数据源中检索数据,并将数据插入到SQL Server表的过程,即把其他系统的数据引入到SQL Server的数据库中。
导出数据是将SQL Server数据库中的数据转换为某些用户指定格式的过程,即把数据库从SQL Server数据库中引到其他系统。
四、简答题
1. 请列举SQL Server 2000的数据库对象。
表、视图、索引、存储过程、触发器和约束。
2. 简述存储过程的优点。
(1)存储过程在服务器端运行,执行速度快。
(2)存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。
(3)确保数据库的安全。
(4)自动完成需要预先执行的任务。
3. 请根据以下表的定义写出创建表的语句。
表名:Student
列名 数据类型 长度 是否允许为空
学号 定长字符型(char) 6 否
姓名 定长字符型(char) 8 否
专业名 定长字符型(char) 10 允许
性别 位型(bit) 1(系统默认值) 否
出生时间 日期时间类型(smalldatetime) 4(系统默认值) 否
总学分 整数型(tinyint) 1(系统默认值) 允许
备注 文本型(text) 16(系统默认值) 允许
CREATE TABLE student(
学号 char(6) NOT NULL,
姓名 char(8) NOT NULL,
专业名 char(10) NULL,
性别 bit NOT NULL,
出生日期 smalldatetime NOT NULL,
总学分 tinyint NULL,
备注 text NULL)
4. 根据以下要求写出实现表操作的SQL语句。
假设数据库中已经建立好以下表结构。
表名:Student
列名 数据类型 长度 是否允许为空
学号 定长字符型(char) 6 否
姓名 定长字符型(char) 8 否
专业名 定长字符型(char) 10 允许
性别 位型(bit) 1(系统默认值) 否
出生时间 日期时间类型(smalldatetime) 4(系统默认值) 否
总学分 整数型(tinyint) 1(系统默认值) 允许
备注 文本型(text) 16(系统默认值) 允许
请分别写出如下操作的SQL语句:
(1) 增加新列 “奖学金等级”,数据类型为tinyint,允许为空;
(2) 删除“备注”列;
(3) 将“出生日期”列的数据类型由原来的smalldatetime修改为datetime。
(1)ALTER TABLE Student ADD 奖学金等级 tinyint NULL
(2)ALTER TABLE Student DROP COLUMN 备注
(3)ALTER TABLE Student ALTER COLUMN 出生日期 datetime
5. 数据库中已经存在下表。
表名:Student
列名 数据类型 长度 是否允许为空
学号 定长字符型(char) 6 否
姓名 定长字符型(char) 8 否
专业名 定长字符型(char) 10 允许
总学分 整数型(tinyint) 1(系统默认值) 允许
备注 文本型(text) 16(系统默认值) 允许
请写出如下对表中数据进行操作的SQL语句:
(1)插入一条学生信息,学号为“532241”,姓名为“张鑫”,专业名为“计算机”;
(2)从表中删除学号为“532240”的学生记录;
(3)将表中所有记录的专业名由“计算机”改为“计算机应用技术”。
(1)INSERT INTO Student(学号, 姓名, 专业名) VALUES(‘532241’, ‘张鑫’, ‘计算机’)
或 INSERT INTO Student VALUES(‘532241’, ‘张鑫’, ‘计算机’, NULL, NULL)
(2)DELETE FROM Student WHERE 学号=‘532240’
(3)UPDATE Student SET 专业名=‘计算机应用技术’ WHERE 专业名=‘计算机’
6. 请列举设计表时包括的内容。
确定表的名字、所包含的列名、列的数据类型、长度、是否可为空值、默认值情况、是否要使用以及何时使用约束、默认设置或规则以及所需索引、哪些列是主键、哪些列是外键。
7. 简述索引的作用。
(1)快速存取数据。
(2)保证数据记录的惟一性。
(3)实现表与表之间的参照完整性。
(4)在使用ORDER BY, GROUP BY子句进行数据检索时,利用索引可减少排序和分组的时间。
8. 请根据以下表的定义写出创建表的语句。
表名:Course
列名 数据类型 长度 是否允许为空
课程号 定长字符型(char) 3 否
课程名 定长字符型(char) 16 否
开课学期 整数型(tinyint) 1(系统默认值) 否
学时 整数型(tinyint) 1(系统默认值) 否
学分 整数型(tinyint) 4(系统默认值) 允许
CREATE TABLE course(
课程号 char(3) NOT NULL,
课程名 char(16) NOT NULL,
开课日期 tinyint NOT NULL,
学时 tinyint NOT NULL,
学分 tinyint NULL)
9. 根据以下要求写出实现表操作的SQL语句。
假设数据库中已经建立好以下表结构。
表名:Course
列名 数据类型 长度 是否允许为空
课程号 定长字符型(char) 3 否
课程名 定长字符型(char) 16 否
开课学期 整数型(tinyint) 1(系统默认值) 否
学时 整数型(tinyint) 1(系统默认值) 否
学分 整数型(tinyint) 4(系统默认值) 允许
请分别写出如下操作的SQL语句:
(1) 增加新列“授课教师”,数据类型为char,长度为10,不允许为空;
(2) 删除“学时”列;
(3) 将“课程名”列的长度由原来16改为20。
(1)ALTER TABLE Course ADD 授课教师 char(10) NOT NULL
(2)ALTER TABLE Course DROP COLUMN 学时
(3)ALTER TABLE Course ALTER COLUMN 课程名 char(20)
10. 数据库中已经存在下表。
表名:Course
列名 数据类型 长度 是否允许为空
课程号 定长字符型(char) 3 否
课程名 定长字符型(char) 16 否
开课学期 整数型(tinyint) 1(系统默认值) 否
学时 整数型(tinyint) 1(系统默认值) 否
学分 整数型(tinyint) 4(系统默认值) 允许
继续需要请留邮箱&上我空间留邮箱