Sql常见面试题 受用了
Sql常见面试题 受用了 1.用一条SQL语句查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 A: select distinct name from table where name not in (select distinct name from table where fenshu80 2.学生表如下: 自动编号 学号 姓名 课程编号课程名称 分数 1 2005001 张三 0001 数学 69 2 2005002 李四 0001 数学 89 3 2005001 张三 0001 数学 69 删除除了自动编号不同,其他都相同的学生冗余信息 A: delete table name where 自 动编号 not in(select min( 自动编号)from tablename group by学号,姓名,课程编号,课程名称,分数) 3. 一个叫team的表,里面只有一个字段name, 一共有4条纪录,分别是 a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可 能的比赛组合. 你先按你自己的想法做一下,看结果有我的这个简单吗? 答:select a. name, b. name from team a, team b where a. name b. DebitlOlccur 5. 面试题:怎么把这样一个表儿 year month amount 1991 1 1. 1 1991 2 1. 2 1991 3 1. 3 1991 4 1.4 1992 1 2. 1 1992 2 2. 2 1992 3 2. 3 1992 4 2.4 查成这样一个结果 year ml m2 m3 m4 1991 1. 1 1.2 1.3 1.4 1992 2. 1 2. 2 2. 3 2. 4 答案一、 select year, from aaa group by year (select amount from (select amount from (select amount from aaa m where month=l aaa m where month=2 aaa m where month=3 and m. year=aaa. year) as ml, and m. year=aaa. year) as m2, and m. year=aaa. year) as m3, (select amount from aaa m where month=4 and m. year=aaa. year) as m4 6. 说明:复制表(只复制结构,源表名:a新表名:b) SQL: select * into b from a where 1O1 (wherel=l,拷贝表结构和数 据内容) ORACLE:create table b As Select * from a where 1=2 [ (不等于)(SQL Server Compact) 比较两个表达式。当使用此运算符比较非空表达式时,如果左操作数不等于右操作数,则结果 为TRUEo 否则,结果为FALSEo ] 7. 说明:拷贝表(拷贝数据,源表名:a目标表名:b) SQL: insert into b(a, b, c) select d, e, f from a; 8. 说明:显小文章、提父人和最后回复时间 SQL: select a. title, a. username, b. adddate from table a, (select max(adddate) adddate from table where table. title=a. title) b 9. 说明:外连接查询(表名1 : a表名2 : b) SQL: select a. a, a. b, a. c, b. c, b. d, b. f from a LEFT OUTER JOIN b ON a. a =b. c ORACLE : select a. a, a. b, a. c, b. c, b. d, b. f from a , b where a. a = b. c (+) 10. 说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff C minute5, f 开始时 间,getdate ()) >5 11. 说明:两张关联表,删除主表中已经在副表中没有的信息 SQL: Delete from info where not exists (select * from infobz where info, infid=infobz. infid ) 12. 有两个表A和B ,均有key和value两个字段,如果B的key在A中也 有,就把B的value换为A中对应的value 这道题的SQL语句怎么写? update b set b. value= (select a. value from a where a. key=b. key) where b. id in (select b. id from b, a where b. key=a. key); 13. 高级sql面试题 原表: courseid coursename score 1 java 70 2 oracle 90 3 xml 40 4 jsp 30 5 servlet 80 为了便于阅读,查询此表后的结果显式如下(及格分数为60): courseid coursename score mark 1 java 70 pass