牛客网在线编程SQL篇非技术快速入门题解

大家好,我是RecordLiu。

初学SQL,有哪些合适的练习网站推荐呢?
如果你有编程基础,那么我推荐你到Leetcode这样的专业算法刷题网站,如果没有,也不要紧,你也可以到像牛客网一样的编程网站去练习。
牛客网有很多面向非技术人员的练习题目,很适合入门。

今天给大家分享的是牛客网在线编程SQL篇非技术快速入门题解第一篇。

题目直达链接:牛客网非技术快速入门SQL编程练习题目

切换到SQL篇就能看到了。

我这里先列一下题目分类:

接下来,我们来详细看一看。

基础查询

1.现在运营想要查看用户信息表中所有的数据,请你取出相应结果现在。

示例:user_profile

返回结果

题解

取出所有列可以使用select *,但不建议你使用这种写法,因为性能很差。

更好的方式是查询出所有列来代替select *

代码参考

简单处理查询结果

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

示例:user_profile

返回结果

题解

限制返回行数用limit实现,这道题可以使用limit 0,2 或者 limit 2

limit的第一个参数代表位置,第二个参数代表返回的条数。第一个参数可以省略,默认从位置0开始取数。

由于计算机存储的计数都是从0开始的,所以数据库中的第一行对应位置0,第二行代表位置1,其他行数的位置以此类推。

小提示

对于一些数据量很大的表记录,如果只是抽查一部分数据做参考,我们可以根据表里面的自增长ID做排序后,再结合limit取出数据,这样做,对数据库的查询压力就会小很多。

代码参考

条件查询-基础排序

3.现在运营想要取出用户信息表中的年龄和gpa数据,并先按照gpa升序排序,再按照年龄升序排序输出,请取出相应数据。

示例:user_profile

返回结果

题解

SQL中排序使用order by实现,用关键字asc表示升序,关键字desc表示降序。

多级字段排序规则order by 字段1 关键字,字段2 关键字

代码参考

条件查询-基础操作符

4.现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。

示例:user_profile

返回结果

题解

条件过滤可以使用where实现。一般,表连接的过滤使用on,分组之后的过滤使用having

执行优先级:
on > where > having。

题目要求是所有北京大学的用户,过滤条件写为where university=‘北京大学’

代码参考

条件查询-高级操作符

5.现在运营想查看所有大学中带有北京的用户的信息,请你取出相应数据。

示例:user_profile

返回结果

题解

题目要求大学名称带有北京的用户信息,那么学校名称为北京大学、北京师范大学、北京交通大学等等都符合条件。

一种办法办法是使用等值过滤,列举所有可能的情况。过滤条件写成where university in(‘北京大学’,‘北京交通大学’,‘北京师范大学’,‘北京航空航天大学’)

但很明显,上面方式不简洁,而且需要穷举出所有可能的情况。

如果以后用户信息里面有新增带北京名称的大学,还要往in里面添加值,不利于拓展。

更好的方式是使用模糊匹配来实现这道题。

SQL中可以使用like+通配符来实现模糊匹配。

其中最常用的通配符是 %,代表匹配0个或者多个字符。

比如like ‘北京%’,可以匹配文本:北京、北京大、北京大学、北京交通大学等等。

其他的通配符使用不频繁,我也给你总结下了用法,作为面试时的储备。

  • _:匹配任意一个字符
  • []:匹配[ ]里面任意一个字符
  • [^ ]:不匹配[ ]中的任意一个字符

我来给你举几个例子会明白些:

  1. 查询名字姓张的用户: like ‘张%’
  2. 查询名字姓张,且为三个字的用户:like ‘张__’
  3. 查询名字为张、李、刘的用户:like [‘张’,‘李’,‘刘’]
  4. 查询名字不带张的用户: not like ‘张%’
  5. 查询用户编号首位不是1、2、3的用户: like [^123]%

代码参考

高级查询-计算函数

6.运营想要知道复旦大学学生gpa最高值是多少,请你取出相应数据

示例:user_profile

返回结果

题解

题目限制是复旦大学的学生,因此过滤条件为where university=‘复旦大学’

求最高gpa有两种方式,一种是对gpa字段进行降序排列,然后取出第一条。

第二种方式是使用SQL的计算函数max来实现,max表示取出记录中的最大值。

由于使用聚合函数后,返回的结果会带上聚合标识,所以使用as进行重命名。

我也给你总结了SQL中其他常用于计算的函数:

  • avg():返回平均值
  • count():返回总条数
  • min():返回最小值
  • sum():对记录进行求和

代码参考

方法1:

方法2:

高级查询-分组查询

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

示例:user_profile

其中,question_cnt表示发帖数量,answer_cnt表示回帖数量。

返回结果

题解

要统计每个学校的发帖和回帖的平均值,需要按学校维度分组之后,再进行平均值的计算。

分组使用group by实现,平均值计算使用avg函数。

本题的难点主要在判断 平均发贴数低于5的学校或平均回帖数小于20的学校 条件上,应该在分组之后使用having进行过滤。

代码参考

好了,今天的文章就分享到这里了,如果觉得我的文章对你有帮助,欢迎多分享给你身边的朋友。

最后,送给你一段杨振宁先生说的话:

很多东西常常是在不知不觉中,经过了一个长时期的接触,就自己也不知道什么时候已经懂了。

学习是长期的,希望你每天都有进步哇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/7890.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么数字工厂管理系统是电子企业的必备品

与许多电子制造企业观望心态有所不同的是,电子产品分销商正在积极投身于实施数字工厂系统,部分分销商对已完成实施的系统赞不绝口。 数字工厂在元器件分销业的应用逐渐普遍 在一些大型分销商的影响下,数字工厂在分销行业的应用加快。相比而…

Java I/O流

I/O流I/O流IO流体系字节流体系FileOutPutStream(字节输出流)FileInPutStream(字节输入流)练习:文件拷贝Java中编码与解码的方法字符流FileReaderFileWriter综合练习缓冲流体系字节缓冲流字符缓冲流综合练习2转换流序列化流(对象操作输出流)/反序列化流(对象操作输入…

小白必看,吐血整理Facebook新手指南(一)

Facebook广告是营销人员工具包中最强大的工具。脸书广告可以帮助你实现几个高层次的商业目标,包括提高品牌知名度,产生线索,为你的商业网站带来流量,等等。本指南将帮助你创建你的第一个Facebook广告活动。它还将提供经过验证的技…

全链路追踪系统在技术运营层面的应用

随着微服务和分布式架构的引入,各类应用和基础组件形成了网状的分布式调用关系,这种复杂的调用关系就大大增加了问题定位、瓶颈分析、容量评估以及限流降级等稳定性保障工作的难度。正是这样的背景,催生了全链路追踪的解决方案。 这里的一个…

java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单

ava版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示1…

学习数据结构第3天(线性表的定义和基本操作)

线性表的定义和基本操作前言线性表的定义线性表的基本操作经典试题前言 线性表是算法题命题的重点。这类算法题实现比较容易且代码量较少,但是要求具有最优的性能(时间复杂度、空间复杂度),才能获得满分。因此应牢固掌握线性表的…

【牛客刷题专栏】0x18:JZ16 数值的整数次方(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录前言问题…

安全防御 --- APT、密码学

APT 深度包检测技术:将应用层内容展开进行分析,根据不同的设定从而做出不同的安全产品。 深度流检测技术:与APS画像类似。会记录正常流量行为,也会将某些应用的行为画像描述出来。也可将加密流量进行判断,并执行相应措…

程序员必知必会7种UML图(类图、序列图、组件图、部署图、用例图、状态图和活动图)画法盘点

众所周知,软件开发是一个分阶段进行的过程。不同的开发阶段需要使用不同的模型图来描述业务场景和设计思路,在不同的阶段输出不同的设计文档也是必不可少的,例如,在需求分析阶段需要输出领域模型和业务模型,在架构阶段…

2023疫情当头,3个月转行软件测试拿下8k+offer,我心满意足了

从2020年的疫情开始,全世界好像按下了暂停键一般,大量新网民涌入互联网。我们的生活方式也随之改变,失业也如洪流般席卷整个世界,宅家的人数在变多,当然大多数人开始寻求新的工作方式,随之进军互联网的人开…

域名过户操作流程及常见问题

模板添加及模板过户操作流程: 一、添加模板操作流程: 1.在业务管理-域名管理-模板管理中找到“添加模板” 2.选择所有者类型(个人或是企业/组织),填写新的域名所有者资料,填写无误后点击“确定”。 目前…

记录分享vscode里面非常好用的两个markdown插件

文章目录Markdown PDFMarkdown All in One效果图Markdown PDF 主要用于将markdown文件转为pdf文件 使用方法 安装此插件编辑区鼠标右键就会出来一个弹框,在弹框里面选择 Markdown All in One 我主要用它来生成文章的目录结构,然后转为pdf文件后,目录结构默认就是pdf文章目录,…

告别至暗时刻,高端与全系列手机市场前景可期

作者|落笔 近年来,智能手机用户换机周期持续拉长,市场出货量逐年走低,IDC数据显示,2022年全年中国智能手机市场出货量约2.86亿台,同比下降13.2%,创有史以来最大降幅,全球智能手机发展已进入成熟…

大厂研发成本大曝光,研发占大头

近日,腾讯发布《2022 年腾讯研发大数据报告》,披露了 2022 年腾讯在研发投入、研发效能、开源协同等方面的重要数据。 《报告》显示,2022 年腾讯内部研发人员占比达到 74%,这意味着,平均每四个腾讯员工中,…

linux 共享内存 shmget

专栏内容:linux下并发编程个人主页:我的主页座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物.目录 前言 概述 原理机制 系统命令 接口说明 代码演示 结尾 前言 本专栏主要分享linu…

【深度解刨C语言】内存管理(详)

文章目录前言一.动态内存1.动态内存的用处2.内存的布局简单证明内存布局栈向下生长的证明堆向上增长的证明3.malloc与free进一步理解总结前言 前提: 内存有基本的认识 内存函数基本的了解 如果你对内存与内存函数太不清楚可以看:动态内存管理 目标: 为什么要用动态内存&…

我体验了首个接入GPT-4的代码编辑器,太炸裂了

最近一款名为Cursor的代码编辑器已经传遍了圈内,受到众多编程爱好者的追捧。 它主打的亮点就是,通过 GPT-4 来辅助你编程,完成 AI 智能生成代码、修改 Bug、生成测试等操作。 确实很吸引人,而且貌似也能大大节省人为的重复工作&…

vue尚品汇商城项目-day04【29.加入购物车操作(难点)】

文章目录29.加入购物车操作(难点)29.1加入购物车按钮29.2addCartSuce29.3购物车29.3.1 向服务器发送ajax请求,获取购物车数据29.3.2UUID临时游客身份29.3.3动态展示购物车29.4修改购物车产品的数量(需要发请求:参数理解…

203. 移除链表元素

1、题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: 输入&…

File 类的用法和 InputStream, OutputStream,System 类的用法

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…