常见的SQL笔试题和面试题(上):经典50题

mysql 语句练习笔记 -- 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数 SELECT a.*,b.s_score as '01-课程',c.s_score as '02-课程' FROM student a JOIN score b on a.s_id = b.s_id AND b.c_id = '01' LEFT JOIN score c on a.s_id = c.s_id AND c.c_id='02' OR c.c_id=NULL WHERE b.s_score > c.s_score .. 阅读详情

题目转自:https://zhuanlan.zhihu.com/p/38354000


已知有如下4张表:

学生表:STUDENT(S#,SNAME,SAGE,SSEX)

课程表:COURSE(C#,CNAME,T#)

成绩表:SC(S#,C#,SCORE)

教师表:TEACHER(T#,TNAME)

其中,

1)学生表里的字段含义:

S#代表学号,SNAME代表学生姓名,SAGE代表学生年龄,SSEX代表学生性别

2)课程表里的字段含义:

C#代表课程编号,CNAME代表课程名字,T#代表教师编号,

3)成绩表

S#代表学号,C#代表课程编号,SCORE代表成绩

4)教师表的字段含义:

T#代表教师编号,TNAME代表教师姓名

自己赋值:

student表:


Course表:


Teacher表:

SC表:

由于建表时忘记设置主键,需要增加(sno,cno)一起为主键,方便后期引用,注意,每个字段更新语句后面用逗号分开,否则会报错。

方法一:

alter table sc
change column sno sno int(11) not null,
change column cno cno int(11) not null,
add primary key(sno,cno)

方法二:

alter table sc
modify sno int(11) not null,
modify cno int(11) not null,
add primary key(sno,cno)


1.查询课程编号为“001”的课程比“002”的课程成绩高的所有学生的学号

select x.sno,x.score,y.score from sc x,sc y
where  x.cno=1001 
   and y.cno=1002
   and x.sno=y.sno
   and x.score > y.score

2.查询平均成绩大于60分的学生的学号和平均成绩

select sno,avg(score) from sc
group by sno
having avg(score)>60

3.查询所有学生的学号、姓名、选课数、总成绩

select sc.sno,sname,count(cno),sum(score)
from student join sc
on student.sno=sc.sno
group by sc.sno,sname

4、查询姓“悟”的老师的个数

select count(Tname) from teacher
where Tname like '悟%'

5、查询没学过“悟空”老师课的学生的学号、姓名

(对原始SC表稍作修改,令1,2号学生没有学过悟空的课

delete from sc where sno=1 and cno=1009
delete from sc where sno=2 and cno=1009


select sno,sname from student 
where sno not in(select sno from SC where cno in(select cno from course
where tno in(select tno from teacher
where tname='悟空')))

6、查询学过“悟空”老师所教的所有课的同学的学号、姓名

(对原始表Course,SC稍作修改,让悟空交2门课

insert into course values('1010','Exercise','TS04')
insert into sc values
('8','1010','75'),
('9','1010','92'),
('10','1010','80');

)


7、查询学过编号为“1001”的课程并且也学过编号为“1010”的课程的学生的学号、姓名


8、查询课程编号为“1002”的总成绩

select sum(score) from sc 
where cno='1002'

9、查询所有课程成绩小于60分的学生的学号、姓名

select sno,sname from student
where sno in(select sno from SC where score <60)

10、查询没有学全所有课的学生的学号、姓名



SQL笔试经典50及答案解析(目41-50 前言 最近博主在准备数据分析岗位的笔试面试,其中的考察重点就是SQL。听说练了这50目,什么现场手撕SQL统统都不怕,我就赶紧来练习了!壮士们,练完以后就什么都不怕啦~ 环境: Navicat Premium 12 说明: 本篇练习的是目41-50,哪怕不简单,大家也不用害怕,take it easy~ SQL笔试经典50及答案解析(目11-20) 文章目录创建表表说明表创建表显示目... 阅读详情

相关推荐

2022 年你必须准备的 115 个 SQL 面试问

关系数据库管理系统 (RDBMS) 是一组应用程序功能,允许 IT 专业人员其他人开发、编辑、管理关系数据库并与之交互。大多数商业关系数据库管理系统使用结构化查询语言 (SQL) 来访问以表格形式存储的数据库。RDBMS 是全球企业中使用最广泛的数据库系统。它提供了一种存储检索大量数据的稳定方法。通常,数据库保存可在其他应用程序中访问使用的数据集合。数据库平台的开发、管理使用都由数据库管理系统支持。

分享身边生活经验blog 5699

面试 SQL整理 常见SQL面试题经典50

目录 ​ SQL基础知识整理: 常见SQL面试题经典50 三、50面试题 2.汇总统计分组分析 3.复杂查询 sql面试题:topN问 4.多表查询 【面试题类型总结】这类目属于行列如何互换,解思路如下: 其他面试题: SQL基础知识整理: select 查询结果 如:[学号,平均成绩:组函数avg(成绩)]from 从哪张表中查找数...

sh_c1314 28万+

plsql练习之sql笔试经典50

如何查找重复数据 【目】 编写一个SQL查询,查找学生表中所有重复的学生名。 建表语句 create table students (id varchar2(4),name varchar2(4)); insert into students values(1,'张三'); insert into students values(2,'李四'); insert into students values(3,'王五'); insert into students values(4,'王五'); insert

weixin_49708329的博客 3696

经典SQL面试10(附答案)

一、提要 作为一名数据工作人员,SQL是日常工作中最常用的数据提取&简单预处理语言。因为其使用的广泛性易学程度也被其他岗位比如产品经理、研发广泛学习使用,本篇文章主要结合经典面试题,给出通过数据开发面试的SQL方法与实战。以下目均来与笔者经历&网上分享的中高难度SQL。 二、解思路 简单——会考察一些group by & limit之类的用法,或者平时用的不多的函数比如rand()类;会涉及到一些表之间的关联 中等——会考察一些窗口函数的基本

cdfunlove的博客 1万+

常见SQL笔试题面试题SQL经典50

  常见SQL笔试题面试题(上):经典50   已知有如下4张表: 学生表STUDENT(S#,SNAME,SAGE,SSEX) 课程表:COURSE(C#,CNAME,T#) 成绩表:SC(S#,C#,SCORE) 教师表:TEACHER(T#,TNAME) 其中, 1)学生表里的字段含义: S#代表学号,SNAME代表学生姓名,SAGE代表学生年龄,SSEX代表学生...

YunWisdom 3655

sql 以a开头的所有记录_常见SQL笔试题面试题(下)

常见SQL笔试题面试题(上):经典50SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示:A.零个字符B.1个字符C.多个字符D.以上都是通过 SQL,如何从 "Persons" 表中选取 "FirstName" 列?A、SELECT Persons.FirstNameB、SELECT FirstName FROM PersonsC、EXTRACT FirstName FROM...

weixin_39989688的博客 615

常见的通配符_常见SQL笔试题面试题(下)

常见SQL笔试题面试题(上):经典50SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示:A.零个字符B.1个字符C.多个字符D.以上都是通过 SQL,如何从 "Persons" 表中选取 "FirstName" 列?A、SELECT Persons.FirstNameB、SELECT FirstName FROM PersonsC、EXTRACT FirstName FROM...

weixin_29404509的博客 482

50SQL经典面试题()

点击关注上方“SQL数据库开发”,设为“置顶或星标”,第一时间送达干货。由于篇幅较长,上次已经给小伙伴们分享了25道面试题,还没看的可以戳这里:50SQL经典面试题()今天继续给小伙...

SQL数据库开发 1123

SQL经典面试50 | 附答案

今天给大家分享一份星友对SQL经典面试50的刷记录,本文稍作了一些修改,以下是星友自述正文:看完了SQL基础教程,然后再看SQL进阶教程感觉有些不是很懂,于是就开始刷熟悉⼀下基础知...

fengdu78的博客 6277

SQL 笔试题

https://blog.csdn.net/codema/article/details/80915311 常见SQL笔试题面试题(上):经典50 https://www.cnblogs.com/guxia/p/7878657.html 必会SQL笔试题 (1)表名:购物信息 购物人 商品名称 数量 A 甲 2 B ...

weixin_42306440的博客 9184

Hive经典最全笔试题系列

现在的大数据开发,越来越趋向于编写SQL代替程序开发,比如MapReduce的Hive客户端,Kafka,Spark,Flink等都是支持SQL操作的。所以学好SQL是重中之重。是每个大数据程序开发工作者的必备技能。 本人收集了大量的Hive或者说是SQL笔试题之类:准备给各位准备一个Hive或者SQL笔试题: 这是列表: 1、Hive--笔试题01--自连接实现 2、Hiv...

好学若饥,谦卑若愚 1万+

常见SQL面试题经典50(附详解)

已知有如下4张表: 学生表student(学号,学生姓名,出生年月,性别) 成绩表:score(学号,课程号,成绩) 课程表:course(课程号,课程名称,教师号) 教师表:teacher(教师号,教师姓名) 根据以上信息按照下面要求写出对应的SQL语句。 ps:这些考察SQL的编写能力,对于这类型的目,需要你先把4张表之间的关联关系搞清楚了,最好的办法是自己在草稿纸上画出关联图,然后再编...

q_1092535160的博客 1万+

Sql面试50 详解 持续更新

学习整理sql面试50

Qiuyuguohou的博客 7663

30道SQL经典笔试题及其答案解析

答案 查询 “01” 课程比 “02” 课程成绩高的所有学生的学号 select distinct t1.sid as sid from (select * from sc where sc.cid = '01') as t1 left join (select * from sc where sc.cid = '02') as t2 on t1.sid = t2.sid where t1.score > t2.score; 查询平均成绩

SongYu的博客 1万+

啃下这50笔试题,你就是SQL专家!(附答案,收藏备用)

当薪水相同时,排名相同,且下一个排名序号不会被略过,所以返回的排名是连续且重复的。当薪水相同时,排名相同,但下一个排名序号将会被略过,所以返回的排名是不连续且重复的。:Birthday字段的值为DATE类型,包含具体的年、月、日,所以在分组聚合前,需要使用DATE_FORMAT函数将DATE类型格式化取出年份后再统计。当关联属性在参与连接的右表中不存在时,左表的数据也会返回,但来自右表的属性会显示为NULL。:RAND函数返回一个0~1之间的随机值,使用随机值排序,可以保证每次返回的行都是随机的。

4125

经典 SQL 数据库笔试题及答案整理

最近有蛮多小伙伴在跳槽找工作,但对于年限稍短的软件测试工程师,难免会需要进行笔试,而在笔试中,基本都会碰到一道关于数据库的大,今天这篇文章呢,就收录了下最近学员反馈上来的一些数据库笔试题,包含答案!

百晓生说测试的博客 5439

80 个常见SQL 面试问与答案

SQL 的全称是。

2401_85549756的博客 3935
上一篇: 数据库中Schema(模式)概念的理解
下一篇: Mysql增加主键或者更改表的列为主键的sql语句
codema
博客等级 码龄8年 78粉丝 9原创
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值