1 简答题 2
1.1 SQL Server与Oracle、DB2三种数据库比较 2
1.2 以下三种数据库语言都包含哪些细项 2
1.3 UNION 和UNION ALL的区别 3
2 实例题 3
3 逻辑推理题 5
答案 6
1简答题
1.1SQL Server与Oracle、DB2三种数据库比较
SQL Server与Oracle、DB2三种数据库进行比较,有何区别?请从开放性,可伸缩性,并行性,安全性三个方面叙述。
答案:
开放性
SQL Server
只能在Windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且Windows平台的可靠性,安全性和伸缩性是非常有限的。它不象Unix那样久经考验,尤其是在处理大数据量的关键业务时。
Oracle
能在所有主流平台上运行(包括 Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。
DBz
能在所有主流平台上运行(包括Windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。
可伸缩性,并行性
SQL Server
并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。Oracle平行服务器通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果WindowsNT不能满足需要, 用户可以把数据库移到UNIX中。
DB2
DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点。
安全性
SQL server
没有获得任何安全证书。
Oracle Server
获得最高认证级别的ISO标准认证。
DB2
获得最高认证级别的ISO标准认证。
1.2以下三种数据库语言都包含哪些细项
1、DDL—数据定义语言
答案:定义语言:CREATE,ALTER,DROP,DECLARE
2、DML—数据操纵语言
答案:操纵语言:SELECT,DELETE,UPDATE,INSERT
3、DCL—数据控制语言
答案:控制语言:GRANT,REVOKE,COMMIT,ROLLBACK
1.3UNION 和UNION ALL的区别
答案:UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
2应用题
根据所给表及数据填写问题(基于SQL Server)
表1.Employee:
| EID | Name | Department | Job | Password | |
| 10001 | 李明 | SBB | EG | ||
| 10003 | 李筠平 | LUKE | ITM | ||
| 11045 | 李洁 | SBB | EG | ||
| 10044 | 胡斐 | MTD | ETN | ||
| 10009 | 徐仲刚 | SBB | EG | ||
| 10023 | 李燕 | SBB | ETN | ||
| 20460 | 陆明生 | MTD | ETN | ||
| 20078 | 张青 | MMM | EG | ||
| 20001 | 李立 | LUKE | ETN |
| CourseID | EID | Course | Grade | Orders |
| 1 | 10001 | T-SQL | 60 | |
| 3 | 11045 | Oracle | 71 | |
| 2 | 20460 | Java | 34 | |
| 1 | 10003 | T-SQL | 59 | |
| 3 | 10001 | Oracle | 90 | |
| 2 | 20001 | Java | 12 | |
| 2 | 20078 | Java | 76 | |
| 2 | 10003 | Java | 78 | |
| 3 | 30001 | Oracle | 71 | |
| 3 | 20048 | Oracle | 36 |
答案:drop table employee
create table employee
(
EID char(10) primary key,
s_Name varchar(50) ,
Department varchar(50),
job varchar(50),
Email varchar(50),
s_password varchar(50),
)
CREATE INDEX employee ON employee(EID)
drop table Training
create table Training
(
CourseID char(10) not null,
EID char(10) not null,
Course varchar(50) not null,
Grade int not null,
Orders varchar(50),
primary key(CourseID,EID)
)
CREATE INDEX Training ON Training (EID)
2、用SQL语句把上述两表的数据分别插入建好的表中,分别用SQL语句完成。
答案:drop table training
select * from employee
insert into employee(EID,s_Name,Department,job) values('10001','李明','SBB','EG')
insert into employee(EID,s_Name,Department,job) values('10003','李筠平','LUKE','ITM')
insert into employee(EID,s_Name,Department,job) values('11045','李洁','SBB','EG')
insert into employee(EID,s_Name,Department,job) values('10044','胡斐','MTD','ETN')
insert into employee(EID,s_Name,Department,job) values('10009','徐仲刚','SBB','EG')
insert into employee(EID,s_Name,Department,job) values('10023','李燕','SBB','ETN')
insert into employee(EID,s_Name,Department,job) values('20460','陆明生','MTD','ETN')
insert into employee(EID,s_Name,Department,job) values('20078','张青','MMM','EG')
insert into employee(EID,s_Name,Department,job) values('20001','李立','LUKE','ETN')
insert into Training(CourseID,EID,Course,Grade) values('1','10001','T-SQL','60')
insert into Training(CourseID,EID,Course,Grade) values('3','11045','Oracle','71')
insert into Training(CourseID,EID,Course,Grade) values('2','20460','Java','34')
insert into Training(CourseID,EID,Course,Grade) values('1','10003','T-SQL','59')
insert into Training(CourseID,EID,Course,Grade) values('3','10001','Oracle','90')
insert into Training(CourseID,EID,Course,Grade) values('2','20001','Java','12')
insert into Training(CourseID,EID,Course,Grade) values('2','20078','Java','76')
insert into Training(CourseID,EID,Course,Grade) values('2','10003','Java','78')
insert into Training(CourseID,EID,Course,Grade) values('3','30001','Oracle','71')
insert into Training(CourseID,EID,Course,Grade) values('3','20048','Oracle','36')
select * from Training
3、筛选出Employee表姓李人员的EID 、Name 、Department、Job信息。
答案:Select EID ,Name ,Department,Job from employee where Name like ‘李%’
4、筛选出成绩及格(Grade >=60)的Name、Course、Grade
答案:Select a1.Name,b1.Course,b1.Grade from Employee a1 inner join Training b1
On a1. EID =b1. EID where b1.Grade >=60
5、筛选出所有人员的总得分,信息包含人员名称、总得分
答案:Select Name,Sum(Grade) From Employee A1 Inner Join Training B1
On A1. Eid =B1. Eid
Group By Name
6、筛选出未参加培训的人员名单,按表1的格式显示,用一条SQL语句完成。
答案:1、Select A1.* From Employee A1 Where A1. Eid Not In (Select Eid From Training)
2、Select A1.* From Employee A1 Where A1. Eid Not Exists (Select * From Trainin B1 Where On A1. Eid = B1.Eid)
数据量大的时候根据实际数据情况选择用Not In和Not Exists
7、筛选出各人员的平均成绩
答案:1、Select Name,Sum(Grade)/Count(1) From Employee A1 Inner Join Training B1
On A1. Eid =B1. Eid
Group By Name
2、Select Name,Avg(Grade) From Employee A1 Inner Join Training B1
On A1. Eid =B1. Eid
Group By Name
3逻辑推理题
1、小青、小刚、小红三个学生参加迎春杯比赛,他们是来自汉县、沙镇、水乡的选手,并分别获得一、二、三等奖,现在知道的情况是:
(1)小青不是汉县选手;
(2)小刚不是沙镇选手;
(3)汉县的选手不是一等奖;
(4)沙镇的选手得二等奖;
(5)小刚不是三等奖。
根据上述情况,小红应是什么选手,她得的是几等奖?写出推理分析思路!
答案:从小刚不是沙镇选手、小刚不是三等奖,沙镇选手得二等奖,汉县的选手不是一等奖得出小刚是一等奖、水乡选手。小青不是汉县选手,汉县选手不是一等奖,沙镇的选手得二等奖,得出小青是沙镇、二等奖选手;排除法最后得出小红是汉县、三等奖选手!
结果:小红 汉县 三等奖
2、现有在两种球,一种黑色的,一种是白色的,将这两种球自上而下排,当黑球比白球多2005个时,那么,这个球正好排在第几层第几颗?写出推理分析思路!
如图,一层层地排列,每层都是从左往右排。
●●●
○○○○○
●●●●●●●
……下载本文