Sql常见面试题 受用了.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Sql常见面试题 受用了.docx》由会员分享,可在线阅读,更多相关《Sql常见面试题 受用了.docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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 fenshu802. 学生表 如下:自动编号 学号 姓名 课程编号 课程名称 分数1 张三 0001 数学 692 李四 0001 数学 893 张三 0001 数学 69删除
2、除了自动编号不同, 其他都相同的学生冗余信息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 from team a, team b where a.name b.De
3、bit101ccur*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.year) as m1,(select amount from aaa m w
4、here 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 11 (where1=1,拷贝表结构和数据内容)ORACLE:create t
5、able bAsSelect * 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.adddate from table a,(select max(adddate)
6、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.cORACLE :select a.a, a.b, a.c, b.c, b.d, b.f from a ,bwhere a.a = b.c(+)10. 说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff(minute,f 开始时间,get
7、date()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(selec
8、t 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 40 fail 4 jsp 30 fail 5 servlet 80 pass - 写出此查询语句select cours
9、eid, 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 - - - 1 java 70 2 oracle 90 3 xml 40 4 jsp 30 5 servlet 80 SQL selec
10、t 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 passSQL面试题(1)create table testtable1(id int IDENTITY,department varchar(12) )select * from testtab
11、le1insert 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,张三)insert into testtable2 values(1,李四)insert into testtable2 values(
12、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 right join testtable2 on testtable2.dptID = testtable1.ID也做出来了可比这方法稍复杂。sq
13、l面试题(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_n
14、um else 0 end) as s1_id,sum(case when s_id=2 then p_num else 0 end) as s2_id,sum(case when s_id=3 then p_num else 0 end) as s3_idfrom myPro group by p_idSQL面试题(3)1 触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Sql常见面试题 受用了 Sql 常见 试题 受用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内