MySQL的高阶语句

数据库的权限一般很小,工作中使用最多的场景就是查

排序、分组、子查询、视图、多表连接查询(左连接、右连接、内连接)

create TABLE info (

id int(4) primary key,

NAME varchar(5) not null,

score decimal(5,2),

address varchar(20),

sex char(3) not null

);

select * from info;

①使用select语句,使用order by进行排序

ASC:升序排列

desc  倒序排列,降序排列。需要添加

select id,name from info order by id;  升序

select id,name from info order by id DESC;  降序

select id,name,score from info order by score DESC;  降序,by后面跟上要排序的列

排序尽可能用数字

order by 结合where条件过滤

查姓名 成绩,根据地址=东京西路。按照分数进行降序排列

select name,score from info where address='东京西路' order by score desc;

查id 姓名 成绩,根据性别=女。按照id进行降序排列

select id,name,score from info where sex='女' order by id desc;

select id,name,score from info where sex='女' ORDER BY Score desc,id desc;

只有第一个参数出现相同值时,第二个参数才会按照要求排序

区间判断查询和去重查询

AND或者or进行条件判断

and 两边都要为真,or两边一个为真即可

大于70或者小于等于90

select * from info where score > 70 and score <= 90;

成绩大于80或者小于90

select * from info where score > 80 or score < 90;

嵌套条件

select * from info where score > 70 and ( score > 75 and score <90);

select * from info where score > 70 or ( score > 75 and score <90);

分组

用嵌套条件,满足性别是男,然后筛选成绩80--90之间

select * from info where sex='男' and (score > 80  and score <90);

去重查询(面试会问)

select DISTINCT sex from info;

select DISTINCT address from info;

根据addres去重,然后过滤出成绩=90且,性别是男

select DISTINCT address from info where sex='男' and (score =90);

根据addres、name、score去重,然后过滤出成绩=90且,性别是男

select DISTINCT address,name,score from info where sex='男' and (score =90);

对结果进行分组查询group by语句

一般结合聚合函数一起使用

count() 统计有几行

sum()  列的值相加求和

avg()  列的值求平均数

max()  过滤出列的最大值

min()  过滤出列的最小值

分组的时候可以按照一个字段,也可以按照多个字段对结果进行分组处理

select count(name),sex from info group by sex;

根据where条件筛选,score >=80

select count(name),sex,score from info where score >=80 group by sex;

求成绩的和

求和: 以地址为分组,对score求和。

select sum(score),address from info group by address;

算出男生女生的平均成绩

select avg(score),sex from info group by sex;

分别算出男生组和女生组的成绩最低的姓名

select min(score),sex,NAME from info group by sex;

group by实现条件过滤,后面跟上having语句实现条件过滤。

select avg(score),address from info group by address HAVING avg(score) > 60;

按照地址分组,求成绩的平均值,然后>50,按照id的降序排列

select avg(score),address,id from info group by address HAVING avg(score) > 50 order by id desc;

统计name的行数,计算出学生的个数,把成绩也查出来,然后按照统计出来的学生个数,升序排列。按照地址分组。学生的成绩>=70

select count(name),address,score,name from info group by address HAVING score >=70 order by count(name);

按照性别分组,求出男生和女生的最大成绩,最大成绩是否超过75分。满足条件的过滤出来。

select max(score),sex from info group by sex HAVING max(score) >=75;

使用聚合函数必须使用group by

分组的条件要选用有多个重复值的列

过滤条件要用having语句过滤

limit限制输出的结果记录。查看表中的指定行

只看前三行

select * from info limit 3;

查看2-5行

select * from info limit 1,4;

倒叙查看最后三行

select * from info order by id desc limit 3;

通配符:主要用于替换字符串中的部分字符,通过部分字符的匹配,将相关的结果查询出来

通配符和like一起使用,要使用where语句一起完成查询

通配符:

%  表示0个、1个或者多个

_   表示单个字符

以四为开头

select * from info where address like '四%';

西为结尾

select * from info where address like '%西';

包含川

select * from info where address like '%川%';

select * from info where name like '小_';

select * from info where name like '小_小';

select * from info where name like '__大';

以四为开头,匹配后面两个字符

select * from info where address like '四%__';

通配符可以一起使用

设置别名alias

简写AS

在MySQL查询时,表的名字或者字段名太长,可以用别名来进行替代,方便书写。可以增强可读性

select name 姓名,score 成绩 from info;

select name as 姓名,score as 成绩 from info as fmh where name='杨dd' and id = fmh.id;

as语句创表

CREATE table test as select * from info;

select * from test;

desc test;

desc info;

使用as复制表,约束不会被复制过来(as复制的没有主键)

可以给表起别名,但是要注意别名不能和数据库中其他的表名冲突

列的别名在结果中可以显示,但是表的别名在结果中没有显示,只能用于查询。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Gorm 中学习分页和排序

一个全面的指南&#xff0c;教您在 GORM 中实现分页和排序&#xff0c;以实现高效的数据检索和展示 高效的数据检索和展示是应用程序开发的关键方面。GORM&#xff0c;强大的 Go 对象关系映射库&#xff0c;为开发人员提供了强大的工具来实现这一目标。在本指南中&#xff0c;…

【数据结构】二叉树的遍历递归算法详解

二叉树的遍历 &#x1f4ab;二叉树的结点结构定义&#x1f4ab;创建一个二叉树结点&#x1f4ab;在主函数中手动创建一颗二叉树&#x1f4ab;二叉树的前序遍历&#x1f4ab;调用栈递归——实现前序遍历&#x1f4ab;递归实现中序和后序遍历 &#x1f4ab;二叉树的结点结构定义 …

百面深度学习-循环神经网络

循环神经网络 什么是循环神经网络&#xff1f; 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一类用于处理序列数据的神经网络。你可以将它想象成一个机器&#xff0c;它不仅考虑当前的输入&#xff0c;还考虑之前接收过的输入。这使得它非…

本地生活餐饮视频怎么拍摄能有更多流量?如何批量生产呢?

本地生活近几年特别的火&#xff0c;所以到现在各类内容雷同性也比较高&#xff0c;视频缺少新的创意和玩法&#xff0c;像餐饮店的视频&#xff0c;大部分都是拍顾客进门、拍餐饮店座无虚席的实景……作为用户&#xff0c;其实早就已经看腻了。 今天推荐本地生活餐饮店商家拍…

b 树和 b+树的理解

&#xff08;本文引自mic老师面试文档&#xff09; 数据结构与算法问题&#xff0c;困扰了无数的小伙伴。 很多小伙伴对数据结构与算法的认知有一个误区&#xff0c;认为工作中没有用到&#xff0c;为什么面试要问&#xff0c;问了能解决实际问题&#xff1f; 图灵奖获得者&am…

手把手教你:LLama2原始权重转HF模型

LLama2是meta最新开源的语言大模型&#xff0c;训练数据集2万亿token&#xff0c;上下文长度由llama的2048扩展到4096&#xff0c;可以理解和生成更长的文本&#xff0c;包括7B、13B和70B三个模型&#xff0c;在各种基准集的测试上表现突出&#xff0c;该模型可用于研究和商业用…

Android sqlite 使用简介

进行Android应用开发时经常会用到数据库。Android系统支持sqlite数据库&#xff0c;在app开发过程中很容易通过SQLiteOpenHelper使用数据库&#xff0c;SQLiteOpenHelper依赖于Context对象&#xff0c;但是基于uiatomator1.0和Java程序等无法获取Context的应用如何使用数据库呢…

MongoDB副本集特点验证

MongoDB副本集特点验证 mogodb副本集概述副本集搭建副本集结构验证结果源码地址 mogodb副本集概述 MongoDB副本集是将数据同步在多个服务器的过程。 复制提供了数据的冗余备份&#xff0c;并在多个服务器上存储数据副本&#xff0c;提高了数据的可用性&#xff0c; 并可以保证…

【MongoDB】索引 - 复合索引

一、准备工作 这里准备一些学生数据 db.students.insertMany([{ _id: 1, name: "张三", age: 20, class: { id: 1, name: "1班" }},{ _id: 2, name: "李四", age: 22, class: { id: 2, name: "2班" }},{ _id: 3, name: "王五…

经验模态分解(Empirical Mode Decomposition,EMD)(附代码)

代码原理 EMD&#xff08;Empirical Mode Decomposition&#xff09;&#xff0c;也称为经验模态分解&#xff0c;是一种将非线性和非平稳信号分解成多个本征模态函数&#xff08;Intrinsic Mode Functions&#xff0c;简称IMF&#xff09;的方法。 EMD的基本原理是通过一系列…

【Mysql】增删改查(基础版)

我使用的工具是Data Grip &#xff08;SQLyog Naivact 都行&#xff09; 使用Data Grip创建student表&#xff0c;具体步骤如下&#xff08;熟悉Data Grip或者使用SQLyog&#xff0c;Naivact可以跳过&#xff09; https://blog.csdn.net/m0_67930426/article/details/13429…

zookeeper:服务器有几种状态?

四种&#xff1a; looking(选举中&#xff09;、leading(leader)、following( follower)、 observer(观察者角色&#xff09;

字节流操作

for i in range(100):ai.to_bytes(2,byteorderbig)print(i,a,end )if i%40:print() 字节流 a5678 先把5678转换为二进制就变成 0001_0110_0010_1110拆分两个字节&#xff0c;高字节在前&#xff0c;低字节在后 hig_byte 0001_0110 对应的16进制 0x16 little_byte 0010_11…

掌动智能:UI自动化测试工具产品功能和优势

UI自动化测试工具是一种软件工具&#xff0c;用于模拟用户与应用程序的交互&#xff0c;检查应用程序的用户界面是否按预期工作。这些工具允许开发人员编写测试脚本&#xff0c;以模拟用户操作&#xff0c;例如点击按钮、输入文本、导航菜单等&#xff0c;然后验证应用程序的响…

在linux上脱离hadoop安装hbase-2.5.6集群

一、软件版本 1.1、jdk1.8 1.2、hbase 2.5.6 1.3、zookeeper 3.8.1 二、计算节点 准备三台服务器 192.168.42.139 node1 192.168.42.140 node2 192.168.42.141 node3三、配置环境 1、每台服务器都配置jdk环境变量 [rootnode1 data]# javac -version javac 1.8.0_3912、每…

lvgl 转换和使用新字体

一、背景 如果lvgl 提供的默认字体不符合我们的显示要求&#xff0c;我们可以在网上下载开源字体&#xff0c;或者利用系统自带&#xff08;注意版权问题&#xff09;的字体文件转换lvgl 能识别和调用的字体。 或者为了压缩存储空间&#xff0c;某些字体我们只需要个别字符&…

SpringBoot测试类启动web环境-下篇

一、响应状态 1.MockMvcResultMatchers 说明&#xff1a;模拟结果匹配。 package com.forever;import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoC…

TCP网络编程

一)TCP Socket介绍: 1)TCP和UDP有着很大的不同&#xff0c;TCP想要进行网络通信的话首先需要通信双方建立连接以后然后才可以进行通信&#xff0c;TCP进行网络编程的方式和文件中的读写字节流类似&#xff0c;是以字节为单位的流进行传输 2)针对于TCP的套接字来说&#xff0c;J…

LangChain之关于RetrievalQA input_variables 的定义与使用

最近在使用LangChain来做一个LLMs和KBs结合的小Demo玩玩&#xff0c;也就是RAG&#xff08;Retrieval Augmented Generation&#xff09;。 这部分的内容其实在LangChain的官网已经给出了流程图。 我这里就直接偷懒了&#xff0c;准备对Webui的项目进行复刻练习&#xff0c;那么…

【QEMU-tap-windows-Xshell】QEMU 创建 aarch64虚拟机(附有QEMU免费资源)

“从零开始&#xff1a;在Windows上创建aarch64&#xff08;ARM64&#xff09;虚拟机” 前言 aarch64&#xff08;ARM64&#xff09;架构是一种现代的、基于 ARM 技术的计算架构&#xff0c;具有诸多优点&#xff0c;如低功耗、高性能和广泛应用等。为了在 Windows 平台上体验…