1、SQL Server 2000 基础测试题一 选择题1. 同一台计算机上可以运行(D )个实例。A. 一个B. 两个C. 三个D. 多个2. 每一个数据库都有(A)的标识,这个标识就是数据库名称。A. 一个唯一 B. 多个C. 两个D. 不同3. 表是反映现实世界中一类事务的数学模型,现实世界中一类事务的属性是表中的(A) 。A. 列B. 行C. 记录D. 数值4. 如果一个表中记录的物理存储顺序与索引的顺序一致,则称此索引为(B) 。A. 唯一索引B. 聚集索引C. 非唯一索引D. 非聚集索引5. 下列哪个命令是备份数据库的命令。 (B)A. cmdshellB. backup databa
2、seC. restore databaseD. bcp6. 导入、导出数据有哪两种执行方式。 (AB)A. 立即执行。B. 保存为 DTS 包,在指定的时间调度执行。C. 以覆盖方式向数据库表中导入数据。D. 以追加方式向数据库表中导入数据。7. 下列描述哪些是正确的。 (ABD)A. 向 SQL Server 数据库中导入数据的同时可以创建表。B. 如果向 SQL Server 数据库中已经存在的表导入数据,可以采用覆盖方式和追加方式。C. 向 SQL Server 数据库导入数据时只能用覆盖方式。D. 在执行导入、导出数据时可以对某些列进行编程作转换处理。8. 下列哪个联接谓词的含义是指,
3、确定指定列的值或表达式的值是否与子查询或列表中的值相匹配。 (C)A. allB. anyC. inD. exists9. SQL server 数据库文件有三类,其中主数据文件的后缀是(C )A. ndfB. ldfC. mdfD. idf10. 下面对索引的相关描述正确的是(C)A. 经常被查询的列不适合建索引。B. 列值唯一的列适合建索引。C. 有很多重复值的列适合建索引。D. 是外键成主键的列不适合建索引。11. 下列 SQL 语句中,修改表结构的是(A)A. ALTERB. CREATEC. UPDATED. INSERT12. 扩展存储过程是(B)才有的存储过程A. modec 数
4、据库B. master 数据库C. msdb 数据库D. tempelb 数据库13. SQL Server 2000 中事务的类型有( A)A. 系统,用户定义的事务B. 分布式事务C. 数据库事务D. 其它事务14. 下列说法正确的是(D)A. SQL 中局部变量可以不声明就使用B. SQL 中全局变量必须先声明在使用C. SQL 中所有变量必须先声明在使用D. SQL 中只有局部变量先声明再使用,全局变量是由系统提供的,用户不能自己分立15. 下面字符串能与通配符表达式abc%a 进行匹配的是(D )A. bedefB. a_bedC. abc-eD. a%a16. 下列说法正确的是(B
5、)A. 视图是观察数据的一种方法,只能基本表建立。B. 视图是虚表,观察到的数据是实际基本表中的数据。C. 索引查找法一定比表扫描法查询速度快。D. 索引的创建只和数据库的存储有关系。17. 下面仅存在于服务器端的组件是(A )A. 服务管理器B. 企业管理器C. 查询分析器D. 导入导出组件18. SQL 语言中删除一个表的命令是(B)A. DELETEB. DROPC. CLEARD. REMORE19. 在 SQL 语言中,条件“BETWEEN 20 AND 30”表示年龄在 20 到 30 岁之间,且(A)A. 包括 20 岁和 30 岁B. 不包括 20 岁和 30 岁C. 包括 2
6、0 岁不包括 30 岁D. 不包括 20 岁包括 30 岁20. 为了使索引键的值在基本表中唯一,在建立索引语句中应使用保留字(A)A. UNIQUE 唯一的B. COUNTC. DISDINCTD. UNION21. 下面有关主键的叙述正确的是(B)A. 不同的记录可以有重复主键值或空值B. 一个表中的主键可以是一个或多个字段C. 在一个表中主键只可以是一个字段D. 表中的主键的数据类型必须定义为自动编号或文本22. 下列哪一个数据库不是 SQL Server 2000 的系统数据库( C )A. Master 数据库B. MSdb 数据库C. Xscj 数据库/汗。 。 。学生成绩D. M
7、odel 数据库23. 为数据库创建索引的目的是(A )A. 提高查询的检索性能B. 创建唯一索引C. 创建主键D. 归类24. 定义外键实现的是(B)A. 实体完整性B. 参照完整性C. 用户定义的完整性D. 实体完整性,参照完整性,用户定义完整性25. 在 SQL server 2000 中关于数据库的说法错误的是(C )A. 数据库在磁盘上默认的存储位置是:SQL server 安装中路径Microsoft SQL servermssqldataB. 一个数据库至少包含一个数据库文件(*.mdf)和一个事务日志文件(*.ldf)C. 只有在数据库不存在数据的情况下才可以进行数据库的收缩操
8、作D. 可以通过从 A 机器拷贝数据文件和事务日志文件到 B 机器的复制机器上执行相应的附加数据库操作,实现数据从 A 到 B 机器的复制26. 关于多表连接查询,以下(B)描述是错误的A. 外联接查询返回的结果集行数可能大于所有符合联接条件的结果集行数B. 多联接表查询必须使用到 JOIN 关键字C. 内联接查询返回的结果是:所有符合联接条件的数据D. 在 where 子句中指定联接条件可以实现内联接查询27. 在 SQL 语言中,如果建立一个工资表包含职工号,姓名,职称,工资等字段,若要保证工资字段的取值不会低于 800 元,最适合的实现方法是(B)A. 在创建工资表时为“工资”字段建立缺
9、省B. 在创建工资表时为“工资”字段建立检查约束C. 在工资表建立一个触发器D. 为工资表数据输入编写一个程序进行控制28. Select 语句中用来连接字符串的符号是(A)A. A、 “”B. B、 “&”C. C、 “|”D. D、 “|”29. 对于 XS 表:SX(xh,xm,)如果要找出倒数第二个字母为 W,并且至少包含了 3 个字母的 XM,则查询条件子句应写成 WHERE XM like (B )A. -W-%B. -%W-C. -W-D. -W%30. Transact_SQL 支持的程序结构语句中的一种为(A)A. BeginEndB. IfThenElseC. DcaseD
10、. Do While二 填空题1. 访问 SQL server 数据对象时,要经过身份验证和_权限验证_两个阶段,其中身份验证为 Windows 验证模式和 _混合_验证模式。2. SQL server 事务可分为两类:_系统_提供的事务和_用户_定义的事务。3. SQL server 使用_日志文件_文件记载用户对数据库进行的所有操作。4. 备份是为了在数据遭到破坏时能够修复,数据库的备份类型有四种,分别为完全备份、差异备份、日志备份、文件组备份。5. 用户对数据库进行添加,修改,删除时,自动执行的存储过程称为_触发器_。6. 模糊查询符号代表_包含零个或任意多个字符_,查询的条件 eim
11、代表的意思是_找出第一个字符是 e,最后两个字符是 im 的记录_ 。7. SQL server 2000 的数据库分为 _系统数据库_和_用户定义数据库_两种类型。8. SQL server 2000 提供的最常用的管理工具是_对象资源管理器_和_查询分析器_。9. 表是反映现实世界某类事物的数学模型,表由行和列组成。现实世界中事物的属性对应表的列,表中的一行代表一类事物中的一个特例。10. 主键是唯一能够区分表中每一行记录的一个或多个列。11. 常用的聚合函数有:计算最大值的 max,计算最小值的 min,统计总和的 sum,统计记录总数的 count 和计算平均值的 avg。12. 视图
12、和表都是数据库中的对象,视图的结构虽然与表相同,但视图是虚拟表。13. 内联接查询的含义是指两个存在关联关系的表 A 和 B,表 A 与表 B 内联接的查询结果为 C,结果集 C 中只能包括表 A 与表 B 中满足关联条件的记录。14. 左联接查询的含义是指两个存在关联关系的表 A 和 B,表 A 与表 B 左联接的查询结果为 C。C 的列可以来自于 A 和 B 的列,C 的记录中允许包括表 A 的全部记录以及表 A中与表 B 满足关联条件的记录, C 中 A 与 B 不满足关联条件的列值为 空值。15. 全联接的含义是指两个存在关联关系的表 A 和 B,表 A 与表 B 全联接的查询结果为C
13、。C 的列可以来自于 A 和 B 的列,C 的记录中可以包括表 A 和表 B 的全部记录,C中 B 与 A 以及 A 与 B 不满足关联条件的部分为空值。三 判断题1. 可以将批处理程序保存为扩展名为“.sql”的文件,重复利用。( 对、 错 )2. 索引是描述表中记录存储位置的指针。( 对、 错 )3. 聚合函数的运算对象可以是列,也可以是表达式。( 对、 错 )4. 视图中的数据允许来源于一个或多个表。( 对、 错 )四 简答题1. 请写出你知道的常用的数据库都有哪几种?Sql server、oracle、mysql、sybase、db2 等2. 列出 SQL server 数据库中常见的
14、数据库对象。表、存储过程、触发器、视图、规则、默认值、索引等3. 简述视图的含义。视图和表都是数据库中的对象, 视图的结构虽然与表相同,但视图是虚拟表,视图中的数据不会作为真实的对象存储在磁盘上,数据 库对视图 存储的是定义视图的查询语句。每一次使用视图,SQL Server 都需要重新执行一次查询语句,查询语句的执行结果构成了视图中的数据。视图 中的列可以来源于一个表或多个表 联接查询的结果。4. 简述什么是存储过程存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集, 经编译后存储 在数据库中,用 户通过指定存 储过程的名字并给出参数(如果
15、该存储过程带有参数)来执行它。5. sql server 中有哪几种数据类型?char 和 varchar 有什么区别?char 是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于 8 时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。 varchar 是变长型,它的存储空间会跟你输入的实际字符数而改变,但最大长度不能超过你指定的长度。 6. 软件开发的大致流程是什么?需求确认概要设计详细设计编码单元测试集成测试系统测试维护 需求确认:需求规格说明书 概要设计:系统用例图,用例场景 详细设计:系统设计报告,数据库设计报告 测试:测试用例报告
16、7. 说出公司都做过哪些方面的软件项目?参见“软件架构演示”PPT五 应用题1. 按下列要求用 create database 语句创建“运动商品销售数据库” ,并为数据库创建“商品信息表”和“商品销售统计表”表 1 “运动商品销售数据库”的数据文件和事务日志文件文件类型 文件组 逻辑名称 操作系统文件名 初始尺寸 最大尺寸 增长尺寸数据文件 PRIMA Pri_运动商品 D:DataFilePri_运动商品销售. 2MB 10MB 1MBRY 销售 mdf事务日志文件LF_运动商品销售D:LogFileLF_运动商品销售.ldf2MB 10MB 1MB表 2 “商品信息表”的数据结构列名 数
17、据类型 长度/精度 是否允许为空值 描述商品标识 char 3 否 3 位数字商品名称 varchar 20 是 中文或英文产地 varchar 50 是 中文地名进货价 decimal 18,2 是 浮点数表 3 “商品销售记录表”的数据结构列名 数据类型 长度/精度 是否允许为空值 描述商品标识 char 3 否 3 位数字销售数量 int 是 整数销售日期 datetime 8 是 日期销售价格 decimal 18,2 是 浮点数答案:create database 运动商品销售数据库on primary( name=Pri_商品销售,filename=D:DataFilePri_商品
18、销售.mdf,size=2MB,maxsize=10MB,filegrowth=1MB)log on( name=LF_商品销售,filename=d:LogFileLF_商品销售.ldf,size=2MB,maxsize=10MB,filegrowth=1MB)create table 商品信息表(商品标识 char(3) not null,商品名称 varchar(20),产地 varchar(50),进货价 decimal(18,2)create table 商品销售记录表(商品标识 char(3) not null,销售日期 datetime,销售价格 decimal(18,2)2.
19、按下表所示的内容用 insert 语句向“商品信息表”和“商品销售统计表”中插入记录。表 4 “商品信息表”记录商品标识 商品名称 产地 进货价101 乒乓球拍 广州 120.00102 羽毛球拍 深圳 360.00103 网球拍 江苏 560.00表 5 “商品销售记录表”记录商品标识 销售日期 销售价格101 20060601 150.00102 20060601 410.00103 20060601 600.00答案:insert into 商品信息表(商品标识,商品名称, 产地,进货价)values(101,乒乓球拍 ,广州,120.00)insert into 商品信息表(商品标识,
20、商品名称, 产地,进货价)values(102,羽毛球拍 ,深圳,360.00)insert into 商品信息表(商品标识,商品名称, 产地,进货价)values(103,网球拍,江苏,560.00)insert into 商品销售记录表(商品标识,销售日期, 销售价格)values(101,20060601,150.00)insert into 商品销售记录表(商品标识,销售日期, 销售价格)values(102,20060601,410.00)insert into 商品销售记录表(商品标识,销售日期, 销售价格)values(103,20060601,600.00)3. 从“商品销售记
21、录表”中按商品标识分类统计各商品的总售价、销售数量和平均售价,并按平均售价由高到低排序。答案:select 商品标识,sum(销售价格 ) as 总售价, count(销售日期) as 销售数量,avg(销售价格 ) as 平均售价from 商品销售记录表group by 商品标识order by avg(销售价格) desc4. 对“商品信息表”和“商品销售记录表”联接查询,显示每笔销售记录的利润,要求显示商品名称、销售日期、销售价格、进货价和利润。答案select B.商品名称,A.销售日期 ,A.销售价格 ,B.进货价 ,A.销售价格 -B.进货价 as 利润from 商品销售记录表 A
22、left join 商品信息表 Bon A.商品标识 =B.商品标识六 自来水收费系统 sql 语句练习1. 更新用户信息,使得 LSLYF 等于 t_jfjl 里每一户的最后一次抄表的水量月份;update T_YHDAB set LSLYF=(select top 1 水量月份 from T_JFJL where T_JFJL.用户编号= T_YHDAB.用户编号 order by 水量月份 desc)2. 更新 t_jfjl 里的基本水费使得他等于 t_sfmxb 里的相同缴费序号的明细标志为 0 的水费合计update T_JFJL set 基本水费=(select sum(金额) f
23、rom T_SFMXB where 明细标志=0 and T_SFMXB.缴费序号=T_JFJL.缴费序号)3. 查找 t_jfjl 里基本水费不等于 t_sfmxb 里明细标志为0的水费金额合计的相应缴费序号的记录select * from T_JFJL where 基本水费(select sum(金额) from T_SFMXB where 明细标志=0 and T_SFMXB.缴费序号=T_JFJL.缴费序号)4. 删除在 t_sfmxb 里有但是在 t_jfjl 里没有的缴费序号的相应记录 delete from T_SFMXB where 缴费序号 not in (select 缴费序号 from T_JFJL)5. 找出用水量合计最大的用户;select 用户编号 ,sum(本月总吨位 ) as total_dw from t_jfjl group by 用户编号 order by sum(本月总吨位) desc