mysql高阶语句:

mysql高阶语句:

高级语法的查询语句:

select * from  表名   where limitsdistinct   去重查询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.xdnf.cn/news/1486301.html

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

相关文章

QT写一个mainWindow

切换风格的写法&#xff1a; 先看看样式效果&#xff1a; mian_window.h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();void Ini…

SQL123 SQL类别高难度试卷得分的截断平均值

题目 自测代码 drop table if exists examination_info; CREATE TABLE examination_info (id int PRIMARY KEY AUTO_INCREMENT COMMENT 自增ID,exam_id int UNIQUE NOT NULL COMMENT 试卷ID,tag varchar(32) COMMENT 类别标签,difficulty varchar(8) COMMENT 难度,duration i…

机器学习驱动的智能化电池管理技术与应用

在人工智能与电池管理技术融合的背景下&#xff0c;电池科技的研究和应用正迅速发展&#xff0c;创新解决方案层出不穷。从电池性能的精确评估到复杂电池系统的智能监控&#xff0c;从数据驱动的故障诊断到电池寿命的预测优化&#xff0c;人工智能技术正以其强大的数据处理能力…

数据结构之树的存储结构详解与示例(C/C++)

文章目录 树的存储结构1. 顺序存储结构2. 链式存储结构结论 树&#xff08;Tree&#xff09;是一种非常常见的数据结构&#xff0c;它模拟了一种层级或分支结构。树由节点&#xff08;或称为顶点&#xff09;组成&#xff0c;每个节点包含一个值&#xff0c;并且可能有多个子节…

《500 Lines or Less》(5)异步爬虫

https://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html ——A. Jesse Jiryu Davis and Guido van Rossum 介绍 网络程序消耗的不是计算资源&#xff0c;而是打开许多缓慢的连接&#xff0c;解决此问题的现代方法是异步IO。 本章介绍一个简单的网络爬虫&a…

使用Python和Pandas导出SQLite数据到Excel的小工具

在数据处理和导出的日常工作中&#xff0c;有时我们需要将SQLite数据库中的数据导出到Excel文件以便进一步分析或分享。本文将介绍如何使用Python的wxPython、Pandas和SQLite3库创建一个小工具&#xff0c;实现从SQLite数据库中提取数据并将其导出到Excel文件的功能。 C:\pytho…

5.Fabric的共识机制

在Fabric中,有以下3中典型共识机制。 Solo共识 solo共识机制只能用于单节点模式,即只能有一个Orderer节点,因此,其共识过程很简单,每接收到一个交易信息,就在共识模块的控制下产生区块并广播给节点存储到账本中。 Solo 模式下的共识只适用于一个Orderer节点,所以可以在…

汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法

汉明权重&#xff08;Hamming Weight&#xff09;&#xff08;统计数据中1的个数&#xff09;VP-SWAR算法 定义 汉明重量是一串符号中非零符号的个数。它等于同样长度的全零符号串的汉明距离(在信息论中&#xff0c;两个等长字符串之间的汉明距离等于两个字符串对应位置的不同…

无线麦克风推荐哪些品牌,领夹麦克风哪个品牌好,无线麦克风推荐

​作为消费类电子产品&#xff0c;麦克风随着市场需求和技术进步&#xff0c;每年都有新产品系列涌现&#xff0c;特别是领夹麦克风&#xff0c;近年来经历了显著的市场变革和技术突破。从早期的新闻采访、节目录制和影视后期录音中常用的无线小蜜蜂话筒&#xff0c;到如今在网…

【保姆级讲解C语言中的运算符的优先级!】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

创建最佳实践创建 XML 站点地图--SEO

您是否正在努力让您的网站被搜索引擎索引&#xff1f;您想提高您网站的搜索引擎知名度吗&#xff1f;如果是&#xff0c;您可能会错过 XML 站点地图的重要性。XML 站点地图在改善您网站的 SEO 方面发挥着至关重要的作用。‍ XML 站点地图是您网站结构的蓝图&#xff0c;可帮助…

RH436 Managing LVM Shared Volume Groups

RH436 Managing LVM Shared Volume Groups 1. 启动lab环境2. 准备lvm卷组3. 创建逻辑卷4. 配置集群资源启动顺序5. 确认各节点lvs正常6. LVM-HA和LVM-Share使用场景 1. 启动lab环境 [studentworkstation ~]$ lab start lvm-shared2. 准备lvm卷组 所有节点安装依赖包 yum ins…

react中组件间的通信

一、父传子 1.代码展示 import React, { useState } from react;function SonPage(props){ // 子组件const {msg} propsreturn (<div>我是子组件 {msg}</div>) }function App() { // 父组件const [msgText,setMsgText] useState(父传子)return (<div classN…

掌握VR全景技术,需要具备哪些条件?

VR全景技术自从进入市场以来&#xff0c;就在各个行业领域尝试落地运用&#xff0c;包括但不限于广告宣传、学校教育、医疗、工业、农业等领域。随着5G 技术的不断普及&#xff0c;VR全景技术也逐渐被应用到日常生活中的各个方面&#xff0c;从地产中介到车企销售&#xff0c;从…

Electron的入门介绍与使用(1)共30节

Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 入门指南​ Electron 是网页应用 …

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第四十章 Linux用户层和内核层

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

力扣第二十五题——K个一组反转链表

内容介绍 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内…

Vscode离线下载对应版本的ms-python.vsix

一、查看vscode的版本号和发行时间 vscode界面中Help-About查看版本号和发行时间&#xff0c;ms-python的发行时间需要和这个时间相近&#xff1a; 二、在github仓库中查看ms-python有什么版本&#xff0c;以及发行时间 github仓库路径 https://github.com/microsoft/vsco…

力扣题库合集(2):动态规划(1)

本文将持续更新~~ hello hello~ &#xff0c;这里是绝命Coding——老白~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff1a;绝命C…

qt中charts图表的使用方法

折线图 #include "widget.h" #include "ui_widget.h" #include <QtCharts/QChart> #include <QtCharts/QChartView> #include <QtCharts/QLineSeries> #include<QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent), …