MYSQL高级语句

news2024/12/23 16:07:49

实验用表

create table location (Region char(20),Store_Name char(20));
insert into location values('East','Boston');
insert into location values('East','New York');
insert into location values('West','Los Angeles');
insert into location values('West','Houston');

location 表格
+----------+--------------+
| Region   | Store_Name   |
|----------+--------------|
| East     | Boston       |
| East     | New York     |
| West     | Los Angeles  |
| West     | Houston      |
+----------+--------------+

create table store_info (Store_Name char(20),Sales int(10),Date char(10));
insert into store_info values('Los Angeles','1500','2020-12-05');
insert into store_info values('Houston','250','2020-12-07');
insert into store_info values('Los Angeles','300','2020-12-08');
insert into store_info values('Boston','700','2020-12-08');

Store_Info 表格
+--------------+---------+------------+
| Store_Name   |   Sales | Date       |
|--------------+---------+------------|
| Los Angeles  |    1500 | 2020-12-05 |
| Houston      |     250 | 2020-12-07 |
| Los Angeles  |     300 | 2020-12-08 |
| Boston       |     700 | 2020-12-08 |
+--------------+---------+------------+

 

 查询某个表某个字段

select store_name from store_info;

不区分大小写

对单字段去重查询

select distinct date from store_info;

用where添加查询条件查询如图

and(且) or(或)可以指定多个条件where sales > 500 and sales < 1000;

where sales >1000 or (sales > 200 and sales < 500);

 in 显示已知值的数据记录

select store _name,date,sales from store_info where store_name in ("houston",'los angeles');

where store_name not in ('houston', 'beijing')

between显示两个值范围内的数据(包含500,1500)

select store _name,date,sales from store_info where sales between 500 and 1500;

where date between '2020-12-06' and '2020-12-08';

通配符 通常和like一起使用

%:百分号代表零个,ige或多个字符

_:下划线代表单个字符

匹配洛杉矶

select store _name,date,sales from store_info where store_name like 'Lo%';\

order by 按关键字排序

order by针对的是int整型的,不能char varchar

#ASC 是按照升序进行排序的,是默认的排序方式。#DESC 是按降序方式进行排序。

select store _name,date,sales from store_info order by sales asc;

select store_name,sales,data from store_info oreeder by sales desc;

函数

 数学函数

abs(x) 返回x的绝对值

rand()返回0到1的随机数

mod(x,y)返回x初一y以后的余数

power(x,y)返回x的y的次方

round(x)返回里x最近的整数

round(x,y)保留x的y位小数四舍五入后的值

aqrt(x)返回x的平方根

truncate(x,y)返回shuzix截断为y位小数的值

ceil(x)返回大于或等于x的最小整数

floor(x)返回小于或等于x的最大整数

greatest(x1,x2)返回集合最大的值,也可以是多个字段的最大的值

least(x1,x2.。。。)返回集合中最小的值,也可以是多个字段的最小值

 聚合函数:

avg()返回指定列的平均值

count()返回指定列表中非null的值count(*)不会忽略null的行

sum(x)返回指定列的求和

max()返回指定列的最大值

min()返回指定列的最小值

 字符串函数

trim()

length() 返回字符串x的长度

left(x,y)返回字符串x的前y个字符

right(x,y)返回字符串x的后y个字符

strcmp(x,y)比较x和y (-1,0,1)

两个字符串拼接

法一

 法二或者

先修改配置文件sql_mode

i=12345678 分片出4

echo ${i:3:1} 结果位4

echo $(i:3:3)结果为456

mysql下标从1开始

求los store_name不要加‘ ’不加字段名

 select store_name,length(store_name) from location;

截取长度

 替换

 group by 对group by后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的

select store_name, sum(sales) from store_info group by store_name order by sum(sales) desc;

group by分组之后无法使用where语句但是可以加在group by前

 having对group by 分组后的结果过滤

sql语句的执行顺序

 别名字段别名as new_region (as可加可不加)

表的别名

 子查询语句,表连接,在where字句或having子句插入另一个sql语句

select “字段1” from “表格1” where “字段2”【比较运算符】#外查询

(select ‘字段1’from ‘表格2’where “条件”)#内查询先执行

exists 用来测试内查询是否有结果

select sum(sales) from store_info where exists (sekect * from location where region = 'west')

表连接

inner join(内连接):只返回两个表中来连接字段相等的行

left join(左连接)返回包含左表中的所有记录和右表中联结字段相等的记录。(没有用null填充)

right join (右链接)返回包含右表中的所有记录的和坐标中有联机字段相同的记录。

innor join求交集单边求无交集可以用子查询语句

 

lift join 和 right join

 select * from location A,store_info B where A.store_name = B.store_name;

求联集union

将两个sql语句的结果结合起来,两个SQL语句所产生的所产生的字段需要是同样的数据记录种类

语法【select 语句 1】 union all 【select 语句 2】;

select store_name from location union selext store_name from store_info;

union all 不做去重排序

内查询实现交集

distinct去重

select

using(字段名)去重

 子查询语句求交集

select stote_name from location where store_name in (select store_name from store_info);

通过左右连接来实现交集查询

 

 总结 

select 字段。。。from表 where 字段1 =(!= >= <= > <)(in 、not in (值1,值2,。。。)、between 值1 and 值2 、like '%XX_') 值 【and or】字段2

select 字段。。。from表 order by 字段 asc/desc

数学函数 截取round(x,y) truncate(x,y)

greatest(值1 ,值2,。。。)least(值1,值2.。。。)

聚合函数 sum(字段) avg() count(字段)

count(*) max() min()

字符串函数 拼接concat(字段,值) 值1  ||  值2

substr(x,y,z) replace(x(旧字符),y(新字符),z)

lenght(x)

select 字段,聚合函数(字段)from表 where XXXXX group by 字段 having 条件

select 字段 as 别名 from表 as 别名

select 字段,。。。from表 where 字段 运算符 (select 字段 。。。 from 表 where 字段);

表连接: inner join 内连接 left join 左连接 right join 右连接

交集:select distinct(去重) 字段 from 左表 A inner join 右表 B onA.字段 = B.字段;

表名一样时using(字段)

select A.字段 from 左表 A, 右表 B where A.字段 =B.字段

select A.字段 from 左表 where 字段 in(select 字段 from 右表)

select A.字段 from 左表 left join on A.字段 =B.字段 where B.字段 is not null

派生表

select A.字段 from (select distinct 字段 from 左表 union all select distinct 字段 from 右表)as A group by A.字段 having count (A.字段) =1 ;

无交集

select A.字段 from 左表 where 字段 not in (select 字段 from 右表)

select A.字段 from 左表 left join on A.字段 = B.字段 where B.字段 is null 

select A.字段 from (select distinct 字段 from 左表 union all select distinct 字段 from 右表) as A group by A.字段 having count(A.字段)= 1;

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

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

相关文章

如何解决请求参数为JSON时,采用IO流读取,只能请求一次的问题?

如何解决请求参数为JSON时&#xff0c;采用IO流读取&#xff0c;只能请求一次的问题&#xff1f; 一、错误演示1. 创建项目&#xff0c;添加所需依赖2. 配置redis环境3. 写一个简单的测试请求4. 写一个拦截器&#xff0c;拦截请求5. WebConfig 注册拦截器6. 测试请求 二、问题解…

vue问题

一、路由 hash模式&#xff08;location.hash hashchange 事件&#xff09; hash 模式的实现方式就是通过监听 URL 中的 hash 部分的变化&#xff0c;触发haschange事件&#xff0c;页面做出不同的响应。但是 hash 模式下&#xff0c;URL 中会带有 #&#xff0c;不太美观。 h…

【多线程初阶三】简单了解wait和notify方法~

目录 &#x1f31f;1、wait() &#x1f31f;2、notify() &#x1f31f;1、wait() &#xff08;1&#xff09;wait()方法与notify()方法都是Object类中的方法。 &#xff08;2&#xff09;wait()是让线程等待一段时间&#xff0c;死等——>状态WAITING:没有时间限制的等待.…

MySQL 高级(进阶) SQL 语句一

一、高级SQL语句&#xff08;进阶查询&#xff09; 先准备2个表 一个location表&#xff1a; use kgc; create table location (Region char(20),Store_Name char(20)); insert into location values(East,Boston); insert into location values(East,New York); insert int…

如何判断CRM软件的好坏?2023年CRM系统排行榜前三名是什么?

CRM客户管理系统经过20余年的发展&#xff0c;收获了越来越多企业的认可&#xff0c;成为企业数字化转型必不可少的一环。很多企业都有上线CRM软件的计划&#xff0c;但精准的找到一款适合自身的产品十分不易&#xff0c;今天我们就来盘点2023年CRM软件排行榜。 一、CRM的含义…

Intellij中使用Spotless 格式化代码

Spotless简介 在一些大型项目或开源项目&#xff0c;由于开发人员太多&#xff0c;导致各个代码格式不统一。会让整体项目的代码可读性变差。统一代码格式使用maven中的Spotless插件就是不错的选择。 Spotless 是一个代码格式化工具&#xff0c;它有以下功能&#xff1a; 支…

300. 最长递增子序列

300. 最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子…

tp6 对接阿里云短信

1、获取AccessKey ID,AccessKey Secret&#xff0c;第一次会提示需要创建 2、添加签名 3、创建模板 composer版本太老了&#xff0c;可能会导致下载失败&#xff0c;建议升级下版本 官方提供的最新依赖版本&#xff0c;我的会报错&#xff0c;下载不了&#xff0c;提示用2.0.…

Android Studio 下真机调试

文章目录 一、开启真机调试二、断开真机调试 一、开启真机调试 准备USB调试线&#xff0c;一端插在电脑USB接口上&#xff0c;另一端插在手机充电口上。 下面以自己的手机&#xff08;huawei nova 5 &#xff09;为例&#xff1a;点击手机界面上的设置应用。 然后往下找到 【关…

经典神经网络(1)LeNet及其在Fashion-MNIST数据集上的应用

经典神经网络(1)LeNet 1、卷积神经网络LeNet 之前对于Fashion-MNIST服装分类数据集&#xff0c;为了能够应⽤softmax回归和多层感知机&#xff0c;我们⾸先将每个大小为28 28的图像展平为⼀个784维的固定⻓度的⼀维向量&#xff0c;然后⽤全连接层对其进⾏处理&#xff0c;此…

函数式接口的介绍和使用(FunctionInterface)——Consumer,Supplier,Predicate、Function

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法&#xff0c;但是可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为 lambda 表达式。 函数式接口都添加了 FunctionalInterface 注解&#xff0c;这个是jdk1.8才引进的。例如 因为函数式接口里面只是…

【C++】| 01——泛型编程 | 模板

系列文章目录 【C】| 01——泛型编程 | 模板 文章目录 1. 认识泛型编程2. 函数模板1.1 函数模板的语法1.1.1 定义模板1.1.2 应用模板实现函数1.1.3 使用模板函数(实例化)1.1.3.1 隐式使用(实例化)1.1.3.2 显式使用(实例化)1.1.3.3 使用函数模板的注意事项(实例化) 2. 类模板2.…

第1章 Nginx简介

基于 Nginx版本 1.14.2 &#xff0c;Tomcat版本 9.0.0 演示 第1章 Nginx简介 1.1 Nginx发展介绍 Nginx &#xff08;engine x&#xff09; 是一个高性能的Web服务器和反向代理服务器&#xff0c;也可以作为邮件代理服务器。 Nginx 特点是占有内存少&#xff0c;并发处理能力…

南京邮电大学数据库实验二(DBMS的数据库保护)

文章目录 一、实验目的和要求二、实验环境(实验设备)三、实验原理及内容(1) DBMS的数据库保护功能(2) 安全控制中的访问控制机制(3) 事务的提交与回滚(4) 并发控制的锁机制 三、实验内容1.以root账户登录数据库管理系统&#xff0c;创建用户U1和U2&#xff0c;密码自定。2.创建…

Redis 入门教程(简单全面版)

1 安装&#xff1a; 1.1 生产环境安装 注意&#xff1a; 1、如果安装过程有问题可以参考源代码中的 README.md 文件 2、如果服务器只安装一个 redis 通常选择 /usr/local/redis 作为安装目录&#xff0c;如果安装多台则建议带上 服务名称 区分&#xff08;建议带上 服务名称 区…

jvm-狂神课程

一、JVM JVM就是Java虚拟机&#xff0c;Java虚拟机就是JVM 1. JVM位置 1、Java程序&#xff08;跑的环境是在jvm&#xff08;虚拟机&#xff09;跑的&#xff0c;也可以说是在jre上跑的&#xff09;java运行是需要在特定的环境的也就是这个jre这种。 2、jvm&#xff08;也就是…

别不信:这些细节关乎你的物联网设备的命运!

《高并发系统实战派》-- 值得拥有 一、设备接入层网络协议的意义 随着物联网的发展&#xff0c;越来越多的设备需要接入云平台进行远程监控和管理。设备接入层网络协议起到了承担设备接入网络的功能&#xff0c;为物联网平台提供了数据交互的基础。设备接入层网络协议对于物联…

【C++ 入坑指南】(01)学习路线

入门 1. 推荐书籍 《Accelerated C》&#xff0c;《Essential C》二选一精读。《A Tour of C》选读。 《Accelerated C》很适合新手&#xff0c;因为只有短短不到 300 页&#xff0c;在普遍一样的入门书籍里面是一股清流。容易通读完&#xff0c;减少挫败感。就这样的篇幅&am…

【每天学习一点新知识】如何绕过CDN查真实ip

1、什么是CDN 为了防止流量过大网络堵塞&#xff0c;我们就在靠近用户的地方&#xff0c;建一个缓存服务器&#xff0c;把远端的内容复制一份&#xff0c;放在这里&#xff0c;简单来说就是将内容缓存在终端用户附近。 2、怎么绕过cdn找到远端服务器的真实ip呢&#xff1f; &…

FS2462是泛海微自主开发的5A降压型同步整流芯片

FS2462是泛海微自主开发的5A降压型同步整流芯片&#xff0c;是国内首家大电流同步5A芯片&#xff0c;内部集成极低RDS内阻20豪欧金属氧化物半导体场效应晶体管的(MOSFET)。输入工作电压宽至4.75V到21V&#xff0c;输出电压1.0V可调至20V。5A的连续负载电流输出可保证系统各状态…