** DB ** ** 基础 **
选答题 , 从下列题目中任选题分值满 10 分的作答 .
SYBASE
A.(5) 软件公司的张工在备份数据库除了备份应用数据库本身以外 , 还备份 master 数据库 , 为什么 ?
B.(5)SYBASE 的 VIEW 创建有那些限制 ?
ORACLE
A.(5) 解释归档和非归档模式之间的不同和它们各自的优缺点
B.(5) 兩個結果集互加及互減的函數
综合
A.(10) 取一表前 N 筆記錄的各种數据庫的寫法 ... 至少写出三种写法 .
** SQL ** ** 常识 **
A. (5) 比较 truncate 和 delete :
B. (5) 比较 union 和 union all 区别 , 请举例说明 ( 要求写出结果集 )
C. (5) 比较 EXISTS 与 IN (NOT IN) 的用法 , 请举例说明 ( 要求写出结果集 )
D. (5) 比较 between 与 > and < 的区别 , 请举例说明 ( 要求写出结果集 )
E. (9) 比较自然连接和外部连接以及笛卡尔积的用法 , 各请举例说明 ( 要求写出结果集 )
** SQL ** ** 综合应用 **
使用的数据库不受限制 , 但要求在答案中写出所用的数据库类型 .
下列题目要求用 SQL 本身实现 ( 要求考虑到编码级优化 )
最好就一句 SQL, ( 得分率为 100%)
如果不能用一句 SQL 实现可以用多句 SQL 实现 ,( 得分率为 80%)
也可以用存储过程实现 ( 得分率为 70%).
除了写出相应的编码外 , 还要求答题者给出思路以及实现步骤的文字描述 .
** A.(6) ** ** 求和运算 **
表结构如下:
序号,总金额,金额 1 ,部门
记录: 1 10 1
2 10 1
3 10 1
4 10 2
5 10 2
现想按部门对总金额进行求和运算
结果为为:
序号,总金额,金额 1 ,部门
记录: 1 30 10 1
2 30 10 1
3 30 10 1
4 20 10 2
5 20 10 2
** B.(6) ** ** 字段最大值 **
有三个字段, T1, T2, T3 ,请问怎么返回一个字段,值是这三个字段的最大值?
要求 : 对题目的理解描述 , 建立相应的测试数据 , 写出 SQL, 得出 SQL 结果集
** C.(6) ** ** 重复行检索 **
请问如何把一个 table 中某列重复的行检索出来? (某一列或者多列的值重复)
要求 : 对题目的理解描述 , 建立相应的测试数据 , 写出 SQL, 得出 SQL 结果集
** D.(8) ** ** 需求理解 **
有一张表: S#( 学号) ,C#( 课程号 ),Grade( 成绩 )
请写出所学课程包含学号为 001 的学生所学课程的学生的学号。
要求 : 对题目的理解描述 , 建立相应的测试数据 , 写出 SQL, 得出 SQL 结果集
** E.(14) ** ** 外连接应用 **
有两张表 b1,b2, 其中 b1 表有一列为 (id1 number(10)),b2 有一列为 (id2 number(10)). 现在需要将 id1,id2 取出来,放在表 b3 里, b3 为( b1id number(10),b2id number(10) ) , 要将 id1 放入 b1id,id2 放入 b2id. 另该两表没有任何内在联系 .
请问用 sql 语句该怎么实现。
表 B1 表 B2 表 B3
id1 id2 b1id, b2id
1 2 1 2
2 3 2 3
3 1 3 1
4 6 4 6
5 9 5 9
5 null 5
8 null 8
4 null 4
------------------------------------------------
ABC 客户分析法的说明 :
( 一 ) 将客户按业绩大小顺序排列。
( 二 ) 将全部客户的进货金额予以累计。
( 三 ) 其累计的总金额在 55% 以内的客户称为 A 级客户。
在 55 %—— 85 %的客户称为 B 级客户。
在 85 %— 100 %的客户称为 C 级客户。