`
darrenzhu
  • 浏览: 797479 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL面试题集

阅读更多
原文:http://www.cnblogs.com/-Sai-/p/6802489.html
1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名

name kecheng fenshu

张三 语文 81

张三 数学 75

李四 语文 76

李四 数学 90

王五 语文 81

王五 数学 100

王五 英语 90

解法1: select distinct name from table where name not in (select distinct name from table where fenshu<=80)
解法2:select name from table group by name having min(fenshu)>80

2. 删除除了自动编号不同, 其他都相同的学生冗余信息

学生表 如下:

自动编号 学号 姓名 课程编号 课程名称 分数

1 2005001 张三 0001 数学 69

2 2005002 李四 0001 数学 89

3 2005001 张三 0001 数学 69

Answer: 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.name

4. 请用SQL 语句实现:从TestDB 数据表中查询出所有月份的发生额都比101 科目相应月份的发生额高的科目。请注意:TestDB 中有很多科目,都有1-12 月份的发生额。

AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额。
数据库名:JcyAudit ,数据集:Select * from TestDB
答:select a.*
from TestDB a
,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group by Occmonth) b
where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur

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 m1 m2 m3 m4

1991 1.1 1.2 1.3 1.4

1992 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 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 m4
from aaa group by year

6. 说明:复制表( 只复制结构, 源表名:a 新表名:b)

SQL: select * into b from a where 1<>1 (where1=1,拷贝表结构和数据内容)
ORACLE:create table b
As
Select * from a where 1=2

补充

1、既复制表结构也复制表内容的SQL语句:CREATE TABLE tab_new AS SELECT * FROM tab_old;
2、只复制表结构不复制表内容的SQL语句:CREATE TABLE tab_new AS SELECT * FROM tab_old WHERE 1=2;
3、不复制表结构,只复制内容的sql语句:insert into tab_new select * from tab_old;或者SELECT vale1, value2 into Table2 from Table1

7. 说明:显示文章、提交人和最后回复时间

SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

8. 说明:日程安排提前五分钟提醒

SQL: select * from 日程安排 where datediff('minute',f 开始时间,getdate())>5

9. 有两个表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);

10. 高级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 courseid, coursename ,score ,decode (sign(score-60),-1,'fail','pass') as mark from course

11. sql题

create table testtable1
(
id int IDENTITY,
department varchar(12)
)

select * from testtable1
insert into testtable1 values('设计')
insert into testtable1 values('市场')
insert into testtable1 values('售后')

结果
id department
1 设计
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(2,'王五')
insert into testtable2 values(3,'彭六')
insert into testtable2 values(4,'陈七')

用一条SQL语句,怎么显示如下结果
id dptID department name
1 1 设计 张三
2 1 设计 李四
3 2 市场 王五
4 3 售后 彭六
5 4 黑人 陈七

答案:

SELECT testtable2.* , ISNULL(department,'黑人')
FROM testtable1 right join testtable2 on testtable2.dptID = testtable1.ID

也做出来了可比这方法稍复杂。

12.查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列,完整的查询语句如下:

select top 10 * from A where ID >(select max(ID) from (select top 30 ID from A order by A ) T) order by A

13.查询表A中存在ID重复三次以上的记录,完整的查询语句如下:

select * from(select count(ID) as count from table group by ID)T where T.count>3

http://blog.csdn.net/software815/article/details/3309647
http://www.jfox.info/SQL-mian-shi-ti-mu-ji-da-an
http://blog.csdn.net/jingxuewang110/article/details/6836148
分享到:
评论

相关推荐

    sql面试题很详细的sql语句面试题

    SQL面试题详解 本资源旨在总结和详细解释SQL面试题中的各种问题和解决方案,并对每个问题进行了详细的解释和分析。 一、查询每门课都大于80分的学生姓名 问题:使用一条SQL语句查询出每门课都大于80分的学生姓名...

    SQL面试题(很全,带答案)

    根据给定的文件标题、描述、标签以及部分内容,我们可以从中提炼出以下详细的IT知识点,主要聚焦于SQL语言的基础操作及面试常考知识点: ### SQL语言基础分类与功能 #### 数据定义语言(DDL) - `CREATE DATABASE`:...

    尚硅谷大数据技术之企业SQL面试题_大数据_sql_尚硅谷sql_doc_

    "尚硅谷大数据技术之企业SQL面试题"这个资料集显然针对的是准备面试的求职者,特别是那些希望在大数据环境中运用SQL技能的角色。这份文档可能是由尚硅谷——一个知名的IT教育机构提供的,旨在帮助学习者掌握SQL在...

    oraclesql面试题

    从给定的Oracle SQL面试题中,我们可以提炼出多个关键知识点,这些知识点涵盖了SQL查询、数据操作、表结构设计以及Oracle数据库的一些高级特性。以下是对这些知识点的详细解析: ### 1. 数据分组与聚合函数 在第一...

    SQL常见的面试题集锦,非常详尽的题库,非常经典

    这个压缩包中的"SQL面试题"集合,无疑是一个全面且经典的SQL知识复习资源,适用于准备面试的求职者或希望提升SQL技能的从业者。 首先,我们要理解SQL的基本概念。SQL主要包括数据查询、数据更新、数据插入和数据...

    SQL精选面试题

    本资源提供了SQL面试题的相关知识点,涵盖了触发器、索引、内存泄漏、事务、锁、视图、游标、数据库对象、NULL值、索引类型、主键、外键、触发器类型等概念的解释。 一、触发器 触发器是一种特殊的存储过程,主要...

    SQLServer高频面试题及答案

    SQL Server高频面试题及答案 数据库基础知识篇 1. 主键、外键、超键、候选键 超键是关系模式中能唯一标识元组的属性集。候选键是最小超键,即没有冗余元素的超键。主键是数据库表中对储存数据对象予以唯一和完整...

    SQL_Server 面试笔试试题及答案

    "SQL Server 面试笔试试题及答案" 本资源摘要提供了 SQL Server 面试笔试试题及答案,涵盖了数据库...* 本资源提供了 19 道 SQL Server 面试题,涵盖了数据模型、实体关系、SQL 语言、Transact-SQL 等多方面的知识点。

    2022年度数据库最常用的语言SQL面试题汇总和答案共11

    这份压缩包内可能包含了一套完整的SQL面试题集,涵盖11个主题或问题类别,可能包括基础语法、查询优化、联接操作、子查询、存储过程、触发器、事务处理、索引策略、视图、游标以及窗口函数等方面。这些内容对于理解...

    2018_BAT的55道sql面试题

    在BAT(百度、阿里巴巴、腾讯)等互联网大公司中,SQL面试题是技术面试的重要组成部分,因为掌握SQL是任何数据库工程师或数据分析师的基础技能。以下是一些常见问题的详细解答: 1. **ID自增主键**:在MySQL中,...

    经典T-SQL面试题

    ### 经典T-SQL面试题解析 #### 题目一:创建空表与条件筛选 **原题描述**:"使用`SELECT INTO`语句从`tb_amount`表中选择所有列到新表`tb_temp`,但在选择时加入一个永远不成立的条件(`1&lt;&gt;1`),确保`tb_temp`为空...

    SQL实际应用面试题

    ### SQL实际应用面试题知识点详解 #### 知识点一:SQL Server中的结果集分页管理 **背景:** 在数据库应用中,特别是在Web应用程序中,我们常常需要以分页形式展示查询结果,以提高用户体验并减少服务器负载。在...

    java面试题集,微软面试题集,IBM面试题集,MBA面试题集

    Java面试题集: Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高生产力、可移植性、安全性和性能。在Java面试中,常见的知识点包括但不限于:基础语法(如类、对象、接口、继承、多态)、异常处理、...

    sql 面试问题集

    SQL面试问题集通常包含多种级别的SQL问题,从基础知识点到高级概念,这些问题旨在考察求职者对SQL的掌握程度以及他们解决数据库相关问题的能力。 在数据库领域中,SQL语言是核心技能之一。尽管SQL语言有标准规范,...

    sqlserver面试题

    SQL Server 面试题知识点总结 本文档旨在总结 SQL Server 面试题中涉及到的知识点,涵盖触发器、存储过程、索引、事务、锁、视图、游标等重要概念。 1. 触发器 触发器是一种特殊的存储过程,通过事件来触发执行,...

    sql模拟面试题.

    以上就是对这些SQL面试题的详细解答和相关知识点的扩展。在实际面试中,面试官可能会根据这些问题进一步测试候选人的能力,例如处理更复杂的数据关系、优化查询性能、理解索引作用等。熟悉SQL的语法、操作和优化技巧...

    经典sql语句(SQL经典面试题及答案,某外企SQL Server面试题L)

    本资源“经典sql语句”聚焦于SQL的经典面试题及其解答,旨在帮助求职者特别是针对SQL Server岗位的应聘者准备面试。以下将详细解析SQL的一些核心知识点,并结合可能的面试问题进行阐述。 1. **选择查询(SELECT)**...

    经典sql面试题附答案

    根据给定的SQL题目及其答案,我们可以总结出一系列重要的SQL知识点和技巧,这些知识点对于学习SQL及准备面试都非常有帮助。...这些技能不仅对准备SQL面试非常有用,也是日常开发工作中不可或缺的能力。

    经典sql面试题及答案

    在SQL面试中,掌握基本的查询技巧和理解复杂的联接操作是至关重要的。以下是对给定的SQL面试题目的详细解答: 1. **找出选修过李明老师讲授课程的所有学生姓名** - 步骤:首先,我们需要找到与李明老师关联的课程...

Global site tag (gtag.js) - Google Analytics