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 学号,姓名,课程编号,课程名称,分数)
这个答案我不理解,请大虾们指点一下!
请大虾们指点一下!谢谢!
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 学号,姓名,课程编号,课程名称,分数)
这个答案我不理解,请大虾们指点一下!
索引是为了加快查询速度而引入的,类似于书中的目录。
2、select a.name,b.name from a,b where a.name<>b.name
delete tb
where id in(
select id
from (select id,row_number() over(partition by 学号,姓名,课程编号,课程名称,分数 order by id) rn from tb)
where rn>1)
select a.name, b.name
from team a, team b
where a.name < b.name
第2个 : 4个球队之间的编号是具肯定不一样的 abcd之间具有明显的大小关系对比,要获得的可以理解为 ab ac ad bc bd cd 这种组合, 所以他用 '<'是完全可以搞定的。
第3个 : 按照 ‘学号,姓名,课程编号,课程名称,分数’ 分组后取得的 ‘自动编号’不唯一的时候,肯定会有 max 值或者 min 值 ,这样,只要相等的 可以delete掉了 ,一条的肯定 delete 不掉。 我不知道LZ 发的和 下面各位发的 哪个 效率更高点,希望各位达人观点。
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)
抄新人类的,嘿嘿~~~