mysql高阶语句:

news2024/9/22 12:31:41

mysql高阶语句:

高级语法的查询语句:

select * from  表名   where 
                     limits
                     distinct   去重查询
                     like       模糊查询

排序语法:关键字排序

升序和降序

默认的排序方式就是升序

升序:ASC 配合order by语法

select * from 表名 order by 列名 asc; 

降序:DESC 配合order by语法

select * from 表名 order by 列名 desc;

以多个关键字进行排序:

select * from info order by hobbid desc,id;

*以多个列作为排序关键字,只有第一个参数有相同的值,第二个字段才有意义。

where条件的筛选功能(比较符号)

区间判断:

and or

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

嵌套多条件:

select * from info where score > 70 or (score > 0 and score < 60);

分组查询,sql查询的结果进行分过,使用group by 语句来实现。

group by 语句配合聚合函数一起。

聚合函数的类型:

统计 count

求和 sum

求平均数 avg

最大值 max

最小值 min

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

在聚合函数分组语句中,非聚合函数列不一定需要group by,但group by一定有非聚合函数列。

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

以兴趣这一列作为分组,计算成绩的平均分,统计的结果筛选出分组的平均成绩大于等于60分。

select avg(score),hobbid from info group by hobbid having avg(score) >=60;

统计姓名,以兴趣和分数作为分组,统计出成绩大于80的,然后按照降序,对统计姓名的列进行排序。

select count(name),hobbid,score from info  group by hobbid,score  having score >80 order by name desc;

limit   1,3         #1是位置偏移量(可选参数),如果不设定位置偏移量,默认就从第一行开始,默认的值 0 

使用limit和降序排列,只显示最后三行

select * from info order by id desc limit 3;

表和列的别名:因为在实际工作中,表的名字和列的名字可能会很长,书写起来不太方便,多次声明表和列时,完整的展示太复杂,设置别名可以使书写简化了

可读性增加了,简介明了。

对列名起别名:

select name as 姓名,score as 成绩 from info;
select name 姓名,score 成绩 from info;
#as是可以不加的

对表名起别名:

select i.name 姓名,i.score 成绩 from info i;
select i.name 姓名,i.score 成绩 from info as i;

对表进行复制:

create table test as select * from info;
create table test1 as select * from info where score >= 60;

通配符:

like 模糊查询

%:表示零个,一个或者多个字符 *

_ :表示单个字符。

select * from info where address like 's%';
select * from info where address like 's_';

子查询:(内查询,嵌套查询)

select语句当中又嵌套了一个select

嵌套的select才是子查询,先执行子查询的语句,外部的select再根据子条件的结果进行过滤查找。

子查询可以是多个表,也可以是同一张表。

关联语句 in

select id,name,score from info where id in ( select id from info where score >=80);
select id,name,score from info where id in ( select id from test1 where score >=80);
update info set score = 80 where id in (select id from test where id = 4 );

not in

select id,name,score from info where id not in ( select id from info where score >=80);
select id,name,score from info where id not in ( select id from test1 where score >=80);

exists 判断子查询的结果是否为空,不为空返回true,空返回false

select count(*) from info where exists (select id from test1 where score >80);
#这里不是in和not in 会传给主表。
这里是判断条件,存在才执行,不存在,结果为空则不执行。

查询分数,如果分数小于50的则统计info的字段数。

select count(*) from info where score in (select score from info where score < 50);

在子查询当中多表查询和别名:

info表和test表,这两张表id部分相同。然后根据id相同的部分,查询info表的id的值。

select * from info where id in (select id from test id);

info表和test表,这两张表id部分相同。然后根据id相同的部分,查询info表的id的值,查询出info表成绩大于80的数据。

select id,score from info where score > 80 and id in (select id from test id);

查询info表的平均成绩。

select avg(score) from info where score > 80 and id  in (select id from test id);

mysql的视图:

视图是一个虚拟表,表的数据基于查询的结果生成。

视图可以简化复杂的查询,隐藏复杂的细节。访问数据更安全。

视图表是多表数据的结合体。

视图和表之间的区别:

1、存储方式,表是实际的数据行,视图不存储数据,仅仅是查询结果的虚拟表

2、数据更新,更新表可以直接更新视图表的数据。

3、占用空间,表实际占用空间,视图不占用空间,只是一个动态结果的展示。

视图表的数据可能是一张表的部分查询数据,也可能是多个表的一部分查询数据。

查询当前数据库中的视图表:

show full tables in xy102 where table_type like 'VIEW';

创建视图表

create view test2 as select * from info where score >= 80;

查看视图表中的数据

select * from test2;

创建一张视图表,视图表包含 id name address ,从info和test当中的name值相同的部分创建。

create view test3 as select id,name,address from info where name in (select name from test name);
select * from test3;

视图表就是查询语句的别名,有了视图表可以简化查询的语句。

表的权限是不一样的,库的权限是有控制的。所以查询视图表的权限相对低

既可以保证原表的数据安全,也简化了查询的过程。

删除视图表:

drop view 视图表名;

连接查询:

两张表或者多个表的记录结合起来,基于这些表共同的字段,进行数据的拼接。

首选,要确定一个主表作为结果集,然后把其他表的行有选择性的选定到主表的结果上。

内连接:两张表或者多张表之间符合条件的数据记录的集合。

select a.a_id,a.a_name from test1 a inner join test2 b on a.a_name=b.b_name;

取两个表或者多个表之间的交集。

左连接:左外连接,left jion left outer join

左连接以左表为基础,接收左表的所有行,以左表的记录和右表的记录进行匹配。

匹配左表的所有,以及右表中符合条件的行,不符合的显示null。

select * from test1 left join test2 on a_name=b_name; 

以比较条件为标准,展示结果。两个表相同的部分展示出来,做拼接。不同的结果显示null。

右连接:右外连接,right jion right outer join

左连接以左表为基础,接收左表的所有行,以左表的记录和右表的记录进行匹配。

匹配左表的所有,以及右表中符合条件的行,不符合的显示null。

select * from test1 RIGHT join test2 on a_name=b_name; 

以比较条件为标准,展示结果。两个表相同的部分展示出来,做拼接。不同的结果显示null。

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

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

相关文章

大模型应用—大模型赋能搜索

大模型赋能搜索 AI正在改变搜索体验,使其对我们来说更加智能、个性化和高效。 你可能会想,“但是谷歌已经足够好了!”首先,谷歌的搜索相关性和个性化是有代价的,那么跨不同媒体类型的搜索呢?对于最相关的信息格式,甚至是自动化某些任务,比如抓取网站、索引内容和搜索…

因为很会用工具,拿下了很多客户!

作为一名想要得到更多业绩的打工人&#xff0c;能提高工作效率的工具一定要拥有&#xff01; 今天&#xff0c;就给大家分享一个职场必备的提效神器&#xff0c;一起来看看它都有哪些功能吧&#xff01; 1、多渠道客源 它可以从多个渠道去获取你想要的客户资源&#xff0c;无…

CSS画边框线带有渐变线和流光边框实例

流光边框css流光边框动画效果_哔哩哔哩_bilibili流光边框css流光边框动画效果_哔哩哔哩_bilibili纯CSS写一个动态流水灯边框的效果&#xff5e;_哔哩哔哩_bilibili荧光边框CSS 动画发光渐变边框特效_哔哩哔哩_bilibili [data-v-25d37a3a] .flow-dialog-custom {background-col…

简单使用SpringMVC写一个图书管理系统的登入功能和图书展示功能

准备好前端的代码 这里已经准备好了前端的代码&#xff0c;这里仅仅简单的介绍登入功能&#xff0c;和展示图书列表的功能。 如图&#xff1a; 如上图所示&#xff0c;这里的前端代码还是比较多的&#xff0c;在这里我介绍&#xff0c;login.html还有book_list.html这两个。 l…

springboot智慧草莓基地管理系统--论文源码调试讲解

3 系统分析 当用户确定开发一款程序时&#xff0c;是需要遵循下面的顺序进行工作&#xff0c;概括为&#xff1a;系统分析-->系统设计-->系统开发-->系统测试&#xff0c;无论这个过程是否有变更或者迭代&#xff0c;都是按照这样的顺序开展工作的。系统分析就是分析…

golang 基础 泛型编程

&#xff08;一&#xff09; 示例1 package _caseimport "fmt"// 定义用户类型的结构体 type user struct {ID int64Name stringAge uint8 }// 定义地址类型的结构体 type address struct {ID intProvince stringCity string }// 集合转列表函数&#…

83. UE5 RPG 实现属性值的设置

在前面&#xff0c;我们实现了角色升级相关的功能&#xff0c;在PlayerState上记录了角色的等级和经验值&#xff0c;并在变动时&#xff0c;通过委托广播的形式向外广播&#xff0c;然后在UI上&#xff0c;通过监听委托的变动&#xff0c;进行修改等级和经验值。 在这一篇里&a…

GoogleCTF2023 Writeup

GoogleCTF2023 Writeup Misc NPC Crypto LEAST COMMON GENOMINATOR? Web UNDER-CONSTRUCTION NPC A friend handed me this map and told me that it will lead me to the flag. It is confusing me and I don’t know how to read it, can you help me out? Attach…

Unity 批处理详讲(含URP)

咱们在项目中&#xff0c;优化性能最重要的一个环节就是合批处理&#xff0c;&#xff0c;在早期Unity中&#xff0c;对于合批的处理手段主要有三种&#xff1a; Static Batching Dynamic Batching GPU Instancing 如今Unity 为了提升合批范围与效率&#xff0c;提供了…

昇思 25 天学习打卡营第 15 天 | mindspore 实现 VisionTransformer 图像分类

1. 背景&#xff1a; 使用 mindspore 学习神经网络&#xff0c;打卡第 15 天&#xff1b;主要内容也依据 mindspore 的学习记录。 2. Vision Transformer 介绍&#xff1a; mindspore 实现 VisionTransformer 图像分类&#xff1b;VisionTransformer 论文地址 VisionTransfo…

掌握Python:三本不可错过的经典书籍

强烈推荐Python初学者用这三本书入门! Python3剑客 一、《Python编程从入门到实践》 这本书适合零基础的Python读者&#xff0c;旨在帮助他们快速入门Python编程&#xff0c;并达到初级开发者的水平。书中深入浅出地介绍了Python的基础概念&#xff0c;如变量、循环、函数等…

华清数据结构day4 24-7-19

链表的相关操作 linklist.h #ifndef LINKLIST_H #define LINKLIST_H #include <myhead.h> typedef int datatype; typedef struct Node {union{int len;datatype data;};struct Node *next; } Node, *NodePtr;NodePtr list_create(); NodePtr apply_node(datatype e); …

开源XDR-SIEM一体化平台 Wazuh (1)基础架构

简介 Wazuh平台提供了XDR和SIEM功能&#xff0c;保护云、容器和服务器工作负载。这些功能包括日志数据分析、入侵和恶意软件检测、文件完整性监控、配置评估、漏洞检测以及对法规遵从性的支持。详细信息可以参考Wazuh - Open Source XDR. Open Source SIEM.官方网站 Wazuh解决…

秒懂C++之string类(上)

目录 一.string类的常用接口说明 二.不太常用接口&#xff08;了解接口&#xff09; 三.string类的遍历访问 3.1 迭代器iterator 3.2 反向迭代器 四.string的其他功能 4.1 reserve(扩容&#xff09; 4.2 resize 4.3 at 4.4 append 4.5 4.6 insert 一.string类的常用…

VS2015加断点(红色),修改过后,断点变为白色不能命中

实际这个问题是因为&#xff1a;源文件和原始版本不同。解决方法有二&#xff1a; 一&#xff0c;在断点上右键&#xff0c;选择“位置”》勾选”允许源代码与原始版本不同&#xff1b; 二&#xff0c;点击菜单栏“调试”》“选项和设置”》“常规”》去掉“要求源文件与原始…

外卖霸王餐运营规划,系统该怎么选择?

在当今的外卖市场中&#xff0c;竞争日益激烈&#xff0c;如何吸引并留住消费者成为了每个餐饮商家关注的焦点。霸王餐作为一种创新的营销策略&#xff0c;以其独特的魅力&#xff0c;吸引了大量消费者的目光。然而&#xff0c;如何有效地运营霸王餐活动&#xff0c;选择合适的…

浅谈断言之XML Schema断言

浅谈断言之XML Schema断言 “XML Schema断言”是一种专门用于验证基于XML的响应是否遵循特定XML Schema定义的标准和结构的断言类型。下面我们将详细探讨XML Schema断言的各个方面。 XML Schema断言简介 XML Schema断言&#xff08;XML Schema Assertion&#xff09;允许用户…

EXO项目解析:pynvml怎么实现监控的,包括什么参数

目录 pynvml怎么实现监控的,包括什么参数 pynvml实现监控的方式 pynvml包括的主要参数 GPU功耗的组成 举例说明 注意事项 EXO项目解析:https://github.com/exo-explore/exo?tab=readme-ov-file 这段代码是一个使用setuptools库编写的Python包安装脚本,主要用于定义和…

std的时间函数——chrono

参考&#xff1a; C 标准库 分数运算&#xff08;ratio库&#xff09; 再也不被时间束缚&#xff1a;C stdchrono时间库全面解析 C11时间类 c11 chrono全面解析(最高可达纳秒级别的精度) C std::chrono库使用指南 (实现C 获取日期,时间戳,计时等功能) 一、std的分数ratio…

Android 防止重复点击

1.第一种方式&#xff1a; private static final int MIN_DELAY_TIME 2000; // 两次点击间隔不能少于2000ms private static long lastClickTime System.currentTimeMillis(); public static boolean isFastClick() { boolean flag true; long currentClickTime …