d
sname
smoneymysql面试题sql
sprovince
1
zhangsan
2098
A
2
lisi
3000
B
3
wangwu
6789
C
4
liumazi
4587
C
5
dongjiu
3298
B
6
shiga
4567
A
 
 
id:合同id  sname:姓名    smoney :业绩    sprovince:地区
 
第一道:显示出  业绩 大于同一地区平均值的 合同id  姓名 地区 业绩
 
 
第二道:把同一地区的  平均业绩 地区 插入到新表中 (新表只包含两个字段即:平均业绩 地区)
 
 
请写出sql语句
1:
select A.*
from test A
where A.smoney > (select avg(B.smoney)
                  from test B
                  where B.sprovince = B.sprovince)

"第二道:把同一地区的  平均业绩 地区 插入到新表中 (新表只包含两个字段即:平均业绩 地区)"
2.题目中要求是向新表中插入,所以这个表是存在的。不防取名新表名为newsell,字段“平均业绩 地区”为“smoney,sprovince”.
insert into  newsell (smoney,sprovince)
select avg(smoney)avgmoney,sprovince
from sell group by sprovince;
select * from record where substring(id,1,4)="2398" 试题说这条语句效率很低,试修改成效率高的语句,select * from record where id like "2398%" 这条语句应该效率更高一些,看看大家还有没有更好的办法?
一道SQL,比较简单

  table:city_info

  id province city area population

  数据大家自己加吧

  1.出大于1000平方公里且人口在1000W以上省份

  2.出城市名重复的记录

  3.更新城市名重复的记录area530,population530
 
 
1.select * from city_info as c where c.area> 1000 and c.population>1000
2.select city from city_info group by city having (count(*)) >1
3.update city_info set area=530 and population=530 where city in (select city from city_info group by city having (count(*)) >1)
昨天去滨江的一个公司面试,遇到一个数据库的题目,总结下
    题目是这样的:
Java代码
1. name  score   
2. 小明      
3. 小明      
4. 小李      
5. 小李      
6. 小明      
7. 小李      
8. 小李    
name  score
小明 
小明 
小李 
小李 
小明 
小李 
小李 


要求结果是:
Java代码
1. 姓名          
2. 小明   2     1 
医院网站源码3. 小李   2     2 
姓名     
小明  2    1
小李  2    2

回来写了下,也不是很难,但当时写的确实不准确,大概有个思路,但还是错了
  正确的写法应该是:
Java代码
1. 1.select name 姓名,sum(decode(score,'',1)) ,   
2. sum(decode(score,'',1)) python queue负 from tt group by name   
3. 2.select t.name 姓名,t.c_1 ,a.c_f  from   
4. (select distinct tt.name,b.c_1 from tt   
5.  left join (select name,count(1) as c_1 from tt where score='' group by name) b on tt.n
ame = b.name ) t   
6.  left join (select name,count(1) as c_f from tt where score='' group by name) a on t.name=a.name   
7. 3.sql server的写法   
8. select name,sum(case when score='' then 1 else 0 end) ,sum(case when score='' then 1 else 0 end)  from tt group by name 
1.select name 姓名,sum(decode(score,'',1)) ,
sum(decode(score,'',1)) from tt group by name
2.select t.name 姓名,t.c_1 ,a.c_f from
(select distinct tt.name,b.c_1 from tt
left join (select name,count(1) as c_1 from tt where score='' group by name) b on tt.name = b.name ) t
left join (select name,count(1) as c_f from tt where score='' group by name) a on t.name=a.name
3.sql server的写法
select name,sum(case when score='' then 1 else 0 end) ,sum(case when score='' then 1 else 0 end) from tt group by name
oracle的呀,晓得了。
mysql有像是的:if()
博主第一题构思很巧妙
Java代码
1. select name,sum(if(score='fu',1,0)) fu,sum(if(score='sheng',1,0)) sheng   
2. from score   
3. group by name; 
目前在职场中很难到非常合格的数据库开发人员。有人说:“SQL开发是一门语言,它很容易学,但是很难掌握。

  在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当你问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。

  你能向我简要叙述一下SQL Server 2000中使用的一些数据库对象?


  你希望听到的答案包括这样一些对象:表格视图用户定义的函数,以及存储过程;如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。

  NULL是什么意思?

  NULL()这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。

  NULL这个值表示UNKNOWN(未知):它不表示”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望获得一个答案。您必须使用IS NULL操作符。

  什么是索引?SQL Server 2000里有什么类型的索引?

  任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。

  简单地说,索引是一个数据结构用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。

  什么是主键?什么是外键?

  主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键
是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。

  什么是触发器?SQL Server 2000有什么不同类型的触发器?

  让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的。

  触发器是一种专用类型的存储过程它被捆绑到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OFAFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation LanguageDML)vim的三种模式语句对表格执行语句的存储过程。例如,如果我有一个用于TableAINSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。

  AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。

  您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里?

  这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(通常是另外一个表格的主键)

  另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与限制相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键限制而不是触发器来维护引用的完整性。

  对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑?

  你正在寻进行与数据操控有关的应聘人员。对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。

java自学和培训  你可以用什么来确保表格里的字段只接受特定范围里的值?

  这个问题可以用多种方式来回答,但是只有一个答案是答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。

  触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制的完整性。

  如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。

  返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。

  OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。

  什么是相关子查询?如何使用这些查询?

  经验更加丰富的开发人员将能够准确地描述这种类型的查询。

  相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。
这个是在知春路那边,我去笔试过,一共5到sql题目 题目出的还可以。答了1个半小时 然后让你回去等消息 

原题大致是这样 合同表 cid主键
cid  Region(区域)  Saler(销售员)  Money(合同金额)
  1        北京          杨建              100
  2        上海          社长              200
  3        杭州          副团              500
  4        上海          社长              200
  5        上海          杨建              400
  6        北京          社长              300
  7        北京          杨建              200
  8        杭州          副团              100


1. 查询每个区域有多少个销售人员并按区域倒叙排列
2. 查询所有相同区域中合同金额最少的区域
3. 查询表中合同金额小于所在区域平均合同金额的合同id
3个表SCSC
SSNOSNAME)代表(学号,姓名)
CCNOCNAMECTEACHER)代表(课号,课名,教师)
SCSNO计算机程序设计语言有几种CNOSCGRADE)代表(学号,课号成绩)
问题:
1,出没选过黎明老师的所有学生姓名。
2,列出2门以上(含2门)不及格学生姓名及平均成绩。
3,即学过1号课程有学过2号课所有学生的姓名。
请用标准SQL语言写出答案,方言也行(请说明是使用什么方言)。
1
Sql代码
1.     
2. select sname from s   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。