当前位置: 首页 > news >正文

mysql数据库笔试题库和答案mysql语句(后端面试必备)

数据库笔试题库(入门基础篇)

    • 一、入门基础题
    • `基础查询`
    • `条件查询`
    • `高级查询`
    • `多表查询`

🏠个人主页:@编程ID
🧑个人简介:大家好,我是编程ID,一个想要与大家共同进步的程序员儿

🧑如果各位哥哥姐姐在准备面试,找工作,刷算法,前后端编程题选择题都有,可以使用我找工作前用的刷题神器哦!刷题神器点这里哟🎁
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,望能帮到各位想要找工作或者提高自己的小伙伴儿们,如果有什么需要改进的地方,还请大佬不吝赐教🤞🤞

一、入门基础题

基础查询

1、现在运营想要查看用户信息表中所有的数据,请你取出相应结果(1-6题共用一个表)

2、现在运营同学想要用户的设备id对应的性别、年龄和学校的数据,请你取出相应数据

3、现在运营需要查看用户来自于哪些学校,请从用户信息表中取出学校的去重数据。

4、现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果。

5、现在你需要查看前2个用户明细设备ID数据,并将列名改为 ‘user_infos_example’,请你从用户信息表取出相应结果。

6、现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。
在这里插入图片描述
建表语句:(最好能根据上表自己写出来,对于初级的笔试很可能会有建表的题写语句)


drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');

第一题答案

selectid,device_id,gender,age,university,provincefrom user_profile
或者
select*from user_profile
实际应用中一般写列名,很少用*号。select 表列名 from 表名

在这里插入图片描述

第二题答案

SELECT device_id,gender,age,university from user_profile

在这里插入图片描述

第三题答案

二种方式
1.distinct 关键字
select distinct university from user_profiledistinct去重,放在列的前面使用。
2.分组SELECT
universityfrom user_profilegroup by university以分组来筛选出去重的结果

在这里插入图片描述

第四题答案

select device_id from user_profile limit 0,2---运行效率更高

select device_id from user_profile limit 2 ---运行效率低

也可结合 limit offset: 一起使用时,limit表示要取的数量,offset表示跳过的数量

select device_id from user_profile limit 2 offset 0 // 跳过0条,从第一条数据开始取,取两条数据 ---运行效率中

在这里插入图片描述

第五题答案

select device_id as user_infors_example from user_profile limit 0,2;
这里主要是用到了 起别名关键字 as 以及组合限制查询 limit 索引,个数
其中as可以省略,索引为0可以省略
select device_id user_infors_example from user_profile limit 2;

在这里插入图片描述

第六题答案

SELECT device_id,university from user_profile where university='北京大学';

在这里插入图片描述

条件查询

7、现在运营想要取出用户信息表中的用户年龄,请取出相应数据,并按照年龄升序排序。

8、现在运营想要取出用户信息表中的年龄和gpa数据,并先按照gpa升序排序,再按照年龄升序排序输出,请取出相应数据。
在这里插入图片描述
建表语句

drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',23,'复旦大学',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8);
INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);

第七题答案

SELECT device_id,age FROM user_profile ORDER BY age ASC; 结尾加 ASC是升序,不写也行因为默认升序。 
#SELECT device_id,age FROM user_profile ORDER BY age desc; 结尾加 desc 是降序。

在这里插入图片描述
第八题答案

SELECT device_id,gpa,age from user_profile order by gpa,age;默认以升序排列
SELECT device_id,gpa,age from user_profile order by gpa,age asc;
SELECT device_id,gpa,age from user_profile order by gpa asc,age asc;

在这里插入图片描述
基础操作符
9、现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。

10、现在运营想要针对24岁以上的用户开展分析,请你取出满足条件的设备ID、性别、年龄、学校。
用户信息表:user_profile

11、现在运营想要针对20岁及以上且23岁及以下的用户开展分析,请你取出满足条件的设备ID、性别、年龄。

12、现在运营想要查看除复旦大学以外的所有用户明细,请你取出相应数据

13、现在运营想要对用户的年龄分布开展分析,在分析时想要剔除没有获取到年龄的用户,请你取出所有年龄值不为空的用户的设备ID,性别,年龄,学校的信息。
在这里插入图片描述
建表语句

drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');

第九题答案

select device_id,university from user_profile where university='北京大学';
#更具需求,首先知道要北京大学的学生,所有用条件university='北京大学'
#然后结果返回设备id和学校, 查询的字段是device_id,university

在这里插入图片描述
第十题答案

select device_id,gender,age ,university from user_profile where age >= 24;

在这里插入图片描述

第十一题答案

SELECT device_id, gender, age
FROM user_profile
WHERE age>=20&&age<=23;
 
SELECT device_id, gender, age
FROM user_profile
WHERE age>=20 AND age<=23;
 
SELECT device_id, gender, age
FROM user_profile
WHERE age BETWEEN 20 AND 23;

在这里插入图片描述
第一十二题答案

SELECT device_id, gender,age,university FROM user_profile WHERE university NOT IN ("复旦大学")

select device_id, gender, age, university from user_profile where university != '复旦大学'

在这里插入图片描述
第十三题答案

SELECT device_id,gender,age,university FROM user_profile  WHERE age IS NOT NUL

高级操作符
14、现在运营想要找到男性且GPA在3.5以上(不包括3.5)的用户进行调研,请你取出相关数据。

15、现在运营想要找到学校为北大或GPA在3.7以上(不包括3.7)的用户进行调研,请你取出相关数据(使用OR实现)

16、现在运营想要找到学校为北大、复旦和山大的同学进行调研,请你取出相关数据。

在这里插入图片描述

第十四题答案

SELECT device_id,gender,age,university,gpa FROM user_profile WHERE gender = 'male' AND gpa > 3.5

在这里插入图片描述

第十五题答案

SELECT device_id,gender,age,university,gpa FROM user_profile
WHERE university='北京大学' OR gpa > 3.7

在这里插入图片描述

第十六题答案

select device_id,gender,age,university,gpa from user_profile
where university in('北京大学','复旦大学','山东大学');

在这里插入图片描述
17、现在运营想要找到gpa在3.5以上(不包括3.5)的山东大学用户 或 gpa在3.8以上(不包括3.8)的复旦大学同学进行用户调研,请你取出相应数据
第十七题答案
在这里插入图片描述

select device_id,gender,age,university,gpa from user_profile where university='山东大学' and gpa>3.5 or university='复旦大学' and gpa>3.8 
--虽然短,但是执行用时长 
select device_id, gender, age, university, gpa from user_profile where device_id in (select device_id from user_profile where gpa>3.5 and university='山东大学') or device_id in (select device_id from user_profile where gpa>3.8 and university='复旦大学') 
--复杂的写法,子查询的方式 
--运行时间短

在这里插入图片描述
18、现在运营想查看所有大学中带有北京的用户的信息,请你取出相应数据。
在这里插入图片描述
第十八题答案

SELECT device_id,age,university FROM user_profile
WHERE university LIKE '%北京%'

在这里插入图片描述

字符匹配
一般形式为:
列名 [NOT ] LIKE
匹配串中可包含如下四种通配符:
:匹配任意一个字符;
%:匹配0个或多个字符;
[ ]:匹配[ ]中的任意一个字符(若要比较的字符是连续的,则可以用连字符“-”表 达 );
[^ ]:不匹配[ ]中的任意一个字符。
例23.查询学生表中姓‘张’的学生的详细信息。
SELECT * FROM 学生表 WHERE 姓名 LIKE ‘张%’
例24.查询姓“张”且名字是3个字的学生姓名。
SELECT * FROM 学生表 WHERE 姓名 LIKE '张
_’
如果把姓名列的类型改为nchar(20),在SQL Server 2012中执行没有结果。原因是姓名列的类型是char(20),当姓名少于20个汉字时,系统在存储这些数据时自动在后边补空格,空格作为一个字符,也参加LIKE的比较。可以用rtrim()去掉右空格。
SELECT * FROM 学生表 WHERE rtrim(姓名) LIKE ‘张__’
例25.查询学生表中姓‘张’、姓‘李’和姓‘刘’的学生的情况。
SELECT * FROM 学生表 WHERE 姓名 LIKE '[张李刘]%’
例26.查询学生表表中名字的第2个字为“小”或“大”的学生的姓名和学号。
SELECT 姓名,学号 FROM 学生表 WHERE 姓名 LIKE ‘_[小大]%’
例27.查询学生表中所有不姓“刘”的学生。
SELECT 姓名 FROM 学生 WHERE 姓名 NOT LIKE '刘%’
例28.从学生表表中查询学号的最后一位不是2、3、5的学生信息。
SELECT * FROM 学生表 WHERE 学号 LIKE ‘%[^235]’

高级查询

计算函数
19、运营想要知道复旦大学学生gpa最高值是多少,请你取出相应数据
在这里插入图片描述

第十九题答案

方法1
# select max(gpa) as gpa
# from user_profile
# where university='复旦大学';
 
# 方法2
select gpa
from user_profile
where university='复旦大学'
order by gpa desc limit 1

在这里插入图片描述
20、现在运营想要看一下男性用户有多少人以及他们的平均gpa是多少,用以辅助设计相关活动,请你取出相应数据。

在这里插入图片描述

第二十题答案

#问题分解:
      #限定条件为 男性用户;
      #有多少人,明显是计数,count函数;
      #平均gpa,求平均值用avg函数;
select
  count(gender) as male_num,
  round(avg(gpa), 1) as avg_gpa
from user_profile where gender="male";

在这里插入图片描述
分组查询
21、现在运营想要对每个学校不同性别的用户活跃情况和发帖数量进行分析,请分别计算出每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量。

22、现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。

23、现在运营想要查看不同大学的用户平均发帖情况,并期望结果按照平均发帖情况进行升序排列,请你取出相应数据。
在这里插入图片描述

第二十一题答案

select 
    gender, university,
    count(device_id) as user_num,
    avg(active_days_within_30) as avg_active_days,
    avg(question_cnt) as avg_question_cnt
from user_profile
group by gender, university

在这里插入图片描述

第二十二题答案

select
    university,
    avg(question_cnt) as avg_question_cnt,
    avg(answer_cnt) as avg_answer_cnt
from user_profile
group by university
having avg_question_cnt<5 or avg_answer_cnt<20

在这里插入图片描述
第二十三题答案

select university,
    avg(question_cnt) as avg_question_cnt
from user_profile
group by university
order by avg_question_cnt

在这里插入图片描述

多表查询

24、现在运营想要查看所有来自浙江大学的用户题目回答明细情况,请你取出相应数据

在这里插入图片描述

在这里插入图片描述

第二十四题答案

select qpd.device_id, qpd.question_id, qpd.result
from question_practice_detail as qpd
inner join user_profile as up
on up.device_id=qpd.device_id and up.university='浙江大学'
order by question_id

或者

select device_id, question_id, result
from question_practice_detail
where device_id in (
    select device_id from user_profile
    where university='浙江大学'
)
order by question_id

在这里插入图片描述
25、运营想要了解每个学校答过题的用户平均答题数量情况,请你取出数据。

在这里插入图片描述
在这里插入图片描述

第二十五题答案

select university,
    count(question_id) / count(distinct qpd.device_id) as avg_answer_cnt
from question_practice_detail as qpd
inner join user_profile as up
on qpd.device_id=up.device_id
group by university

在这里插入图片描述

26、运营想要计算一些参加了答题的不同学校、不同难度的用户平均答题量,请你写SQL取出相应数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二十六题答案

select 
    university,
    difficult_level,
    round(count(qpd.question_id) / count(distinct qpd.device_id), 4) as avg_answer_cnt
from question_practice_detail as qpd

left join user_profile as up
on up.device_id=qpd.device_id

left join question_detail as qd
on qd.question_id=qpd.question_id

group by university, difficult_level

在这里插入图片描述

结束语 🥇🥇🥇
发现非常好用的一个刷题网站!大家一起努力!加油!!!
包含数据库、Java、C++、C、Python、前端等等题目,难度可以自行选择
在线编程出答案,(也可自行查看答案),也有选择题,非常方便
程序员刷题神器网站点击链接注册即可刷题
祝大家早日找到满意的工作!

相关文章:

  • 搭建一个自定义的工作流管理平台(一)
  • 【前端】html常用标签介绍
  • 如何从0到1搭建一个个人网站
  • 【uniapp实战开发】uniapp中引入iconfont图标及两种常见的使用方式
  • AirPods Pro 连接Win11的 无声延迟 问题
  • 创建SpringBoot项目(使用阿里云代理)
  • 【Unity Shader】Unity中利用GrabPass实现玻璃效果
  • python实现简易数独小游戏
  • 还未入职,这位将来的博导为学生规划了一条高效学习之路
  • 车联网_网络管理ECU状态转换
  • “舔狗机器人”
  • 服务虚拟化HoverFly入门扫盲
  • 踩坑记录——USB键盘睡眠唤醒
  • 【MySQL】官网学习 order by 优化
  • 二叉树广度优先搜索、深度优先搜索(前序、中序、后序)遍历,动图详解-Java/Kotlin双版本代码
  • 【391天】每日项目总结系列128(2018.03.03)
  • Angular 4.x 动态创建组件
  • angular2 简述
  • const let
  • create-react-app项目添加less配置
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • iOS小技巧之UIImagePickerController实现头像选择
  • java8-模拟hadoop
  • NSTimer学习笔记
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • SQLServer之创建显式事务
  • supervisor 永不挂掉的进程 安装以及使用
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 二维平面内的碰撞检测【一】
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 再次简单明了总结flex布局,一看就懂...
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​渐进式Web应用PWA的未来
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​人工智能书单(数学基础篇)
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Oracle)SQL优化技巧(一):分页查询
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (力扣)1314.矩阵区域和
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (五)网络优化与超参数选择--九五小庞
  • (一)80c52学习之旅-起始篇
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)负载均衡,回话保持,cookie
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET关于 跳过SSL中遇到的问题
  • .NET简谈设计模式之(单件模式)
  • .NET命令行(CLI)常用命令
  • .NET值类型变量“活”在哪?
  • /dev下添加设备节点的方法步骤(通过device_create)
  • /etc/skel 目录作用