ImageVerifierCode 换一换
格式:DOC , 页数:45 ,大小:82.54KB ,
资源ID:8191237      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8191237.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(2024年sql经典面试题.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2024年sql经典面试题.doc

1、1.张表,学生表S,课程C,学生课程表SC,学生能够选修多门课程,一门课程能够被多个学生选修,通过SC表关联;(SQL) 1)写出建表语句; 答:建表语句如下(mysql数据库): create table s(id integer primary key, name varchar(20)); create table c(id integer primary key, name varchar(20)); create table sc( sid integer references s(id), cid integer references c(id), primary

2、key(sid,cid) ); 2)写出SQL语句,查询选修了所有选修课程的学生; 答:SQL语句如下: select stu.id, stu.name from s stu where (select count(*) from sc where sid=stu.id) = (select count(*) from c); 3)写出SQL语句,查询选修了最少5门以上的课程的学生。 答:SQL语句如下: select stu.id, stu.name from s stu where (select count(*) from sc where sid=stu.id)>=

3、5; 2.数据库表(Test)结构如下:(SQL) IDNAMEAGEMANAGER(所属主管人ID) 106A30104 109B19104 104C1 107D35109 112E25120 119F45NULL 要求:列出所有年龄比所属主管年龄大的人的ID和名字? 答:SQL语句如下: select employee.name from test employee where employee.age> (select manager.age from test manager where manager.id=employee.manager); 3.

4、有3个表(15分钟):(SQL) Student 学生表 (学号,姓名,性别,年龄,组织部门) Course 课程表 (编号,课程名称) Sc 选课表 (学号,课程编号,成绩) 表结构如下: 1)写一个SQL语句,查询选修了’计算机原理’的学生学号和姓名(3分钟) 答:SQL语句如下: select stu.sno, stu.sname from Student stu where (select count(*) from sc where sno=stu.sno and cno = (select cno from Course where cname=’计算机原理’

5、)) != 0; 2)写一个SQL语句,查询’周星驰’同学选修了的课程名字(3分钟) 答:SQL语句如下: select cname from Course where cno in (select cno from sc where sno=(select sno from Student where sname=’周星驰’)); 3)写一个SQL语句,查询选修了5门课程的学生学号和姓名(9分钟) 答:SQL语句如下: select stu.sno, stu.sname from student stu where (select count(*) from sc where

6、sno=stu.sno) = 5; 小小+霸霸+王王=小霸王 小=?,霸=?,王=? 用sql求证 参考答案: declare @data int,@i int,@j int,@l int set @data=100 while (@data<=999) begin set @i=@data/100 set @j=@data/10 % 10 set @l=@data % 10 if((@i+@j+@l)*11=@data) begin Select @data data,

7、@i i,@j j,@l l break end set @data=@data+1 end; 分析: II+JJ+LL=IJL I*10+I +J*10+J+L*10+L = I*100+J*10+L (I+J+L)*11 1. 用一条SQL 语句 查询出每门课都不小于80 分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 9

8、0 王五 语文 81 王五 数学 100 王五 英语 90 A: select distinct name from table where name not in (select distinct name from table where fenshu<=80) B: select name from table group by name having min(fenshu)>80 2. 一个叫 depart 的表,里面只有一个字段team, 一共有4 条纪录,分别是a,b,c,d, 对应四个球对,

9、目前四个球对进行比赛,用一条sql 语句显示所有也许的比赛组合. 你先按你自己的想法做一下,当作果有我的这个简单吗? create table depart ( team varchar(50) not null ) 答:select a.team, b.team from depart a, depart b where a.team < b.team 3. 请用SQL 语句实现:从TestDB 数据表中查询出所有月份的发生额都比101 科目对应月份的发生额高的科目。请注意:TestDB 中有诸多科目,都有1 -12 月份的发生额。 AccID :科

10、目代码,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 4.阐明:复制表( 只复制结构, 源表名:a 新表名

11、b) SQL: select * into b from a where 1<>1 (where1=1,拷贝表结构和数据内容) ORACLE:create table b As Select * from a where 1=2 [<>(不等于)(SQL Server Compact) 比较两个体现式。 当使用此运算符比较非空体现式时,假如左操作数不等于右操作数,则成果为 TRUE。否则,成果为 FALSE。] 5. 阐明:拷贝表( 拷贝数据, 源表名:a 目标表名:b) SQL: insert into b(a, b, c) se

12、lect d,e,f from a; 6.阐明:两张关联表,删除主表中已经在副表中没有的信息 SQL: Delete from info where not exists (select * from infobz where info.infid=infobz.infid ) 7.有两个表A 和B ,都有key 和value 两个字段,假如B 的key 在A 中也有,就把B 的value 换为A 中对应的value 这道题的SQL 语句怎么写? update b set b.value=(select a.value from a whe

13、re a.key=b.key) where b.id in(select b.id from b,a where b.key=a.key); 8.为了便于阅读, 查询此表后的成果显式如下( 及格分数为60): courseid coursename score mark --------------------------------------------------- 1 java 70 pass 2 oracle 90 pass 3 xml 40 fail 4

14、 jsp 30 fail 5 servlet 80 pass --------------------------------------------------- 写出此查询语句 select courseid, coursename ,score ,decode (sign(score-60),-1,'fail','pass') as mark from course 'decode'貌似在我的SQLSERVER里无法识别,可用如下措施替代 select courseid,coursename,score,

15、 (case when (score-60)>=0 then 'pass' else 'fail' end) as mark from course ************************************************************************************************ 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为仓库I

16、D。请用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_id=2 then p_num else 0 end) as s2_id ,sum(case wh

17、en s_id=3 then p_num else 0 end) as s3_id from myPro group by p_id 7。为管理业务培训信息,建立3个表: S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄 C(C#,CN)C#,CN分别代表课程编号,课程名称 SC(S#,C#,G) S#,C#,G分别代表学号,所选的课程编号,学习成绩 (1)使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名? 答案:selec

18、t s# ,sn from s where S# in(select S# from c,sc where c.c#=sc.c# and cn=’税收基础’) (2) 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位? 答:select sn,sd from s,sc where s.s#=sc.s# and sc.c#=’c2’ (3) 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位? 答:select sn,sd from s where s# not in(select s# from sc wh

19、ere c#=’c5’) (4)查询选修了课程的学员人数 答:select 学员人数=count(distinct s#) from sc (5) 查询选修课程超出5门的学员学号和所属单位? 答:select sn,sd from s where s# in(select s# from sc group by s# having count(distinct c#)>5) SQL面试题(4) 1.查询A(ID,Name)表中第31至40条统计,ID作为主键也许是不是连续增加的列,完整的查询语句如下: select top

20、10 * from A where ID >(select max(ID) from (select top 30 ID from A order by A ) T) order by A 2.查询表A中存在ID重复三次以上的统计,完整的查询语句如下: select * from(select count(ID) as count from table group by ID)T where T.count>3 SQL面试题(3) 1 .触发器的作用? 答:触发器是一中特殊的存储过程,重要是通过事件来触发而被执行的。它能够强化约束,来维护数据的完整性和

21、一致性,能够跟踪数据库内的操作从而不允许未经许可的更新和变化。能够联级运算。如,某表上的触发器上包括对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2 。什么是存储过程?用什么来调用? 答:存储过程是一个预编译的 SQL 语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就能够调用数次。假如某次操作需要执行数次 SQL ,使用存储过程比单纯 SQL 语句执行要快。能够用一个命令对象来调用存储过程。 3 。索引的作用?和它的优点缺陷是什么? 答:索引就一个特殊的查询表,数据库的搜索引擎能够利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要

22、查询整本书内容就能够找到想要的数据。索引能够是唯一的,创建索引允许指定单个列或者是多个列。缺陷是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 3 。什么是内存泄漏? 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分派的,大小任意的,使用完后要显示释放内存。当应用程序用核心字 new 等创建对象时,就从堆中为它分派一块内存,使用完后程序调用 free 或者 delete 释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 4 。维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为何? 答:我是这么做的,尽也许使用约束

23、如 check, 主键,外键,非空字段等来约束,这么做效率最高,也最以便。其次是使用触发器,这种措施能够确保,无论什么业务系统访问数据库都能够确保数据的完整新和一致性。最后考虑的是自写业务逻辑,但这么做麻烦,编程复杂,效率低下。 5 。什么是事务?什么是锁? 答:事务就是被绑定在一起作为一个逻辑工作单元的 SQL 语句分组,假如任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就能够使用事务。要将有组语句作为事务考虑,就需要通过 ACID 测试,即原子性,一致性,隔离性和持久性。 锁:在因此的 DB

24、MS 中,锁是实现事务的核心,锁能够确保事务的完整性和并发性。与现实生活中锁同样,它能够使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。 6 。什么叫视图?游标是什么? 答:视图是一个虚拟的表,具备和物理表相同的功效。能够对视图进行增,改,查,操作,试图一般是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更轻易,相比多表查询。 游标:是对查询出来的成果集作为一个单元来有效的处理。游标能够定在该单元中的特定行,从成果集的目前行检索一行或多行。能够对成果集目前行做修改。一般不使用游标,不过需要逐条处理数据的时候,

25、游标显得十分重要。 SQL面试题(5) 在面试应聘的SQL Server数据库开发人员时,我利用了一套标准的基准技术问题。下面这些问题是我以为能够真正有利于裁减不合格应聘者的问题。它们按照从易到难的次序排列。当你问到有关主键和外键的问题时,背面的问题都十分有难度,因为答案也许会更难解释和阐明,尤其是在面试的情形下。 你能向我简明论述一下SQL Server 中使用的某些数据库对象吗? 你希望听到的答案包括这么某些对象:表格、视图、用户定义的函数,以及存储过程;假如他们还能够提到像触发器这么的对象就愈加好了。假如应聘者不能回答这个基本的问题,那么这不是一个好兆头。

26、NULL是什么意思? NULL(空)这个值是数据库世界里一个非常难缠的东西,因此有不少应聘者会在这个问题上跌跟头您也不要以为意外。 NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望取得一个答案。您必须使用IS NULL操作符。 什么是索引?SQL Server 里有什么类型的索引? 任何有经验的数据库开发人员都应当能够很轻易地回答这个问题。某些经验不太多的开发

27、人员能够回答这个问题,不过有些地方会说不清楚。 简单地说,索引是一个数据结构,用来迅速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着无论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按次序被保存在表格。因为存在这种排序,因此每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。 什么是主键?什么是外键? 主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个

28、表格之间关系的约束。这种关系一般都包括一个表格里的主键字段与另外一个表格(尽管也许是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。 什么是触发器?SQL Server 有什么不一样类型的触发器? 让将来的数据库开发人员懂得可用的触发器类型以及怎样实现它们是非常有益的。 触发器是一个专用类型的存储过程,它被捆绑到SQL Server 的表格或者视图上。在SQL Server 里,有INSTEAD-OF和AFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例

29、如,假如我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。 AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。 您怎样确一个带有名为Fld1字段的TableB表格里只具备Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里? 这个与关系有关的问题有两个也许的答案。第一个答案(并且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整

30、性。它被用来确保表格里的字段只保存有已经在不一样的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(一般是另外一个表格的主键)。 另外一个答案是触发器。触发器能够被用来确保以另外一个方式实现与限制相同的作用,不过它非常难设置与维护,并且性能一般都很糟糕。因为这个原因,微软提议开发人员使用外键限制而不是触发器来维护引用的完整性。 对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑? 你正在寻找进行与数据操控有关的应聘人员。对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。

31、你能够用什么来确保表格里的字段只接收特定范围里的值? 这个问题能够用多个方式往返答,不过只有一个答案是“好”答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。 触发器也能够被用来限制数据库表格里的字段能够接收的值,不过这种措施要求触发器在表格里被定义,这也许会在某些情况下影响到性能。因此,微软提议使用Check限制而不是其他的方式来限制域的完整性。 假如应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表白他们具备使用存储过程的经验。 返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。

32、 OUTPUT参数明确要求由开发人员来指定,它能够返回其他类型的数据,例如字符型和数值型的值。(能够用作输出参数的数据类型是有某些限制的。)您能够在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。 什么是有关子查询?怎样使用这些查询? 经验愈加丰富的开发人员将能够准确地描述这种类型的查询。 有关子查询是一个包括子查询的特殊类型的查询。查询里包括的子查询会真正祈求外部查询的值,从而形成一个类似于循环的情况。 Sql常见面试题 受用了 1. 用一条SQL 语句 查询出每门课都不小于80 分的学生姓名 name k

33、echeng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 A: select distinct name from table where name not in (select distinct name from table where fenshu<=80) select name from table group by na

34、me having min(fenshu)>80 2. 学生表 如下: 自动编号 学号 姓名 课程编号 课程名称 分数 1 001 张三 0001 数学 69 2 002 李四 0001 数学 89 3 001 张三 0001 数学 69 删除除了自动编号不一样, 其他都相同的学生冗余信息 A: delete tablename where 自动编号 not in(select min( 自动编号) from tablename group by 学号, 姓名, 课程编

35、号, 课程名称, 分数) 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 月份的发

36、生额。 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 ************

37、 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

38、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

39、 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 S

40、elect * 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

41、 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. 阐明:日程安排提前五分钟提示 SQ

42、L: select * 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

43、都有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 面试

44、题 原表: courseid coursename score ------------------------------------- 1 java 70 2 oracle 90 3 xml 40 4 jsp 30 5 servlet 80 ------------------------------------- 为了便于阅读, 查询此表后的成果显式如下( 及格分数为60): courseid coursename score mark --------------------------------------------------

45、 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 完全正确 SQL> desc course_v Name Null

46、 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 se

47、rvlet 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) cre

48、ate 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 IDE

49、NTITY, 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 设计

50、 张三 2 1 设计 李四 3 2 市场 王五 4 3 售后 彭六 5 4 黑人 陈七 */ 答案: SELECT testtable2.* , ISNULL(department,'黑人') FROM testtable1 right join testtable2 on testtable2.dptID = testtable1.ID 也做出来了可比这措施稍复杂。 sql面试题(2) 有表A,结构如下: A: p_ID p_

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服