面试宝典-数据库基础

news2024/11/17 11:27:45

数据库基础

  • 前言
  • 一、数据库
    • 1.1 sql练习题
    • 1.2 sql语句执行顺序
    • 1.3 sql语句编写

前言

本文主要记录B站视频视频链接的内容,做到知识梳理和总结的作用,项目git地址。

一、数据库

1.1 sql练习题

user表数据:

idusername
1张三
2李四
3王五
4小刘

user_role表数据:

idnameuser_id
1售后1
2运维2
3研发3
4实施5

1.数据库有两张表为 user 表和 user_role 表,如上所示。执行:select u.*,r.name from user u left join user_role r on u.id = r.user_id 之后获取到的结果为: A
A.
1 张三 售后
2 李四 运维
3 王五 研发
4 小刘 null
B.
1 张三 售后
2 李四 运维
3 王五 研发
C.
1 张三 售后
2 李四 运维
3 王五 研发
null null 实施

联查:
left join/right join 特点:主表的所有数据均显示,另外一张表中有匹配的数据,则显示,若无匹配的数据,该字段显示为nullinner join 特点:查询的数据是满足所有条件的数据,若没有满足所有条件的数据,则结果集为空。
所以,user表在left join的左边故为主表,4条记录均显示且连接条件为user的id等于user_role的user_id。所以user表前三条数据匹配到user_role的前三条记录(一一匹配)user表第四条记录小刘未匹配到user_role的user_id所以显示未null。而B选项为内连接,C选项为右外连。

1.2 sql语句执行顺序

select distinct...from t1 (left/right) join t2 on t1.xx=t2.xx where t1.xx=? and
t2.xx=? group by t1.xx having ...order by ... limit ..
where: 筛选条件,分组之前
having: 筛选条件 前提:必然先分组,对分组后的结果再次筛选
where,group by,having 三者同时出现,则顺序一定为:where....group by ... having ....

limit用法:
limit m,n 从索引m处开始,筛选n条件数据 -- 实现分页
limit m 从第一条数据开始,筛选前m条

1. from join 产生虚拟表v1 产生的是笛卡尔积(两表完全连接的结果叫做笛卡尔积,会产生m*n条数据)
2. on 根据连接条件进行筛选,基于V1,产生虚拟表v2
3. left/right join 若是外连接,将主表中的所有数据进行补充到v2表中
4. where 根据查询条件,从v2中进行数据筛选,产生虚拟表v3
5. group by 对v3分组,产生虚拟表v4,经常会和聚合函数配合使用,聚合函数的结果在group by之后就会产生
使用场景: 统计每个班级的学生人数
select count(xx) ....group by bj_id
统计每个部门的人数
select count(xx) ... group by d.id
6. having 对分组后的结果再次筛选 ,产生虚拟表v5
7. select 选择最终要显示的字段,产生虚拟表v6
8. distinct 对结果集进行去重,产生虚拟表v7
9. order by 对结果根据某字段进行升序/降序排列
10. limit 选择需要的数据
wherehaving 区别:
where 是在分组之前进行数据筛选,having是对分组后的结果再次筛选
where,group by,having若同时出现,则三者的顺序一定是
wheregroup by之前,havinggroup by之后

在这里插入图片描述

1.3 sql语句编写

stu_score表数据:

idnamescorebj
1赵一891班
2钱二882班
3孙三841班
4李四862班
5王五871班
6吴六912班

题目1:获取每个班级的最后一名

考点: group by能查到什么?
group by column 可以查询到分组后的column ,相关的聚合函数,column具有一对一关系的列,除此之外,其他字段都查询不到。
正确的思路:
1. 查询出每个班级的最低分
2. 根据上述的查询结果,再次到stu_Score表中查询,查询某个班级最低分对应的学生是谁

错误SQL语句:

select name,bj,MIN(score) from stu_score group by bj;

执行结果:

在这里插入图片描述
虽然能查询出来班级最低分,但是名字对应错误,一班最低分是孙三,二班最低分是李四。错误原因:name字段不是与bj一一对应,将赵一与钱二进行顺序匹配到查询记录中。

正确SQL语句:

select ss.* from stu_score ss join
(select bj,min(score) min from stu_score group by bj)tmp
on ss.score=tmp.min and ss.bj=tmp.bj

执行结果:

在这里插入图片描述
题目2:表user,字段有:id(非自增,不连续),age,name,sex,addTime。求创建时间(addTime)在2020-05-22至2020-06-17之间所有数据。

查询某段时间区间内的数据,使用between…and…也可以使用> <,数据库中between…and两个边界值都包含。

SQL语句:

select * from user where addTime between '2020-05-22' and '2020-06-17'

题目3:基于表user,查出表中第10条至第20条连续分页数据的sql语句

select * from user limit 9,11

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CrackQL:一款功能强大的图形化密码爆破和模糊测试工具

关于CrackQL CrackQL是一款功能强大的图形化密码爆破和模糊测试工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以针对密码安全和应用程序安全进行渗透测试。 除此之外&#xff0c;CrackQL同时也是一款通用的GraphQL渗透测试工具&#xff0c;它可以控制速率限制…

垃圾分类智能分析系统 yolov7

垃圾分类智能分析系统应用pythonyolov7网络模型深度学习识别技术&#xff0c;自动识别违规投放行为并现场进行语音提示实时预警。如垃圾满溢抓拍预警、人脸识别、工服识别、厨余垃圾混投未破袋识别预警、垃圾落地识别预警、人来扔垃圾语音提醒等。我们选择当下YOLO最新的卷积神…

数组去重的七种方法

数组去重的七种方法1. 双重for循环2. forindexOf3.es6 set4.filter5.includes6.创建一个新的object7.new Map()1. 双重for循环 第1种是定义一个新的空数组&#xff0c;再执行嵌套双循环&#xff0c;监测空数组中如果没有的元素&#xff0c;push进空数组中。这个方法考察了conti…

AcWing - 寒假每日一题2023(DAY 16——DAY 20)

文章目录一、AcWing 4455. 出行计划&#xff08;简单&#xff09;1. 实现思路2. 实现代码二、AcWing 4510. 寻宝&#xff01;大冒险&#xff01;&#xff08;简单&#xff09;1. 实现思路2. 实现代码三、AcWing 3422. 左孩子右兄弟&#xff08;中等&#xff09;1. 实现思路2. 实…

【MySQL】过年没有回老家,在出租屋里整理了一些思维导图

Xmind导图知识点Mysql知识点SQL知识点Mybatis知识点面试题分享MySQL部分Mybatis部分Mysql知识点 通过下面的图片可以看出&#xff0c;MySQL基础语法分为四部分&#xff1a;连接数据库&#xff0c;对数据库的操作&#xff0c;对表中的数据操作&#xff0c;对表操作等等。 SQL…

python exe程序注册为window系统服务

1、使用pyinstaller将py打包成exe 1、安装 pip install pyinstaller2、打包成exe可执行文件 pyinstaller -F packTest.py #packTest.py为待打包的py文件打包成功后会在同级目录中生成两个文件夹和一个文件&#xff0c;分别为dist和build文件夹&#xff0c;以及一份与.py文件同…

Java——最大子数组和

题目链接 leetcode在线oj题——最大子数组和 题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 题目示例 输入&#xff1a;…

Vulnhub DC-4靶机渗透

环境准备DC-4靶机 ip&#xff1a;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;kali攻击机 ip&#xff1a;192.168.153.128一、信息收集kali攻击机中&#xff0c;使用 arp-scan -l 扫描c段&#xff08;-l为扫描c段&#xff09;确定靶…

自动驾驶——智能配电

一、汽车配电 汽车配电&#xff08;Power Distrubition Unit&#xff0c;PDU&#xff09;分为低压配电与高压配电&#xff0c;即低压PDU与高压PDU。 二、传统控制方式——PCB式电器盒 传统配电盒&#xff08;机电器件&#xff09;&#xff1a; &#xff08;1&#xff09;继…

为什么要做黑盒测试?黑盒测试有什么作用?

对于软件测试的从业者来说&#xff0c;黑盒测试是十分重要的测试方式&#xff0c;它可以弥补白盒测试检查不到的部分。可能刚刚入门的测试小白&#xff0c;对于为什么要做黑盒测试&#xff1f;黑盒测试有什么作用&#xff1f;仍然抱有很大的疑问。下面小编就来从黑盒测试的概念…

QT入门Buttons之QPushButton

目录 一、界面布局介绍 1、布局器中的位置及使用 2、控件的界面属性 3、常用基本属性介绍 3.1控件名称 3.2控件大小属性 3.3按钮上的文字设置 3.4设置按钮的样式 二、属性功能介绍 1、常用方法介绍 2、基本信号介绍 三、Demo展示 一、界面布局介绍 1、布局器中的位…

丰田埃尔法商务租车价格是多少,它的性能到底有多好呢

丰田埃尔法作为MPV之王。埃尔法的高腰线和深色玻璃也使内部更具神秘感&#xff0c;惹眼闪烁的进气格栅&#xff0c;类似盔甲一般的全镀铬饰条构成的霸道前脸和富于设计感的车身曲线&#xff0c;细节处采用36颗闪亮镀铬装饰点缀&#xff0c;有着很高的辨识性。保持了典型的MPV风…

需要代理上网的linux服务器,无法使用NTP同步时间,只需要这一行指令即可。

这将会是一篇让你对时间同步受益匪浅的文章&#xff01;如果你看完之后有收获&#xff0c;希望你能加个关注&#xff0c;如果你看完之后没有收获&#xff0c;希望你能留下你路过的痕迹。 由于工作需要&#xff0c;我们使用了一款神奇的调度框架&#xff0c;叫powerjob&#xff…

【职工管理系统】C++全栈体系(十四)

职工管理系统 第七章 添加职工 功能描述&#xff1a;批量添加职工&#xff0c;并且保存到文件中 一、功能分析 分析&#xff1a; 用户在批量创建时&#xff0c;可能会创建不同种类的职工 如果想将所有不同种类的员工都放入到一个数组中&#xff0c;可以将所有员工的指针维…

组织级过程资产库如何助力CMMI3-5级高效落地?

为了助力CMMI3-5级高效落地&#xff0c;近日CoCode旗下Co-ProjectV3.0智能项目管理平台全面升级&#xff0c;CMMI落地4大工具正式上线&#xff1a;CMMI成熟度自测工具、量化管理工具&#xff08;组织级过程改进工具和量化项目管理工具&#xff09;、组织级过程资产库。 组织级过…

tomcat下载安装步骤(笔记整理)

目录Tomcat下载安装以及配置&#xff08;详细教程&#xff09;tomcat下载安装步骤&#xff08;超详细&#xff09;Apache Tomcat下载、安装、配置图文教程Tomcat下载安装配置详细过程Tomcat下载及配置&#xff08;IDEA&#xff09;Tomcat 下载安装教程Linux系统中Tomcat下载安装…

振弦采集模块配置工具VMTool 扩展功能数据处理

振弦采集模块配置工具VMTool 扩展功能数据处理 数据存储 数据存储功能模块支持自动或手动将实时数据寄存器值存储到数据库&#xff0c; 并支持导出为 Excel文件功能。 &#xff08; 1&#xff09; 手动存储 每点击数据存储面板内的【 手动存储】按钮一次&#xff0c;将当前寄存…

Spring Cloud_Gateway新一代网关

目录一、概述简介1.官网2.是什么3.能干嘛4.微服务架构中网关在哪里二、三大核心概念1.Route(路由)2.Predicate&#xff08;断言&#xff09;3.Filter(过滤)4.总体三、Gateway工作流程1.官网总结2.核心逻辑&#xff1a;路由转发执行过滤器链四、入门配置1.新建Module2.POM3.YML4…

模板征集活动正式上线 | 加入我们,共创可视化内容!

本活动是由EasyV官方发布举办的定向主题模板征集活动&#xff0c;用户报名参加并使用EasyV进行创作后&#xff0c;通过素材广场上传作&#xff0c;经由官方进行作品评估&#xff0c;取得奖次的用户即可获得相应奖励。活动面向EasyV所有产品用户&#xff0c;以作品为维度独立参与…

tomcat下载与安装win11

目录 一、下载Tomcat及解压 1、选择下载版本&#xff08;本文选择tomcat 10版本为例&#xff09; 2、之后选择解压到任意一个盘&#xff0c;我解压到D盘&#xff0c;解压的路径一定要记住&#xff0c;后面系统环境变量配置的时候要用到。 二、配置环境 三、验证是否配置成功…