sql面试题大全

上传人:xzh****18 文档编号:34566424 上传时间:2018-02-25 格式:DOC 页数:15 大小:53.50KB
返回 下载 相关 举报
sql面试题大全_第1页
第1页 / 共15页
sql面试题大全_第2页
第2页 / 共15页
sql面试题大全_第3页
第3页 / 共15页
sql面试题大全_第4页
第4页 / 共15页
sql面试题大全_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《sql面试题大全》由会员分享,可在线阅读,更多相关《sql面试题大全(15页珍藏版)》请在金锄头文库上搜索。

1、Sql 常见面试题 受用了 1. 用一条 SQL 语句 查询出每门课都大于 80 分的学生姓名 name kecheng fenshu 张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90A: select distinct name from table where name not in (select distinct name from table where fenshu80 2. 学生表 如下:自动编号 学号 姓名 课程编号 课程名称 分数1 2005001 张三 0001 数学 692 2005002 李四 0001

2、数学 893 2005001 张三 0001 数学 69删除除了自动编号不同, 其他都相同的学生冗余信息A: delete tablename where 自动编号 not in(select min( 自动编号) from tablename group by 学号, 姓名, 课程编号, 课程名称, 分数) 3. 一个叫 team 的表,里面只有一个字段 name, 一共有 4 条纪录,分别是a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条 sql 语句显示所有可能的比赛组合.你先按你自己的想法做一下,看结果有我的这个简单吗? 答:select a.name, b.name fr

3、om team a, team b where a.name b.Debit101ccur * 5. 面试题:怎么把这样一个表儿year month amount1991 1 1.11991 2 1.21991 3 1.31991 4 1.41992 1 2.11992 2 2.21992 3 2.31992 4 2.4查成这样一个结果year m1 m2 m3 m41991 1.1 1.2 1.3 1.41992 2.1 2.2 2.3 2.4 答案一、select year, (select amount from aaa m where month=1 and m.year=aaa.ye

4、ar) as m1,(select amount from aaa m where month=2 and m.year=aaa.year) as m2,(select amount from aaa m where month=3 and m.year=aaa.year) as m3,(select amount from aaa m where month=4 and m.year=aaa.year) as m4from aaa group by year *6. 说明:复制表( 只复制结构, 源表名:a 新表名:b) SQL: select * into b from a where 1

5、1 (where1=1,拷贝表结构和数据内容)ORACLE:create table b As Select * from a where 1=2 (不等于)(SQL Server Compact)比较两个表达式。 当使用此运算符比较非空表达式时,如果左操作数不等于右操作数,则结果为 TRUE。 否则,结果为 FALSE。7. 说明:拷贝表( 拷贝数据, 源表名:a 目标表名:b) SQL: insert into b(a, b, c) select d,e,f from a; 8. 说明:显示文章、提交人和最后回复时间 SQL: select a.title,a.username,b.add

6、date 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 *

7、 from 日程安排 where datediff(minute,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=(sel

8、ect 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 2 oracle 90 pass 3 xml

9、 40 fail 4 jsp 30 fail 5 servlet 80 pass - 写出此查询语句 select courseid, coursename ,score ,decode (sign(score-60),-1,fail,pass) as mark from course 完全正确 SQL desc course_v Name Null? Type - - - COURSEID NUMBER COURSENAME VARCHAR2(10) SCORE NUMBER SQL select * from course_v; COURSEID COURSENAME SCORE - -

10、- 1 java 70 2 oracle 90 3 xml 40 4 jsp 30 5 servlet 80 SQL select courseid, coursename ,score ,decode(sign(score-60),-1,fail,pass) as mark from course_v; COURSEID COURSENAME SCORE MARK - - - - 1 java 70 pass 2 oracle 90 pass 3 xml 40 fail 4 jsp 30 fail 5 servlet 80 pass SQL 面试题( 1)create table testt

11、able1(id int IDENTITY,department varchar(12) )select * from testtable1insert into testtable1 values(设计)insert into testtable1 values(市场)insert into testtable1 values(售后)/*结果id department1 设计2 市场3 售后 */create table testtable2(id int IDENTITY,dptID int,name varchar(12)insert into testtable2 values(1,张

12、三)insert into testtable2 values(1,李四)insert into testtable2 values(2,王五)insert into testtable2 values(3,彭六)insert into testtable2 values(4,陈七)/*用一条 SQL 语句,怎么显示如下结果id dptID department name1 1 设计 张三2 1 设计 李四3 2 市场 王五4 3 售后 彭六5 4 黑人 陈七*/答案:SELECT testtable2.* , ISNULL(department,黑人)FROM testtable1 righ

13、t join testtable2 on testtable2.dptID = testtable1.ID也做出来了可比这方法稍复杂。sql 面试题(2)有表 A,结构如下: A: p_ID p_Num s_id 1 10 01 1 12 02 2 8 01 3 11 01 3 8 03 其中:p_ID 为产品 ID,p_Num 为产品库存量,s_id 为仓库 ID。请用 SQL 语句实现将上表中的数据合并,合并后的数据为: p_ID s1_id s2_id s3_id 1 10 12 0 2 8 0 0 3 11 0 8 其中:s1_id 为仓库 1 的库存量,s2_id 为仓库 2 的库存量,s3_id 为仓库 3 的库存量。如果该产品在某仓库中无库存量,那么就是 0 代替。结果:select p_id ,sum(case when s_id=1 then p_num else 0 end) as s1_id,sum(case when s_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号