一、选择题
(1)已知表T1中有2行数据,T2中有3行数据,执行SQL语句
“select a.* from T1 a,T2 b”后,返回的行数为______
A、2行
B、3行
C、5行
D、6行
多表查询没有指定连接条件,会导致笛卡尔积的出现,返回行数等于2张表的行数乘积,返回6行记录
考察:对多表连接、笛卡尔积的理解
答案:A
(2)、已知表T1和T2的字段定义完全相同,T1,T2中各有5条不同的数据,其中T1有2条数据存在于表T2中,语句“select * from T1 union select * from T2”
返回的行数为_______
A、8行
B、10行
C、3行
D、12行
第二题  UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
考察:UNION 的理解
答案: A
(3)、 已知表T1含有字段ID、CourseID和Score,且数据为
ID CourseID Score
3 1 90
2 1 85
2 2 90
3 2 80
则语句“select id,sum(ScorE) from T1 group by ID”的执行结果为_________
A、 ID          sum(ScorE)
—–        ———-
3            170
2            175
B、 ID          sum(ScorE)
—–        ———-
2            175
3            170
C、 ID          sum(ScorE)
—–        ———-
2            170
3            175
D、 ID          sum(ScorE)
—–        ———-
3            175
2                170
第三题 GROUP BY 对按照ID字段进行分组,同时对ID相同字段的ScorE进行求和,GROUP by 会自动对结果集进行排序所以答案选B
考察:group by 的理解
答案: B
(4)、电话号码表t_phonebook中含有100万条数据,其中号码字段PhoneNo上创建了唯一索引,且电话号码全部由数字组成,要统计号码头为321的电话号码的数量,下面写法执行速度最慢的是_________
A、 select count(*) from t_phonebook where phoneno >= ‘321’ and phoneno < ‘321A’
B、 select count(*) from t_phonebook where phoneno like ‘321%’
C、 select count(*) from t_phonebook where substring(phoneno,1,3) = ‘321’
A>或者<;操作符会采用索引查
B:LIKE通配符在XXX%情况下会应用索引,如果在%xxx%等情况下不会应用索引
答案: C:采用函数处理的字段不能利用索引,例如substr()  这个题好像写成java的函数了
答案: C
(5)、已知表tbl中字段land_ID建有索引,字段cust_id建有唯一索引,下列语句查询逻辑相同,其中
执行效率最优的是
A、 SELECT * FROM tbl
WHERE land_id > 750
or (cust_id=180 or cust_id=560)
B、 SELECT * FROM tbl
WHERE (cust_id=180 or cust_id=560)
or land_id > 750
C、 SELECT * FROM tbl WHERE land_id > 750
UNION
SELECT * FROM tbl WHERE cust_id = 180
UNION
SELECT * FROM tbl WHERE cust_id = 560
D、 SELECT * FROM tbl WHERE land_id > 750
jsw3cUNION
(  SELECT * FROM tbl WHERE cust_id = 180
UNION ALL
SELECT * FROM tbl WHERE cust_id = 560
)
C/D相比
较而言,D的执行效率更高一些
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录
采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两个结果合并后就返回。
(6)、员工技能表Staffskill结构如下,Staff和Skill字段建有唯一约束
staff  VARCHAR2(10),
skill  VARCHAR2(10)
哪条语句可以查询同时拥有技能A和技能B的员工
A、 select staff from Staffskill where skill=’A’ OR skill=’B’
B、 select staff from Staffskill where skill=’A’ AND skill=’B’
C、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff
D、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff having count(*)>1
答案:D
(7)员工表staff表结构如下
staffNo  varchar2(10),
Email    varchar2(50)
哪一个SQL语句查询出没有E_mail地址的员工号
A、select staffno from Staff where Email = NULL
B、select staffno from Staff where Email <> NULL
C、select staffno from Staff where Email is null
D、select staffno from Staff where Email is not null
答案: C
(8)Oracle数据库启动步骤的顺序为
1.Mount  2.Open  3.Nomount
A、3-1-2
B、2-3-1
C、2-1-3
D、3-2-1
答案:A
(9)存在两个结构相同的数据库表T1(col1,col2,col3)、T2(col1,col2,col3),写出一SQL语句将所有T1数据导入到T2表
A、select col1,col2,col3 from T1 INTO T2 (col1,col2,col3)
B、INSERT T1 (col1,col2,col3) INTO T2(col1,col2,col3)
C、insert into T2 (col1,col2,col3) AS select col1,col2,col3 from T1;
mysql面试题sql语句多表联查
D、insert into T2 (col1,col2,col3) select col1,col2,col3 from T1;
答案: D
10)一个表的字段为varchar2,如果建表时没有指定长度,则默认长度为:
A、1
B、25
C、38
D、255
E、4000
F、建表时varchar2类型字段必须指定长度
答案:F
(11)用TRUNCATE和DELETE语句删除表中数据的区别?
A、TRUNCATE命令不记录日志
B、TRUNCATE命令记录日志
C、DELETE命令不记录日志
答案:A
(12)如下查询语句SELECT id_number,100/quantity from inventory如果quantity为空,则查询语句的第二个字段将返回
A、 a space
B、 a null value
C、 a value of 0
D、 a value of 100
E、 the keywork null
答案:B
(13)如下语句:SELECT i.id_number,m.id_number FROM inventory i,manufacturer m
WHERE i.manufacturer_id = m.id_number
tomcat虚拟路径
Order by inventory.description
执行时是错误的,请问以下措施哪个能够改正这个错误?
qt和pyqt区别
A 在order by的子句中使用表的别名
B 在where子句中去掉表的别名
C 在where子句中用表名代替表的别名
D 在order by子句中去掉表名,只要字段名称即可
(如果2张表中,不同时存在字段名为description的话,D答案也是正确的)
答案:A
14)A表字段a 类型in
t中有100条记录,值分别为1至100。如下语句
SELECT a FROM A
WHERE A BETWEEN 1 AND 50
OR (A IN (25,70,95)
AND A BETWEEN 25 AND 75)
则如下哪个值在这个sql语句返回的结果集中
A、30  B、51  C、75  D、95
答案:A
15) 变量v_time = ‘23-MAY-00’,如下那条语句返回值为‘01-JAN-00’?
A SELECT ROUND(V_TIME,’DAY’) FROM DUAL;
B SELECT ROUND(V_TIME,’YEAR’) FROM DUAL;
C SELECT ROUND(V_TIME,’MONTH’) FROM DUAL;
D SELECT ROUND(TO_CHAR(V_TIME,’YYYY’)) FROM DUAL;
答案:B
16)关于索引(index)的说法哪些是错误?
A、创建索引能提高数据插入的性能
B、索引应该根据具体的检索需求来创建,在选择性好的列上创建索引
C、索引并非越多越好
D、建立索引可使检索操作更迅速
答案: A
csocket编程详解(17)指出下面sql语句的错误之处:
select id_number “Part Number”,sum(price) “price” from inventory
where price > 50
group by “Part Number”
sql修改多个字段数据
order by 2;
A、order by 2
B、from inventory
C、 where price > 50
D、group by “Part Number”
答案:D
(18)如下语句
if v_num > 5 then
v_example := 1;
elsif v_num > 10 then
v_example := 2;
elsif v_num < 20 then
v_example := 3;
elsif v_num < 39 then
v_example := 4;
else  v_example := 5;
如果v_num = 37,则v_example的值是多少?
A、1    B、2  C、3  D、4  E、5
答案:A
(19)如下语句:
begin
for i in 1..8 loop
if i=2 then
null;
else
if i=5 then
rollback;
else
if i =8  then
commit;
else
insert into texample(A) values(i);
end if;
end if;
end if;
end loop;
commit;
end;
执行该语句后将有几条记录插入到表texample表中?
A=1          B=2              C=3            D=4
答案:B
(20)设计一表结构,某字段要求存放员工编号,为固定10位长字符,采用哪种类型字段
A、CHAR
B、LONG
C、VARCHAR
D、varray
答案:A
二、填空编程题
(1)、已知T1包含字段ID、ID2,T2包含字段ID,请在空白处完成SQL语句,查询表T1字段ID2取值存在于T2的ID取值集合中。
select * from T1 A where ______ (select * from T2 B where B.ID = A.ID2)
select * from T1 A where A.ID ______ (select ID from T2 B)
select A.* from T1 A, T2 B where A.ID2 ______ B.ID
答案:
select * from T1 A where _ Exists_____ (select * from T2 B where B.ID = A.ID2)
select * from T1 A where A.ID __in____ (select ID from T2 B)
select A.* from T1 A, T2 B where A.ID2 __=____ B.ID
(2)Oracle创建表时指定了以下的存储参数:
initial  50K
next  20K
pctincrease 10
则这个表第三次扩展分配的空间大小为__________
答案:22k
(3)、已知表T1包含字段ID,对同一个ID的取值,可能存在多条数据,请在空白处完成SQL语句,查询T1中对应有大于1条数据ID及其对应数据的条数。
select ID,count(*) from T1 group by ID ___________________
答案: HAVING COUNT(*)>1
(4)、已知表T1、T2和T
3的结构和数据如下
T1
NameID CourseID Score
1 1 90
1 2 85
2 1 75
2 2 95
T2
ID Course
1 数学
2 语文
T3
ID Name
1 张三
2 李四
请写出查询的SQL语句,使得查询的结果为:
Name        Course        Score
——–    ——–      ——–
张三        数学          90
张三        语文          85
李四        数学          75
李四        语文          95
答案: select Name,Course,Score from T1,T2,T3 where T3.ID=T1.NameID and T1.CourseID=T2.ID
(5)、某大型商场的数据库中有一个日志表t_Log,它记录了每日的商品交易日志,t_Log包含了字段L
ogDatetime记录日志的生成时间,每日的日志数据为20,000-40,000条之间。后发现日志表数据量过于庞大,需要删除6个月前的历史日志数据约3,000,000行。请综合考虑性能等因素,写出删除历史数据的SQL语句。
答案(T-SQL):此题应用存储过程分批删除并提交,如下是每次删除10000
create or replace procedure Del_pro as
v_Boolean Boolean :=true;
v_count integer :=0;
begin
while v_Boolean loop
delete from t_Log where Add_months(LogDateTime,6)<sysdate and rownum<10000;
commit;
select count(*) into v_count from t_log  where Add_months(LogDateTime,6)<sysdate;
if v_count=0 then
v_Boolean=false;
end if;
end loop;
end;
数据量比较大的情况,可以考虑分批删除,效率会高一些。可使用循环控制语句中,使用rownum<10000来分300次来删除。注意每次删除后commit。
(6)、请写出oracle的SGA区的几个组成部分(只写出4个主要部分即可)。
答案:Shared pool(共享池),DataBase Buffer Cache(数据缓冲区)
Redo Log Buffer(重做日志缓冲区), Large Pool
三、JAVA
1、作用域public,private,protected,以及不写时的区别
答:区别如下:
作用域          当前类      同一package  子孙类      其他package
public            √              √                  √            √
protected        √              √                  √            ×
friendly          √              √                  ×            ×
private          √              ×                  ×            ×
2、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
答:
Public String translate (String str) {
String tempStr = "";
try {
tempStr = new Bytes("ISO-8859-1"), "GBK");
tempStr = im();
}
catch (Exception e) {
}
return tempStr;
}
3、Servlet执行时一般实现哪几个方法?
答:
public void init(ServletConfig config)
public ServletConfig getServletConfig()
public String getServletInfo()
public void service(ServletRequest request,ServletResponse response)
public void destroy()
Jdbc、Jdo方面

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。