1、东方国信-面试问卷第 1 页/共 12 页答卷请另外用纸,并注明:姓名、年月日、开始时间、结束时间。请不要在问卷上直接填写任何内容。1. 通用编程知识问卷(所有编程人员必做)1.1 编程风格问卷【问题】有一些变量,请你命名:数据类型 中文含义 作用域 你的命名Int 序列号 全局变量 globalID(类) 用户帐单 (类) UserReckoningString/CString 用户名称 类成员 userNameFloat 当月收入 类成员 currentMonHarvestChar* 营业员 类成员 businessDouble 罚款 局部变量 smartMoney请说明你的命名原则。一、
2、 Class : 第一个字母大写;如果是复合的单词,每个单词的第一个字母大写!二、 Static Final :变量的名字全部都大写,并且指出完整含义三、 Class 变量 :如果是一个单词,全部小写;如果是复合单词,从第二个单词开始,每 个单词的第一个字母大写!1.2 翻译将下面的文字翻译为中文:Exceptions are generated by the Java runtime system in response to errors that are detected when classes are loaded and their methods are executed. Th
3、e runtime system is said to throw these runtime exceptions. Runtime exceptions are objects of the class java.lang.RuntimeException or of its subclasses. 异常的产生是发生在 JAVA 运行时,当类被载入并且它们的方法被调用,系统响应错误。运行时异常提示抛出这些错误,运行时异常是 java.lang.RuntimeException 类的对象或其子类对象。东方国信-面试问卷第 2 页/共 12 页2. 数据库2.1 【问题】有下列两张表:USER
4、LIST 表:TELEPHONE(Varchar(10),主键)ACCOUNT(varchar(10)RENT(numeric(10,2)4210001 AAAA 19.504210002 AAAA 20.504210003 BBBB 100.004210004 CCCC 250.00CHARGE 表:TELEPHONE(Varchar(10),主键)FEE01(numeric(10,2)FEE02(numeric(10,2)FEE03(numeric(10,2)FEE04(numeric(10,2)4210001 11.00 12.00 13.00 14.004210002 21.00 22
5、.00 23.00 24.004210003 31.00 32.00 33.00 34.00请用最少的 SQL 语句,产生下述查询结果:ACCOUNT(Varchar(10),主键)USERS(int)RENT(numeric(10,2)FEE01(numeric(10,2)FEE02(numeric(10,2)FEE03(numeric(10,2)FEE04(numeric(10,2)AAAA 2 40.00 32.00 34.00 36.00 38.00BBBB 1 100.00 31.00 32.00 33.00 34.00CCCC 1 250.00 0.00 0.00 0.00 0.0
6、0其中:数据是经过 USERLIST、CHARGE 表进行合适的连接后以 ACCOUNT 为关键字分组求和得到。【特别注意】:电话号码 4210004 在 USERLIST 表中有一条记录,但是在 CHARGE 表中并没有记录。但结果中合同号 CCCC 具有一条记录。请写出 SQL 语句。Select account,count(account) as users,sum(rent) as rent,sum (nvl(fee01,0) as fee01,sum(nvl(fee02,0) as feel02, sum (nvl(fee03,0) as fee03,sum(nvl(fee04,0)
7、 as feel04from userlist a,charge b where a.telephone=b.telephone(+) group by account;2.2 【问题】表 A字段代码 字段类型USER_NO NUMBERNAME VARCHAR2(128)表 B字段代码 字段类型USER_NO NUMBER东方国信-面试问卷第 3 页/共 12 页NAME VARCHAR2(128)A、 B 表数据量都在 400 万左右,现在想用 B 表的数据更新 A 表的用户姓名,并把 B 表中 A表没的记录加入到 A 表,请写出最优化的 SQL;2.3 【问题】在实际应用中,我们经常遇到
8、需要转换数据的显示方式,比如将横表转为纵表,或将纵表转为横表的情况请运用 SQL 实现一下数据转换:(转换前)select * from testgrade_id subject_name max_score1 语文 982 数学 952 政治 875 语文 975 数学 1005 政治 92(转换后)年级 语文 数学 政治一年级 98 0 0二年级 0 95 87五年级 97 100 92 Select grade_id ,sum(decode(subject_name,语文, max_score,0) as 语文,sum(decode(subject_name,数学, max_score,
9、0) as 数学,Sum(decode(subject_name,政治,max_score,0) as 政治 from text group by grade_id;2.4 【问题】在进行数据逻辑集合比较的时候,ORACEL 提高了方便的操作供我们选用。包括 UNION , INTERSECT , MINUS 请分别指出这几个操作的含义。Union : 求两个查询的合集!Intersect: 求两个查询的交集,即两个查询结果的公共部分!Minus: 求两个查询的差集,即,从第一个查询中去掉第二个查询的结果,为最后的返回结果!如果 TEST1 ,TEST2 两个表都只有一个字段 A NUMBER
10、,且其中有重复数据SELECT A FROM TEST1UNIONSELECT A FROM TEST2 和SELECT A FROM TEST1UNION ALL东方国信-面试问卷第 4 页/共 12 页SELECT A FROM TEST2结果一样么?请对你的结论说明原因。第一种用法会删除重复的资料。第二种用法不会删除重复的资料。2.5 【问题】数据库为我们提高了定时调用存储过程和脚本的机制,该功能通过 DBMS_JOB 来实现的请写出调用该过程的语句。我们可以通过查看数据库中的那个试图来监控队列任务的基本情况?DBA_JOBS, USER_JOBS2.6 【问题】请阅读一下代码,proc
11、edure testasbegincreate table test_pp (a number); insert into test_pp values(1);commit;end;如有错误之处请修改,并说明修改原因。如果没有不必作答。没有2.7 【问题】请简单说明一下建立分区表的意义。(分区表的好处)为了改善大型表的可伸缩性和可管理性东方国信-面试问卷第 5 页/共 12 页create table guestbook(id number(16) primary key,username varchar2(64),sex varchar2(2),email varchar2(256),exp
12、ressionvarchar2(128),content varchar2(4000),time date,ip varchar2(64)partition by range(time)(partition g_2000q4 values less than(2001-01-01)2001-01-01 2001-04-01 是算术右移操作符 .B、 是逻辑右移操作符.C、 是算术右移操作符D、 是逻辑右移操作符11、下面哪个赋值语句是合法的?A、float a = 2.0B、double b = 2.0C、int c = 2D、long d = 212、下面哪个是 main()函数的合法参数?
13、A、char argsB、char argsC、String argD、String args13、下面哪个语句是创建数组的正确语句?A、 float f = new float66;B、float f = new float66;C、float f = new float6;D、float f = new float66;E、float f = new float6;14、已知表达式 int m = 0, 1, 2, 3, 4, 5, 6 ;下面哪个表达式的值与数组下标量总数相等?A、 m.length()B、m.lengthC、m.length()+1D、m.length+115、已知如下的命令执行 java MyTest a b c请问哪个语句是正确的?A、 args0 = “MyTest a b c“B、args0 = “MyTest“C、args0 = “a“