大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

nosql常见面试,nosql面试题

sql的几个面试题

--1.查询全部学生的姓名和所学的课程名称及成绩

创新互联公司主要从事网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务湘桥,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

select s.Sname,o.Cname,c.Grade from Student s,enrolls c,Courses o where s.Sno=c.Sno and c.Cno=o.Cno

--2.找出所有学生的平均成绩和所学课程门数

select Sno,avg(grade) as '平均成绩',count(*) as '所学课程门数' from enrolls group by Sno;

--3.找出各课程的平均成绩,按课程号分组,且只选择学生超过3人的课程的成绩

select enrolls.Cno,cname,avg(grade) as '平均成绩' from enrolls,Courses where enrolls.cno=Courses.cno group by enrolls.Cno,cname having count(*)=3;

--4.找出选修了全部课程的学生的姓名

select Sname from student where sno in(select sno from enrolls group by Sno having count(sno)=(select count(cno) from Courses))

sql面试题

1、忍不住想说一句,因为第一题中的字段类型是 【日期型】,而各种数据库操作日期型数据有不同的方法,没有一种共通的方法,所以脱离了数据库而言没有一种共通的sql。

2、select ID,NAME,ADDRESS,PHONE,LOGDATE from T

where ID in( select ID from T group by NAME having count(*)1)

order by NAME;

3、delete from T where ID not in

(select min(id) from T group by name);

4、update T

set T.ADDRESS=(select E.ADDRESS from E where E.NAME=T.NAME),

T.PHONE=(select E.PHONE from E where E.NAME=T.NAME);

5、这个不同的数据库也有不同的处理方法,不能脱离数据库谈了。

如:SqlServer或者access可以使用 top

oracle可以使用 rownum 等

---

以上,希望对你有所帮助。

sql语句面试50题@20211219

Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别

–2.课程表

Course(c_id,c_name,t_id) – --课程编号, 课程名称, 教师编号

–3.教师表

Teacher(t_id,t_name) --教师编号,教师姓名

–4.成绩表

Score(s_id,c_id,s_score) --学生编号,课程编号,分数

1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数

2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数

3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩

5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩

6、查询"李"姓老师的数量

7、查询学过"张三"老师授课的同学的信息

8、查询没学过"张三"老师授课的同学的信息

9、查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息

10、查询学过编号为"01"但是没有学过编号为"02"的课程的同学的信息

11、查询没有学全所有课程的同学的信息

*12、查询至少有一门课与学号为"01"的同学所学相同的同学的信息 **

13、查询和"01"号的同学学习的课程完全相同的其他同学的信息 (不会)

14、查询没学过"张三"老师讲授的任一门课程的学生姓名

-- [分析] 方法一:疯狂子查询

方法二:子查询+内联结

15、查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

16、检索"01"课程分数小于60,按分数降序排列的学生信息

17、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩(重要!)

-- 18.查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率--及格为=60,中等为:70-80,优良为:80-90,优秀为:=90(重要!)

19、按各科成绩进行排序,并显示排名(涉及到TopN问题,重要!!!)

20、查询学生的总成绩并进行排名

21、查询不同老师所教不同课程平均分从高到低显示

22、查询所有课程的成绩第2名到第3名的学生信息及该课程成绩

23、统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比

24、查询学生平均成绩及其名次

25、查询各科成绩前三名的记录(重要!!!!!)

26、查询每门课程被选修的学生数

27、查询出只有两门课程的全部学生的学号和姓名

28、查询男生、女生人数

29、查询名字中含有"风"字的学生信息

-- [分析] 考察字符串模糊查询,之前我的sql学习笔记中有详细记录

30、查询同名同性学生名单,并统计同名人数(重要!!!!!)

31、查询1990年出生的学生名单

32、查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列

33、查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩

34、查询课程名称为"数学",且分数低于60的学生姓名和分数

35、查询所有学生的课程及分数情况;

36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;

37、查询不及格的课程

38、查询课程编号为01且课程成绩在80分以上的学生的学号和姓名;

39、求每门课程的学生人数

40、查询选修"张三"老师所授课程的学生中,成绩最高的学生信息及其成绩

41、查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩 (重要!!!!)

42、查询每门功成绩最好的前两名

43、统计每门课程的学生选修人数(超过5人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列

44、检索至少选修两门课程的学生学号

45、查询选修了全部课程的学生信息

46、查询各学生的年龄 按照出生日期来算,当前月日 出生年月的月日则,年龄减一

47、查询本周过生日的学生

48、查询下周过生日的学生

49、查询本月过生日的学生

50、查询下月过生日的学生

java面试中redis,mongodb类的,会问哪些问题,怎么回答

1、可能会问nosql和关系型数据库的区别:

优点:

1)成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用Oracle那样花费大量成本购买使用,相比关系型数据库价格便宜

2)查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库

3)存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型

4)扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难

缺点:

1)维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。

2)不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本

3)不提供关系型数据库对事物的处理

2、介绍下redis和mongodb:

自行google。

3、应用场景:

redis:

a.主要是做热点数据缓存。

b.数据过期处理。

c.消息队列等功能。

d.计数,例如投票等。

mongodb:

mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。mongo适用于以下场景:

a.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

b.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。

c.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。

d.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。

e.用于对象及JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。

4、支持的数据类型:

内容比较多,自行将网上的信息整理一下。


当前名称:nosql常见面试,nosql面试题
网页URL:http://dzwzjz.com/article/dsiiccj.html
在线咨询
服务热线
服务热线:028-86922220
TOP