数据库 高阶语句

目录

数据库 高阶语句

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

区间判断查询和去重查询

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

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

通配符

设置别名:alias  简写就是 as


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

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

id int(4) primary key,
name varchar(10) 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;   
#升序查看id那一列

select id,name from info order by id desc;  
#降序查看id那一列

select id,name,score from info order by name desc;   
#最好用数据排序比较合适,但不绝对

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;

区间判断查询和去重查询

AND   /   or
#且      或

select * from info where score > 70 and score <=90;
#例  查询score 列 大于70 且 小于等于90 的数据

举例
#大于80或者小于90
select * from info where score > 80 AND score <90;
#查询score列大于80且小于90的数据
select * from info where score > 80 or score <90;
#大于80或小于90


嵌套条件

select * from info where score > 70 and ( score >75 and score <90 );
#大于70且大于75且小于90
select * from info where score > 70 or ( score >75 and score <90 );
#大于70或大于75且小于90

#嵌套条件,满足性别是男,然后进行筛选成绩 80-90
select * from info where sex='男' and (score >80 and score <90);


#去重查询
select distinct address from info;
select distinct sex from info;

#根据地址address去重,然后过滤成绩=90且性别是男
select distinct address from info where sex='男' and score =90;

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

对结果进行分组查询group by语句,一般是结合聚合函数一块使用
count() 统计有多少行
sum()列的值相加,求和
avg() 列的值求平均数
max() 过滤出列的最大值
min() 过滤出列的最小值
分组的时候可以按照一个字段,也可以按照多个字段对结果进项分组处理
select * from info;

举例格式
select count(name),sex from info group by sex;
#统计name 列 对结果进行分组查询


#根据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 from info group by sex;

#group by 实现条件过滤,后面跟上having语句实现条件过滤
select avg(score),address from info group by address having avg(score) >



按照地址分组,求成绩的平均值,然后>50,按照id的降序排列
select avg(score),address,id from info group by  address having avg(score) >50 order by id desc;

select avg(score),address,id from info group by  address having avg(score) >50 order by id desc;
统计name 的行数,计算出学生的个数把成绩也查出来按照统计出来的学生个数升序排列按照地址分组,学生的成绩大于等于70分

select count(name),score,address 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 要选用有多个重复值的列,group by的过滤条件要用having语句过滤

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

select * from info;

select * from info limit 3; 
#只看前三行

#看2行到5行
select * from info limit 1,4;

#看6到7行
select * from info limit 5,3;

select * from info order by id desc limit 3;  
#快速查询后几行,将最后几行降序方式到前几行,再用limit只查看前三行
通配符
#通配符主要用于替换字符串中的部分字符,通过部分字符的匹配向相关的结果查询出来
#通配符和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 address like '山%__';  
#通配符可以结合在一块使用
设置别名:alias  简写就是 as
#设置别名的目的是在mysql查询时,表的名字或者字段名太长,可以使用别名替代,方便书写,也可以增加可读性
#可以给表起别名,但是要注意别名不能和数据库其他的表名互相冲突
#列的别名在结果中可以显示,但是表的别名在结果中没有显示,只能用于查询

格式 举例
select name as 姓名, score as 成绩 from info;


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

create table test as select * from info;
#创建了一个表,叫test ,test的数据结构完整的从info复制过来,但是约束不会被复制

desc test;
#使用as复制表,约束不会被复制过来。

create table test1 as select * from info where score >=60;
#创建一个表,通过as复制info表,但只有score那列 大于等于60 才会被复制

#以这种方式创建的表主键在不在,外键在不在,索引在不在?
#都不在
#通过as创建,主键没了,外键没了,外键在不在,索引在不在?
#都不在



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

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

相关文章

CVE-2023-0179-Nftables整型溢出

前言 Netfilter是一个用于Linux操作系统的网络数据包过滤框架&#xff0c;它提供了一种灵活的方式来管理网络数据包的流动。Netfilter允许系统管理员和开发人员控制数据包在Linux内核中的处理方式&#xff0c;以实现网络安全、网络地址转换&#xff08;Network Address Transl…

19、Flink 的Table API 和 SQL 中的自定义函数及示例(3)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

2023年破圈:盘点11个新零售商业模式,永远不再打商业价格战

2023年破圈&#xff1a;盘点11个新零售商业模式&#xff0c;永远不再打商业价格战 前沿&#xff1a;纵观今年互联网各种类型项目&#xff0c;基本都是又短又快&#xff0c;但依然也有风靡的短跑冠军&#xff0c;那么互联网的项目能否跑的长久&#xff0c;是否是商业模式的原因&…

C++ —— map 和 multimap

一、map 1.介绍 1. map是关联容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元 素。 2. 在map中&#xff0c;键值key通常用于排序和惟一地标识元素&#xff0c;而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同&am…

NAT协议

目录 NAT 前言 NAT地址转换表 NAT分类 前言 静态NAT 192.168.1.2访问200.1.1.2执行过程 动态NAT 192.168.1.2访问200.1.1.2执行过程 NAPT 192.168.1.2的5000端口访问200.1.1.2的80端口执行过程 基本命令 配置动态NAPT转换 定义内外网接口 配置NAPT 静态NAPT配置…

Linux基础【Linux知识贩卖机】

偶尔的停顿和修整&#xff0c;对于人生是非常必要的。 --随记 文章目录 Linux目录目录结构磁盘分区相关命令 相对路径和绝对路径 文件权限用户分类umask创建文件权限计算方法粘滞位 总结 Linux目录 目录结构 Linux 操作系统采用了一种层次化的目录结构&#xff0c;常被称为标…

使命担当 守护安全 | 中睿天下获全国海关信息中心感谢信

近日&#xff0c;全国海关信息中心向中睿天下发来感谢信&#xff0c;对中睿天下在2023年网络攻防演练专项活动中的大力支持和优异表现给予了高度赞扬。 中睿天下对此次任务高度重视&#xff0c;紧密围绕全国海关信息中心的行动要求&#xff0c;发挥自身优势有效整合资源&#x…

vivado时序分析-2时序分析关键概念

时序分析关键概念 1、最大和最小延迟分析 时序分析属静态验证 &#xff0c; 旨在验证在硬件上加载并运行设计后 &#xff0c; 其时序行为的可预测性。它会将各种制造和环境变化因素组合到延迟模型中并按时序角及其变化量加以分组&#xff0c; 将所有这些要素一并纳入考量范围。…

[动态规划] (十三) 简单多状态 LeetCode 740.删除并获得点数

[动态规划] (十三) 简单多状态: LeetCode 740.删除并获得点数 文章目录 [动态规划] (十三) 简单多状态: LeetCode 740.删除并获得点数题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值 代码实现总结 740. 删除并获得点数 题目解析 (1) 给定一个整数数组。 (2) 选…

lvgl 转换和使用新字体

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

【数据结构】堆排序和top-K问题

堆的实现源码 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> #include <assert.h> typedef struct Heap {int* a;int size;int capacity; }Heap; void HeapInit(Heap* st) {…

nacos做服务配置和服务器发现

一、创建项目 1、创建一个spring-boot的项目 2、创建三个模块file、system、gateway模块 3、file和system分别配置启动信息,并且创建一个简单的控制器 server.port9000 spring.application.namefile server.servlet.context-path/file4、在根目录下引入依赖 <properties&g…

《UML和模式应用(原书第3版)》2024新修订译本部分截图

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 机械工业出版社即将在2024春节前后推出《UML和模式应用&#xff08;原书第3版&#xff09;》的典藏版。 受出版社委托&#xff0c;UMLChina审校了原中译本并做了一些修订。同比来说&a…

工业镜头接口类型

现有产品主要有以下接口 1、C:最常见的工业相机接口&#xff0c;受限于接口物理尺寸大小&#xff0c;最大靶面目前是4/3” 2、M42:M421.0,2k和4k线阵相机使用 3、M58S:M580.75,大靶面相机使用&#xff0c;可以转C(限于CH080相机&#xff0c;靶面4/3”)&#xff0c;可以转F,可以…

数据分析实战 | 多元回归——广告收入数据分析

目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型构建 八、模型预测 九、模型评价 一、数据及分析对象 CSV格式的数据文件——“Advertising.csv” 数据集链接&#xff1a;https://download.csdn.net/d…

数据结构-双向链表

目录 1.带头双向循环链表&#xff1a; 2. 带头双向循环链表的实现&#xff1a; 双向链表初始化&#xff1a; 双向链表打印&#xff1a; 开辟节点函数&#xff1a; 双向链表头插&#xff1a; 双向链表尾插&#xff1a; 双向链表头删&#xff1a; 双向链表尾删&#xff…

C语言学习笔记之结构篇

C语言是一门结构化程序设计语言。在C语言看来&#xff0c;现实生活中的任何事情都可看作是三大结构或者三大结构的组合的抽象&#xff0c;即顺序&#xff0c;分支&#xff08;选择&#xff09;&#xff0c;循环。 所谓顺序就是一条路走到黑&#xff1b;生活中在很多事情上我们都…

景联文科技提供高质量人像采集服务,助力3D虚拟人提升逼真度

人像采集是一种通过特定设备或技术&#xff0c;对人的相貌、身材等特征信息进行收集和处理的过程&#xff0c;可应用于3D虚拟人领域。通过采集大量的人像数据&#xff0c;可以训练和优化人像识别算法&#xff0c;提高其准确性。 人像采集对于提高3D虚拟人的逼真度、个性化定制以…

【手把手教你】将python程序打包成exe可执行文件

1. 安装环境 pip install pyinstaller6.0.02. 打包文件 pyinstaller -D “要启动的文件名“.py比如我的命令就是&#xff1a;pyinstaller -D eval.py 执行完后&#xff0c;会生两个文件夹dist和bulib两个文件和一个xxx.spec文件 3. 删除生成的文件 删除生成的bulid和dist文…

Java学习 8.Java-递归

一、递归的概念 引例&#xff1a; 一个方法在执行过程中调用自身&#xff0c;就称为递归&#xff08;函数自己调用自己&#xff09; 递归相当于数学的数学归纳法&#xff0c;有一个起始条件&#xff0c;有一个递推公式 递归的必要条件 1.将原问题划分为子问题&#xff0c;…