文档视界 最新最全的文档下载
当前位置:文档视界 › SQL Server 基础练习题及答案

SQL Server 基础练习题及答案

SQL Server 基础练习题及答案
SQL Server 基础练习题及答案

SQL Server 基础练习题及答案

【幻天火焰】

目录

一、单表查询练习 (1)

二、聚合函数练习 (3)

三、分组查询练习 (3)

四、嵌套查询练习 (4)

五、联接查询练习 (6)

六、外联接查询 (7)

七、补充提高 (7)

一、单表查询练习

1、查询<学生信息表>,查询学生"张三"的全部基本信息

Select *

from A_studentinfo

where sname='张三'

2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息

Select *

from A_studentinfo

where sname='张三'

or sname='李四'

3、查询<学生信息表>,查询姓"张"学生的基本信息

Select *

from A_studentinfo

where sname like '张%'

4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息

Select *

from A_studentinfo

where sname like '%四%'

5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。

select *

from A_studentinfo

where sname like '李_强'

6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。

Select *

from A_studentinfo

where sname like '张%'

or sname like '李%'

7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息

Select *

from A_studentinfo

where sname like '张%'

and province='北京'

8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息

Select *

from A_studentinfo

where province in ('北京','上海','新疆','山东')

9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息

Select *

from A_studentinfo

where sname like '张%'

and province !='北京'

10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序

select *

from A_studentinfo

order by sex,province,class

11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份

select distinct province as 省份

from A_studentinfo

12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩

Select *

from A_studentcourse

where score is null

13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序

Select *

from A_studentcourse

where score is not null

order by score desc

二、聚合函数练习

1、统计<学生信息表>,统计共有多少个学生

Select count (*) as 学生数量

from A_studentinfo

2、统计<学生信息表>,统计年龄大于20岁的学生有多少个

Select count(*) as 学生数量

from A_studentinfo

where (2008-yearofbirth)>20

3、统计<学生信息表>,统计入学时间在1980年至1982年的学生人数select count(*) as 学生数量

from A_studentinfo

where enrollment between '1998-01-01' and '2003-12-30'

对比以下查询方式,看看有何不同,为什么?

select count(*) as 学生数量

from A_studentinfo

where enrollment between '1998' and '2003'

4、统计<学生选修信息表>,统计学号为"S001"的学生的平均成绩Select avg(score) as 平均成绩

from A_studentcourse

where sno='S001'

5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩select sum(score) as 总成绩

from A_studentcourse

where sno ='S001'

6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩select max(score) as 最高成绩

from A_studentcourse

where cno='C001'

7、统计<学生信息表>,查询所有学生中的最大年龄是多少

select 2009-min(yearofbirth) as 最大年龄

from A_studentinfo

三、分组查询练习

1、统计<学生选修信息表>,统计每个课程的选修人数

select cno,count(*) as 学生数量

from A_studentcourse

group by cno

2、统计<学生选修信息表>,统计每个同学的总成绩

select sno,sum(score) as 总成绩

from A_studentcourse

group by sno

3、统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序select class as 班级,sex as 性别, count(*) as 人数

from A_studentinfo

group by class,sex

order by class

4、统计<学生选修信息表>,统计每门课程的平均成绩,并按照成绩降序排序Select cno,avg(score) as 平均成绩

from A_studentcourse

group by cno

order by avg(score) desc

5、统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号

Select sno as 不及格学生学号

from A_studentcourse

where score<60

group by sno

having count(*)>1

6、统计<学生信息表>,统计每个班级中的最大年龄是多少

select class as 班级, 2008-min(yearofbirth) as 最大年龄

from A_studentinfo

group by class

四、嵌套查询练习

1、用子查询实现,查询选修“高等数学”课的全部学生的总成绩

select sum(score) as 高等数学总成绩

from A_studentcourse

where cno =

(

select cno

from A_courseinfo

where subject='高等数学'

)

2、用子查询实现,统计<学生选修信息表>,显示学号为"S001"的学生在其各科成绩中,最高分成绩所对应的课程号和成绩

select score,cno

from A_studentcourse

where sno='S001'

and score =

(

select max(score)

from A_studentcourse

where sno ='S001'

)

思考:如果该学号学生有两个课程分数都为最高的100分,查询会有什么结果

3、用子查询实现,查询2班选修"数据库技术"课的所有学生的成绩之和

select sum(score) as 数据库技术总成绩

from A_studentcourse

where cno =

(

select cno

from A_courseinfo

where subject='数据库技术')

and sno in

(

select sno

from A_studentinfo

where class='2'

)

4、用子查询实现,查询3班"张三"同学的"测试管理"成绩

select score

from A_studentcourse

where cno=

(

select cno

from A_courseinfo

where subject='测试管理'

)

and sno in

(

select sno

from A_studentinfo

where class='3'

and sname='张三'

)

五、联接查询练习

1、查询"张三"的各科考试成绩,要求显示姓名、课程号和成绩

select sname as 姓名,cno as 课程号,score as 成绩

from A_studentinfo,A_studentcourse

where A_studentinfo.sno=A_studentcourse.sno

and sname='张三'

2、查询"张三"的各科考试成绩中,哪科没有记录考试成绩,要求显示姓名、课程号和成绩select sname as 姓名,cno as 课程号,score as 成绩

from A_studentinfo,A_studentcourse

where A_studentinfo.sno=A_studentcourse.sno

and sname='张三'

and score is null

3、查询"张三"的各门课程成绩,要求显示姓名、课程名称和成绩

select sname as 姓名,subject as 课程名称,score as 成绩

from A_studentinfo,A_courseinfo,A_studentcourse

where A_studentcourse.sno=A_studentinfo.sno

and A_https://www.docsj.com/doc/6016297526.html,o=A_https://www.docsj.com/doc/6016297526.html,o

and A_studentinfo.sname='张三'

4、查询3班"张三"的"测试管理"成绩,要求显示姓名、成绩

select sname as 姓名,score as 成绩

from A_studentcourse,A_courseinfo,A_studentinfo

where A_https://www.docsj.com/doc/6016297526.html,o=A_https://www.docsj.com/doc/6016297526.html,o

and A_studentcourse.sno=A_studentinfo.sno

and subject='测试管理'

and class='3'

and sname='张三'

5、查询所有2000年以前入学的,各班男生的各科考试平均成绩

select class as 班级,avg(score) as 男生平均成绩

from A_studentcourse,A_courseinfo,A_studentinfo

where A_https://www.docsj.com/doc/6016297526.html,o=A_https://www.docsj.com/doc/6016297526.html,o

and A_studentcourse.sno=A_studentinfo.sno

and sex='男'

and enrollment<'2000-01-01'

group by class

六、外联接查询

查询李坚强所有课程的成绩,并显示学号、姓名、课程号和成绩,没有成绩记录的学号包括:('S009','S010','S011') 1、使用左联接

select A_studentinfo.sno as 学生表学号,sname as 姓名,A_studentcourse.sno as 成绩表学号, cno as 课程号,score as 成绩

from A_studentinfo

left join A_studentcourse

on A_studentinfo.sno=A_studentcourse.sno

where sname='李坚强'

2、使用右联接

select A_studentinfo.sno as 学生表学号,sname as 姓名,A_studentcourse.sno as 成绩表学号, cno as 课程号,score as 成绩

from A_studentcourse

right join A_studentinfo

on A_studentinfo.sno=A_studentcourse.sno

where sname='李坚强'

3、对比等值连接

select sname,score

from A_studentinfo,A_studentcourse

where A_studentinfo.sno=A_studentcourse.sno

and sname='李坚强'

七、补充提高

1、查询“张三”比“王三”入学早几年

select A.sname as 姓名,year(A.enrollment) as 入学时间,

B.sname as 姓名,year(B.enrollment) as 入学时间,

datediff(year,A.enrollment,B.enrollment) as 年差

from A_studentinfo A,A_studentinfo B

where A.sname='张三'

and B.sname='王三'

2、查询所在班级和该班内学生的年龄之和,其中每个人的年龄都大于20岁,每个班的年龄之和大于60岁

select class as 班级,sum(2008-yearofbirth) as 年龄和

from A_studentinfo

where (2008-yearofbirth) >20

group by class

having sum(2008-yearofbirth)>60

order by class

3、从学生表中查询第2到5条数据(以学号排序)

select top 4 *

from a_studentinfo

where sno not in

(

select top 1 sno

from a_studentinfo

order by sno

)

order by sno

4、计算每种产品的剩余库存量

表1,为产品进货表,产品名称name[char(10)],产品数量amount[int]

表2,为产品出货表,产品名称name[char(10)],产品数量amount[int]

业务逻辑:表1存储产品的总进货量,表2存储每种产品每次的出货量,如产品A进货为100,出货了3次,每次分别为10、20、30,那么A产品的库存就为40

表A1 | 表A2

---------------------------------|---------------------------

name amount | name amount

A 100 | A 10

B 100 | A 20

| A 30

| B 10

| B 40

--方法1

--建立视图

create view A2Sum

as

select name,sum(amount) as thesum

from A2

group by name

--关联查询

select https://www.docsj.com/doc/6016297526.html,,A1.amount-A2Sum.thesum

from A1,A2Sum

where https://www.docsj.com/doc/6016297526.html,=https://www.docsj.com/doc/6016297526.html,

--方法2

select https://www.docsj.com/doc/6016297526.html,,A1.amount-A2Table.A2amount as stocks

from A1,(select name,sum(amount) as A2amount from A2 group by name) as A2Table

where https://www.docsj.com/doc/6016297526.html,=https://www.docsj.com/doc/6016297526.html,

--方法3

--定义单个产品变量

declare @aa int

(

select sum(amount)

from A2

where name='A'

group by name

)

--计算单个产品剩余

select name,amount-@aa as leave

from A1

where name='A'

5、查询学生表,在结果中将性别为“男”的显示为“先生”,将性别为“女”的显示为“女士”,否则显示为空。方法1:

select

(

case sex

when '男' then '先生'

when '女' then '女士'

else ''

end

)

as sex from a_studentinfo

方法2:

select

(

case when sex = '男' then 'man'

when sex = '女' then 'woman'

else ''

end

)

as sex from a_studentinfo

6、题目

A B C 为表TTest的字段,各字段有50位,也就是字段长度为50 ,多少条无所谓

如 A 为空的话,取B 从25 取到35 (B有可能为空的情况)

如果A不为空的话,取C字段里的值,也是取25到35

--B和C都不取NULL的值

if (select count(A) from TTest) = 0

begin

select top 11 B from TTest where B not in

(select top 24 B from (select B from TTest where B is not null) as kk order by B)

end

select top 11 C from TTest where C not in

(select top 24 C from (select C from TTest where C is not null) as kk order by C) end

Access数据库应用基础教程(第三版)习题及答案

Access数据库应用基础教程(第三版)习题集答案 第1章数据库系统概述 1. 什么是数据库?什么是数据库系统?答:数据库(database)是存放数据的仓库,严格的讲,数据库是长期存储在计算机内,有组织的,可共享的大量数据集合。 数据库系统(database systems),是由数据库及其管理软件组成的系统。它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。它是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。 2. 什么是数据库管理系统?它有哪些主要功能? 答:数据库管理系统(database management system)是一种操纵和管理数据

库的大型软件,用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。数据库管理系统的主要功能有:数据定义、数据操作、数据库的运行管理、数据组织、数据库的保护、数据库的维护和通信。 3. 说出几种常用的数据模型。 答:层次模型、网状模型、关系模型。4. 什么是关系模型? 答:关系模型是用二维表的形式表示实体和实体间联系的数据模型。 5. 简述数据库设计的步骤。 答:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的建立和测试、数据库运行和维护。 第2章 SQL 语言简介 1. 什么是SQL语言?SQL语言具有哪些特点和功能? 答:SQL是一种数据库查询和程序设计语言,用于存取数据以及查询更新和管理关系

数据库系统。 SQL的特点和功能有:查询,操作,定义和控制四个方面,SQL语言具有高度的非过程化,语言简洁,语义明显,语法结构简单,直观易懂的特点。SQL语言即可以作为独立语言使用,用户可以在终端键盘上直接键入SQL命令对数据库进行操作,也可以作为嵌入式语言,嵌入到其他高级语言中。 2. SQL语言包含哪几个部分? 答:SQL语言包含4个部分:数据定义语言(DDL-Data Definition Language)、数据查询语言(DQL-Data Query Language)、数据操纵语言(DML-Data Manipulation Language)、数据控制语言(DCL-Data Control Language) 3. 在联接查询中,包含哪几类联接?答:联接可分为3类: (1)内部联接(典型的联接运算,使用类似于 = 或 <> 的比较运算符)。内部联接使用比较运算符根据每个表的通用列中的值匹配两个表中的行。内部联接包括同等

SQLServer数据库试题九及答案

SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的()。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ()。 A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A.Echo B.Message C.Warn D.MsgBox 6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括()。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() A.* B.% C.- D.? 10、SELECT语句中与HA VING子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据: 当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机9.96 上海 600605 轻工机械14.59 上海 000001 深发展7.48 深圳 000002 深万科12.50 深圳 11、有如下SQL语句 create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL语句

SQL数据库基础知识集合

1、数据库简介: 数据库是专门开发数据管理的软件,或者说专门管理数据的软件就是数据库。 数据库存在的意义就是:减轻开发人员的负担。数据库是一个综合的软件,那么我们不需要队要进行2进制保存数据进行处理了,但是却是要与数据库产生交互,那么命令式SQL,有技巧的,数据库就是万物皆关系(面向对象,万物皆是对象)有所区别。 2、数据库的发展: 一开始的是层次化的数据与网状数据库,后来也发现使用确实很麻烦。 于是到了1970年EF.Cold博士(IBM公司的研究员)开创了关系性的数据库的先驱,发表了关系性数据库的论文,但是由于当时电脑硬件的局限性,大家觉得跑如此大的程序不值得。后来,Oracle(甲骨文)公司的创始人,拉里带领Oracle投入到关系型数据库的研发,并且得到了一个大客户—美国国防部。随即开始世界刮起了关系数据库的旋风,随后各个公司都纷纷推出自己的数据库系统。比如:IBM的DB2 ,还有风靡一时的DBS3。 但是随即出现不兼容的问题,由于最早的时候都没有进行没规范。所以到最后各个数据库巨头统一了操纵数据库的SQL(结构化Struct数据查询语言)变成了标准语言,而关系型数据库也俨然变成大家的宠儿,Oracle也从一个小公司,变成现在的数据库巨头,而我们的微软也推出了SQLServer。当然还有PHPer的最爱mySQL。但是mySQL被SUN,SUN 被Oracle收购,现在有免费版与收费专业版了。所以我们学习SQL语言的时候,先学共同点,再学特异性。各种数据库软件在使用上有一点区别。 3、数据库系统详解: 为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。 数据库系统一般由4个部分组成: 数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。(个体) 数据库管理系统(DBMS)。一组能完成描述、管理、维护子数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的操作。 数据库管理员(DBA)。 用户和应用程序。(微软的称作SSMS) 4、数据库系统的基本要求是: 1、能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。 2、冗余数据少,数据共享程度高。 3、系统的用户接口简单,用户容易掌握,使用方便。 4、能够确保系统运行可靠,出现故障时能迅速排除,能够保护数据不受非受权者访问或破坏,能够防止错误数据的产生,一旦产生也能及时发现。 5、有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。 6、具有可修改性和可扩充性、可维护性。 7、能够充分描述数据间的内在联系。 5、数据库(Database): 由众多的数据、数据表、约束、存储过程、函数、视图、索引构成的一个数据存储与交互单元,是按照数据结构来组织、存储和管理数据的仓库。 6、数据表(table): 数据表,实际上是一个二维表。一般是围绕一个事务、动作记录,或者是一个信息主题作为一个数据表。数据表由行与列构成。 7、列(column、field): 列,其实就是字段。也是决定了信息的基本单元。列,包含有数据类型的设定。 8、行(row、record): 行,实际上就是一条基本信息。一行包含了多列数据的存储的信息。所以一行也有一条记录之称。 9、行业(trade) 一个行业一种需求,没一个需求每一种数据库的设计模式与思想。每个行业的数据设计的重点都是不同的。侧重查询(要求低范式)还是操作(要求搞范式)就是自己选择的问题了。 10、索引(index) 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引其实就是一个B+树,但是这个索引是N^n层数次方的。目的就是在数据库中划分出一定的区域优化查询。可以提升大量数据的查询速度。索引一般可以分为:基于字段优化查询速度的普通索引、唯一性索引、主键索引、全文索引、单列与多列索引。现在由于数据库系统的不断升级,我们只要设定索引就可以了,不需要特殊的维护。而且数据在查询的时候也会根据查询适当地选择是利用索引查询,还是仅仅是表查询。由于数据库系统的发展,系统内部已经自动帮我们完成对索引的维护。但是在设计的时候要考虑到索引的损耗问题。数据库DB就像是一个字典,索引就是根据指定字段制成的快速指向。由于只是指向数据对象标识,真正的数据是存储在DB中,所以查询速度极快。但是额外的内存与硬盘花销也是一个需要考虑的问题。比如:增加、删除、修改时数据库都要对索引进行维护,但是这样也是为了最后查询的效率的提升,特别适合W行级别的数据查询。而索引可以分为:隐式索引(针对单个字段)、唯一索引(唯一约束)、函数索引(函数(字段))、聚簇索引(主键)、组合索引(最多16个field)与全文索引(text)。一般索引会占用原数据库大小的20%。 11、视图(view) 固化的子查询,将一个子查询起了一个固化的名字,保存在数据库中,方便以后的使用。其实调用大量的Join来进行一个查询一般也是用视图。视图与索引都是为了优化查询的速度与语句。视图是优化语句,索引是优化单查速度。一般是DBA来设定数据库的视图,封装内部数据库的数据关系,范式修改数据容易了,视图让我们查询复杂关系的数据变得容易。 12、触发器(trigger) 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。触发器可以从DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。 13、SQLServer数据类型详解

数据库系统试卷2010(基于sqlserver)及答案

数据库系统概论试卷(A) 一、选择题(15x1分) 1、_____是长期存储在计算机内的有组织,可共享的数据集合. A、数据库管理系统 B、数据库系统 C、数据库 D、文件组织 2、在数据库中存储的是_____。 A、数据 B、数据模型 C、数据以及数据之间的联系 D、信息 3、数据库系统阶段,数据_____。 A、具有物理独立性,没有逻辑独立性 B、具有物理独立性和逻辑独立性 C、独立性差 D、具有高度的物理独立性和一定程度的逻辑独立性 4、在数据模型的三要素中,数据的约束条件规定数据及其联系的_____。 A、制约和存储规则 B、动态特性 C、静态特性 D、数据结构 5.________由数据结构、关系操作集合和完整性约束三部分组成。 A、关系模型 B、关系 C、关系模式 D、关系数据库 6、一组具有相同数据类型的值的集合称为________。 A、关系 B、属性 C、分量 D、域 7、集合R与S的交可以用关系代数的5种基本运算表示为________。 A、R-(R-S) B、σF(R×S) C、R-(S-R) D、S-(R-S) 8、实体是信息世界中的术语,与之对应的数据库术语为_______。 A、文件 B、数据库 C、字段 D、记录 9、在嵌入式SQL语言中使用游标的目的在于________。 A、区分SQL与宿主语言 B、与数据库通信 C、处理错误信息 D、处理多行记录 10、FoxBASE、FoxPro属于________。 A、表式系统 B、最小关系系统 C、关系完备的系统 D、全关系系统 11、在R(U)中,如果X→Y,并且对于X的任何一个真子集X',都没有X'→Y, 则________。 A、Y函数依赖于X B、Y对X完全函数依赖 C、X为U的候选码 D、R属于2NF 12、3NF________规范为BCNF。 A、消除非主属性对码的部分函数依赖 B、消除非主属性对码的传递函数依赖 C、消除主属性对码的部分和传递函数依赖 D、消除非平凡且非函数依赖的多值依赖 13、下面的结论不正确的是______。 A、若R.A→R.B, R.B→R.C 则R.A→R.C B、若R.A→R.B, R.A→R.C 则R.A→R.(B,C) C、若R.B→R.A, R.C→R.A 则R.(B,C)→R.A D、若R.(B,C)→R.A 则R.B→R.A,R.C→R.A 14、需求分析阶段得到的结果是________。 数据字典描述的数据需求B、E-R图表示的概念模型 C、某个DBMS所支持的数据模型 D、某个DBMS所支持的数据模型 15、一个m:n联系转换为一个关系模式。关系的码为________。 A、实体的码 B、各实体码的组合 C、n端实体的码 D、每个实体的码 二、填空(20x1分) 数据库系统的主要特点:______________________________、数据冗余度小、 具有较高的数据程序独立性、具有统一的数据控制功能等。

sql数据库基础面试题复习试题考试题_全

不定项选择题(针对以下题目,请选择最符合题目要求的答案,每道题有一项或二项正确答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。题量为50道,每题2分,总分为100分。) 第一章 1、是SQLServer数据库的主数据文件的扩展名。(选择一项) A、.sql B、.mdb C、.ldf D、.mdf 2、在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是()。 (选择一项) A、master B、pubs C、model D、msdb 3、当安装完SQL Server2005数据库时,系统默认当前的超级管理员是( ) (选择一项) A、sa B、master C、administrator D、super 4、在使用SQL Server2005数据库时,有时需要将本机的数据库移动到其他机器上,恢复成对应的数据库使用。移动数据库分两步进行,应包括()和附加数据库(选择一项)A、分离数据库 B、删除数据库 C、新建数据库 D、合并数据库 5、在SQL Server2005中,附加数据库操作是指()(选择一项) A、把SQL Server 数据库文件保存为其他数据文件 B、根据数据库物理文件中的信息,把数据库在SQL Server 2005中恢复 C、把所有该数据库表的数据清空 D、把数据库删除掉 6、某单位由不同的部门组成,不同的部门每天都会生产一些报告、报表等数据,以为都采用纸张的形式来进行数据的保存和分类,随着业务的发展,这些数据越来越多,管理这些报告越来越费力,此时应考虑()(选择一项) A、由多个人来完成这些工作 B、在不同的部门中,由专门的人员去管理这些数据 C、采用数据库系统来管理这些数据 D、把这些数据统一成一样的格式 7、在SQL Server 2005中,对于数据库的定义正确的是()(选择一项) A、数据库是用来描述事物的符号记录 B、数据库是位于用户与操作系统之间的一层数据管理软件

SQLServer选择题含答案去原题

第一套选择题 1.下列说法错误的是()。 A.内嵌表值函数没有函数主体,返回的表是单个SELECT语句的结果集B.多语句表值函数的调用与内嵌表值函数的调用方法相同 C.多语句表值函数的功能可以用标量函数来实现 D.在内嵌表值函数的定义中,不使用BEGIN…END块定义函数主体2.以下哪个事件不能激活DML触发器的执行()。 A.SELECT B. UPDATE C. INSERT D. DELETE 3.以下哪个数据库实例不属于系统数据库()。 A.master B.model C.msdb D.temp 4.执行以下语句: DECLARE @n int Set @n=3 WHILE @n<5 Begin IF @n=4 Print ltrim(@n)+‘的平方数为’+ltrim(@n*@n) Set @n=@n+1 End 执行完成后循环次数为()。

A.0次B.1次 C.2次D.死循环 5.利用游标来操纵数据时,所用的FOR UPDATE子句充分利用了事务的哪个特性()。 A.原子性B.一致性 C.永久性D.隔离性 6.关于触发器的描述,下列说法正确的是()。 A.触发器是在数据修改前被触发,约束是在数据修改后被触发 B.触发器是一个能自动执行的特殊的存储过程 C.触发器作为一个独立的对象存在,与数据库中其他对象无关D.inserted表和deleted表是数据库中的物理表 7.关于服务器角色与数据库角色,说法正确的是()。 A.只能将一个登录名添加为某个固定服务器角色的成员 B.只能将一个登录名添加为某个固定数据库角色的成员 C.sysadmin是固定数据库角色 D.db_owner是固定服务器角色 8.关于创建永久备份设备,下列说法错误的是()。 A.执行系统存储过程sp_addumpdevice创建永久备份设备 B.执行系统存储过程sp_dropdevice删除永久备份设备 C.若被删除的“命名备份设备”的类型为磁盘,那么必须指定DELFILE选项D.只须指定该命名备份设备的物理名,无须指定该命名备份设备的逻辑名9.能够将‘java’课的学分赋值给变量的语句是哪一个()。

基于SQLServerMobile与RFID的身份认证设计与实现

基于SQL Server  Mobile与RFID的身份认证设计与实现 杜 丰,韩 博,杨 洁,李一鸣 (西安交通大学网络中心,陕西西安 710049 )摘 要:基于移动终端的校园卡身份认证不但扩展了校园卡的使用范围,而且为一卡通系统与学校各应用系统的对接提供了良好手段。利用微软SQL Server Mobile数据库的RDA(remote data access)技术建立远程访问模型,通过移动设备的无线网络和RFID(radio frequency identification)识别功能实现身份认证。关键词:身份认证;SQL Server  Mobile;RDA;RFID中图分类号:TP31 文献标志码:A 文章编号:1002- 4956(2011)05-0260-02Design and implementation of authentication basedon SQL Server Mobile and  RFIDDu Feng,Han Bo,Yang  Jie,Li Yiming(Network Center,Xi’an Jiaotong  University,Xi’an 710049,China)Abstract:Campus card authentication,based on mobile terminal,not only expanded the use of campus card,but also provided a good means for the docking of card system and other application systems of the university.Using RDA technology of Microsoft SQL Server Mobile database can establish the remote access model,andthrough wireless networks of mobile devices and RFID recognition can realize authentication.Key  words:authentication;SQL Server Mobile;RDA;RFID收稿日期:2010-12-27 作者简介:杜丰(1981—) ,男,陕西西安,工学学士,工程师,研究方向为网络编程. 近几年各高校开展建设的数字化校园已初具规 模,校园卡系统作为数字化校园的重要组成部分已经与越来越多的部门实现对接,为各应用系统提供了基础信息, 实现了身份认证。目前,移动终端已经拥有强大的处理能力、内存、固化存储介质以及操作系统,可以完成复杂的处理任务。移动终端也拥有非常丰富的通信方式,既可以通过GSM等无线运营网通信,也可以通过无线局域网、蓝牙和红外进行通信。如何利用便捷的移动终端,实现随时随地的身份认证是本文深入探讨的问题。 1 移动终端与相关技术 1.1 移动终端 广义上讲,移动终端是指可以在移动中使用的计 算机设备,包括手机、POS机、PDA、 车载电脑等[1] 。随着集成电路技术的飞速发展,移动终端正在从功能 简单的工具变为一个综合信息处理平台。今天的移动终端不仅可以通话、 拍照、听音乐、玩游戏,而且可以实现包括定位、信息处理、指纹扫描、身份证扫描、条码扫描、RFID扫描等丰富的功能, 成为移动办公、移动商务的重要工具[ 2] 。1.2 SQ L Server Mobile及数据同步技术1.2.1 SQL Server  MobileSQL Server Mobile(见图1)是一种压缩数据库,可以将企业数据管理能力延伸到移动设备。它提供多用户支持,提供RDA和Rep lication两种方法与SQLServer数据库交互, 提供行和列级跟踪,可反馈同步进度,支持SSL加密等, 可与其他微软产品集成[3] 。1.2.2 RDA和Rep licationRDA(remote data access,远程数据访问)使移动应用程序能够访问远程SQL Server数据库表中的数据,并将这些数据存储在本地SQL Server Mobile数据库表中。应用程序可以读取和更新本地数据库表,并跟踪对本地数据库表所做的更改,将更改过的记录更新回SQL  Server数据库表。Rep lication只SQL Server 2000配合使用。ISSN  1002-4956CN11-2034T 实 验 技 术 与 管 理Experimental Technology and Management 第28卷 第5期 2011年5月Vol.28 No.5 May .2011

SqlServer存储过程基本语法

动态语句基本语法 1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_executesqlN'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL declare @fnamevarchar(20) set @fname = 'FiledName' Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。exec('select ' + @fname + ' from tableName') -- 请注意加号前后的单引号的边上加空格 当然将字符串改成变量的形式也可 declare @fnamevarchar(20) set @fname = 'FiledName' --设置字段名 declare @s varchar(1000) set @s = 'select ' + @fname + ' from tableName' exec(@s) -- 成功 exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000) set @s = 'select ' + @fname + ' from tableName' exec(@s) -- 成功 exec sp_executesql @s -- 此句正确 3. 输出参数 declare @numint, @sqlsnvarchar(4000) set @sqls='select count(*) from tableName' exec(@sqls) --如何将exec执行结果放入变量中? declare @numint, @sqlsnvarchar(4000) set @sqls='select @a=count(*) from tableName ' execsp_executesql @sqls,N'@aint output',@num output select @num 1 :普通SQL语句可以用Exec执行例: Select * from tableName Exec('select * from tableName')

数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析 (borrow 表) (reader表)1) 找出姓李的读者姓名(NAME)和所在单位(COMPANY)。2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。3) 查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排 序。4) 查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。6) 检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。9)* 无重复地查询xx年10月以后借书的读者借书证号(READER_ID)、姓名和单位。##10)* 找出借阅了一书的借书证号。11) 找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。12) 查询xx年7月以后没有借书的读者借书证号、姓名及单位。#13) 求”科学出版社”图书的最高单价、最低单价、平均单价。##14)* 求”信息系”当前借阅图书的读者人次数。#15) 求出各个出版社图

书的最高价格、最低价格和总册数。#16) 分别找出各单位当前借阅图书的读者人数及所在单位。17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。18) 分别找出借书人次数多于1人次的单位及人次数。19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。20) 查询经济系是否还清所有图书。如果已经还清,显示该系所有读者的姓名、所在单位和职称。附录:建表语句创建图书管理库的图书、读者和借阅三个基本表的表结构:创建BOOK:(图书表)CREATE TABLE BOOK ( BOOK_ID int, SORT VARCHAR(10), BOOK_NAME VARCHAR(50), WRITER VARCHAR(10), OUTPUT VARCHAR(50), PRICE int); 创建READER:(读者表)CREATE TABLE READER (READER_ID int,COMPANY VARCHAR(10),NAME VARCHAR(10),SEX VARCHAR(2),GRADE VARCHAR(10),ADDR VARCHAR(50)); 创建BORROW:(借阅表)CREATE TABLE BORROW ( READER_ID int, BOOK_ID int, BORROW_DATE datetime)插入数据:BOOK表:insert into BOOK values(445501,'TP3/12','数据库导论','王强','科学出版社', 17、90);insert into BOOK values(445502,'TP3/12','数据库导论','王强','科学出版社', 17、90);insert into BOOK values(445503,'TP3/12','数据库导论','王强','科学出版社',

sqlserver习题及答案

S Q L S e r v e r习题及答 案 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

1. 有个用户的计算机不能连接到中心机房的SQL Server 2000上。你在调试过程中发现这个用户的计算机的网络功能是正常的,而且其他用户都能正常地连接到SQL Server 2000。下面的哪些工具有助于你诊断和解决该问题(多选)A. Enterprise Manager B. Server Network Utility C. Profiler D. Query Analyzer E. Client Network Utility 答:B和E 2. 你在SQL Server 2000创建了酒店管理系统的数据库HotelDB,并创建了表CustInfo。当下面的哪些数据库被删除的情况下,仍能正确地执行“SELECT * FROM CustInfo A. Model B. Tempdb C. Msdb D. Master E. Pubs 答:A、C、E 3. 你正在使用SQL Server 2000开发银行交易系统,为了保证商业数据在网络传输(用TCP/IP协议)时不会被窃取,你在SQL Server 2000中启用了网络加密功能。请问该功能在哪一层被实现? A. TCP/IP协议软件 B.超级套接字层 C.开放式数据服务 D.关系引擎 E.存储引擎 答:B 4. 你正在使用SQL Server 2000开发超市收银系统。在客户端编写软件时使用SQL语句“SELECT * FROM Products”来查询商品的信息,但是不小心把Products输入成Product。请问该错误在哪一层被发现? A.客户端的数据库API B.客户端的NET-LIBRARY C.服务器端的开放式数据服务 D.服务器端的关系引擎 E.服务器端的存储引擎

(整理)SQLServer数据库基本知识点.

SQL Server 数据库基本知识点一、数据类型

二、常用语句 (用到的数据库Northwind) 查询语句 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询Customers 表中公司名称为“Alfreds Futterkiste”的ContactName字段和Address字段。 SELECT ContactName, Address FROM Customers WHERE CompanyName='Alfreds Futterkiste' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示Customers表中所有列的数据: SELECT * FROM Customers 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT ContactName, Address FROM Customers 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题 as 列名 列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT ContactName as 联系人名称, Address as地址 FROM Customers 4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 SELECT DISTINCT(Country) FROM Customers 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM Customers SELECT TOP 20 PERCENT * FROM Customers (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在Orders和Customers表中同时存在CustomerID列,在查询两个表中的CustomerID时应 使用下面语句格式加以限定: select * from Orders,Customers where Orders.CustomerID =Customers.CustomerID 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名 表名别名 select * from Orders as a,Customers as b where a.CustomerID =b.CustomerID SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 例如: select * from Customers where CustomerID in (select CustomerID from Orders where EmployeeID=4) 此例中,将SELECT返回的结果集合给予一别名CustomerID,然后再从中检索数据。 (三) 使用WHERE子句设置查询条件 WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:select CustomerID from Orders where EmployeeID=4

基于MSSQLSERVER的学校教务管理系统

龙源期刊网 https://www.docsj.com/doc/6016297526.html, 基于MSSQLSERVER的学校教务管理系统作者:吴蕊孙东山 来源:《无线互联科技》2019年第05期 摘要:文章研究了一种基于MSSQLSERVER与https://www.docsj.com/doc/6016297526.html,的教务管理系统,采用C#语言设计创建窗体及其相关控件,并在相应的地方编写代码,实现了对学生、教师、用户、课程等表的增删改查,并根据用户的身份设定不同的权限,以保证数据库相对安全。在系统设计的过程中,采用了“自顶而下,逐步求精”的设计理念,成功实现一款简单实用的教务管理系统。 关键词:教务管理系统;MSSQLSERVER;https://www.docsj.com/doc/6016297526.html,;数据库;系统设计 当今社会中,信息技术在管理上的应用越来越广泛,信息系统在技术上已经逐渐成熟。在现代社会中,任何企业事业单位想要生存和发展,都离不开信息管理系统的支持。而在高校中,教务管理系统是学校管理体系的重要组成部分[1]。过去的人工管理和文件管理方式既耗 时耗力,又容易出现错误和遗失,且不便于查询、更新和维护数据。 1 需求分析 1.1 性能需求 系统要求操作界面化,操作简单,界面友好,功能实用。数据库要求运行稳定,执行效率高,数据安全性可靠。软件运行期间,对软硬件设施要求适中,且具有一定的兼容性和可移植性[2]。 1.2 功能需求 本教务管理系统主要有以下几大功能:(1)登录管理。登录时根据身份进行不同的权限分配。(2)信息管理。对学生表、教师表、用户表的增删改查,对选修表、成绩表课程表的连接查询等。(3)系统管理。各个模块管理时既有一定的独立性,又有一定的联系性。 1.2.1 登录管理功能 该模块是对合法用户登录的界面,用户通过相应的身份、用户名、密码和验证码进行登录,若身份、用户名、密码和验证码都正确,系统则根据相应的身份,为该用户分配相应的权限,用户进入相应权限的操作界面。 1.2.2 对学生表的管理功能 该模块是对学生表进行管理的模块,首先可以检索出数据库的学生表的所有信息,用户可以在其中增加新的学生记录,并可以对指定的学生进行增删改操作。

SQL基础测试2

SQL基础理论测评 姓名得分 一、填空题(10*2分) 1:SQL中定义变量的关键字: 2:多表连接有(请在横线上,写出对应的关键字) 左连接右连接内连接 3:获取系统日期和时间的函数: 4:关系模型的数据操纵即是建立在关系上的数据操纵, 一般有__ _ 、、和四种操作。 5:sql sever 2005中删除表的命令是删除表中字段值的命令是 6:sql sever 2005中order by [字段名] 后跟表示升序,跟表示降序7:在结果集中过滤掉重复的记录使用关键字: 8:SQLServer中表间的关系有:、、 9:多表查询中定义表的别名的关键字是。 10:sql中数据类型转换函数和 二、判断题(10*2) 1、sql server 2005 查询结果中不能存在相同的字段名。() 2、sql server 2005 存储过程没有返回值。() 3、sql server 2005 函数只能返回一个数值。() 4、convert不能把时间类型转换成字符型。() 5、master和tempdb都是SQLServer2005 的系统数据库。() 6、sql server 2005中不等于可以用<> 和!= 都可以。() 7、sql中没有货币类型。() 8、在查询语句中系统最先执行的操作是搜索当前系统查询所使用的表,所 以最先执行的语句是FROM 子句。() 9、存储过程要比单纯的Sql 语句执行起来要快。() 10、sql sever 中获取字符串长度的函数为:lenstr。() 三、简答题(5*12) 1.【SQL】用SQL语句,描述下列内容: 获取客户端主机名: 生成错误消息,抛出异常: 自增列: 获取上一次执行行数: 保存表中字段信息的系统表表名:

数据库技术(SQLServer)习题与参考答案

数据库技术(SQLServer)习题与参考答案 第一章: 1、SQL Server 2005有哪些新增特性? 答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。企业数据管理体现在高可用性、管理工具、安全性与可伸缩性;开发人员生产力体现在Common Language Runtime集成、集成XML、Transact-SQL增强与SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务与数据挖掘。 2、SQL Server 2005安装的软件与硬件环境就是什么? 答:SQL Server 2005安装的软件与硬件环境参见教材6。 3、SQL Server 2005有哪些版本?有哪些服务组件? 答:SQL Server 2005包括企业版、标准版、工作组版、开发版与简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。 4、什么就是实例?经常提到的SQL Server 2005服务器与服务器实例就是否具有相同的含义? 答:实例就就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其她实例共享的系统及用户数据库。一个SQL Server服务器就就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为就是一个实例。 5、默认实例与命名实例有何差别?在安装与使用上有何不同? 答:实例又分为“默认实例”与“命名实例”,如果在一台计算机上安装第一个SQL SERVER 2005命名设置保持默认的话,那这个实例就就是默认实例。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。 6、SQL Server 2005的安全性验证分为哪两个阶段? 答:第1个阶段就是身份验证,验证用户就是否具有“连接权”;第2个阶段就是数据库的访问权,验证连接到服务器实例的用户,即已登录到服务器实例的用户,就是否具有“访问权”。 7、SQL Server 2005有哪些主要的实用工具?每个工具都有什么用途? 答:SQL Server Management Studio,就是Microsoft SQL Server 2005中的新组件,这就是一个用于访问、配置、管理与开发SQL Server的所有组件的集成环境,就是SQL Server 2005中最重要的管理工具。SQL Server Configuration Manager,用来管理SQL Server 2005所

数据库sql练习题

use test /* 问题及描述: --1.学生表 Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表 Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号 --3.教师表 Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名 --4.成绩表 SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数 select * from Student select * from Course select * from Teacher select * from SC */ --创建测试数据 create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01', N'赵雷','1990-01-01', N'男') insert into Student values('02', N'钱电','1990-12-21', N'男') insert into Student values('03', N'孙风','1990-05-20', N'男') insert into Student values('04', N'李云','1990-08-06', N'男') insert into Student values('05', N'周梅','1991-12-01', N'女') insert into Student values('06', N'吴兰','1992-03-01', N'女') insert into Student values('07', N'郑竹','1989-07-01', N'女') insert into Student values('08', N'王菊','1990-01-20', N'女') create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10)) insert into Course values('01', N'语文','02') insert into Course values('02', N'数学','01') insert into Course values('03', N'英语','03') create table Teacher(T# varchar(10),Tname nvarchar(10)) insert into Teacher values('01', N'张三') insert into Teacher values('02', N'李四') insert into Teacher values('03', N'王五') create table SC(S# varchar(10),C# varchar(10),score decimal(18,1)) insert into SC values('01','01', 80) insert into SC values('01','02', 90) insert into SC values('01','03', 99) insert into SC values('02','01', 70) insert into SC values('02','02', 60) insert into SC values('02','03', 80)

相关文档
相关文档 最新文档