几道面试题!

caihantao_2006 2009-03-04 09:23:53
1.请教一些数据库的问题:在oracle中,序列和索引有什么区别?
请大虾们指点一下!谢谢!
2.一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
你先按你自己的想法做一下,看结果有我的这个简单吗?
答:select a.name, b.name
from team a, team b
where a.name < b.name
这个答案我不理解!请大虾们指点一下!
3.学生表 如下:
自动编号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69
删除除了自动编号不同,其他都相同的学生冗余信息

答案是: delete tablename where 自动编号 not in(select min(自动编号) from tablename group by 学号,姓名,课程编号,课程名称,分数)
这个答案我不理解,请大虾们指点一下!
...全文
143 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿龙1107 2010-10-18
  • 打赏
  • 举报
回复
呵呵,学习楼上的!
lengxue789 2010-10-16
  • 打赏
  • 举报
回复
看看
学习一下
ZHOUGE 2009-03-05
  • 打赏
  • 举报
回复
路过,学习啦。
Divina 2009-03-05
  • 打赏
  • 举报
回复
说下我对第2个和第3个理解 :
第2个 : 4个球队之间的编号是具肯定不一样的 abcd之间具有明显的大小关系对比,要获得的可以理解为 ab ac ad bc bd cd 这种组合, 所以他用 '<'是完全可以搞定的。
第3个 : 按照 ‘学号,姓名,课程编号,课程名称,分数’ 分组后取得的 ‘自动编号’不唯一的时候,肯定会有 max 值或者 min 值 ,这样,只要相等的 可以delete掉了 ,一条的肯定 delete 不掉。

我不知道LZ 发的和 下面各位发的 哪个 效率更高点,希望各位达人观点。
cool_hnu 2009-03-05
  • 打赏
  • 举报
回复
第2题 就是楼主给的那样最简单吧
select a.name, b.name
from team a, team b
where a.name < b.name
Andy__Huang 2009-03-05
  • 打赏
  • 举报
回复
第1题和第2题三楼已经答对了,第三题是这样的

3.
delete tb
where id in(
select id
from (select id,row_number() over(partition by 学号,姓名,课程编号,课程名称,分数 order by id) rn from tb)
where rn>1)
wangsong145 2009-03-05
  • 打赏
  • 举报
回复
1、序列和索引是两个完全不同的概念,序列是用来去一个顺序号,比如一个表的主键可以取该序列,每次访问取得一个序号,且不会重复
索引是为了加快查询速度而引入的,类似于书中的目录。
2、select a.name,b.name from a,b where a.name<>b.name
yf520gn 2009-03-05
  • 打赏
  • 举报
回复
1.这个GOOGLE上搜下就知道了
2.如果考虑主客场的情况下:
SELECT DISTINCT A.NAME ANAME,B.NAME BNAME FROM TB2 A CROSS JOIN TB2 B
WHERE A.NAME<>B.NAME;
3.delete tb
where id in(
select id
from (select id,row_number() over(partition by 学号,姓名,课程编号,课程名称,分数 order by id) rn from tb)
where rn>1)
抄新人类的,嘿嘿~~~
wangsuwen 2009-03-05
  • 打赏
  • 举报
回复
delete table a where (select max(id) from table b where a.col_one=b.col_one and a.col_two=b.col_two and ....) <> a.id
fuyou001 2009-03-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lpc19598188 的回复:]
又来一个面试官
一面二面加三面,
四面五面再群面
[/Quote]
呵呵
又是违规昵称 2009-03-04
  • 打赏
  • 举报
回复
又来一个面试官
一面二面加三面,
四面五面再群面

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧