MysQL高级SQL语句

  • 一、SQL语句的概述
    • SELECT
    • DISTINCT
    • WHERE
    • AND、OR
    • IN
    • BETWEEN
    • 通配符
    • LIKE
    • ORDER BY
    • GROUP BY
    • HAVING
  • 二、函数
    • 1、数学函数
    • 2、聚合函数
    • 3、字符串函数

一、SQL语句的概述

创建2个表,进行实验操作

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 into location values('West','Los Angeles');
insert into location values('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');


SELECT

显示表格中一个或数个栏位的所有资料

语法: SELECT "栏位" FROM "表名";
SELECT Store_Name FROM Store_Info;

DISTINCT

不显示重复的资料

语法: SELECT DISTINCT "栏位" FROM "表名";
SELECT DISTINCT Store_Name FROM Store_Info;

WHERE

有条件查询

语法: SELECT "栏位" FROM "表名" WHERE "条件";
SELECT Store_Name FROM Store_Info WHERE Sales > 1000;

AND、OR

且 、或

语法: SELECT "栏位" FROM "表名”WHERE "条件1" { [ANDIOR] "条件2"}+;
SELECT Store_Name FROM Store_Info WHERE Sales > 1000 OR (Sales < 500 AND Sales > 200);

IN

显示已知的值的资料

语法: SELECT "栏位" FROM "表名" WHERE "栏位" IN ('值1', '值2', ...) ;
SELECT * FROM Store_Info WHERE Store_Name IN ('Los Angeles','Houston');where Store_name = 'Los Angeles'or  Store_name = 'Houston'

BETWEEN

显示两个值范围内的资料

语法: SELECT "栏位" FROM "表名" WHERE "栏位" BETWEEN '值1 ' AND '值2';
SELECT * FROM Store_Info WHERE Date BETWEEN ' 2020-12-06' AND '2020-12-10';

通配符

通常通配符都是跟LIKE一起使用的

%:百分号表示零个、 一个或多个字符
_:下划线表示单个字符

'A_Z':所有以’A’起头,另一-个任何值的字符,且以’Z’为结尾的字符串。例如,'ABZ’和’A2Z’都符合这一个模式,而’AKKZ '并不符合(因为在A和z之间有两个字符,而不是一个字符)。

'ABC%': 所有以’ABC’ 起头的字符串。 例如,‘ABCD’ 和’ ABCABC’ 都符合这个模式。

'%XYZ':所有以’XYZ’ 结尾的字符串。例如,‘WXYZ’ 和’ZZXYZ’ 都符合这个模式。

'%AN%': 所有含有’AN’这个模式的字符串。例如,‘LOS ANGELES’ 和’SAN FRANCISCO’ 都符合这个模式。

'_AN%':所有第二个字母为’A’和第三个字母为’N’的字符串。例如,‘SAN FRANCISCO’ 符合这个模式,而’LOS ANGELES '则不符合这个模式。

LIKE

匹配一个模式来找出我们要的资料

语法: SELECT "栏位" FROM "表名" WHERE "栏位" LIKE {模式} ;
SELECT * FROM Store_Info WHERE Store_Name like '%os%';

ORDER BY

按关键字排序

语法: SELECT "栏位" FROM "表名" [WHERE "条件"] ORDER BY "栏位" [ASC,DESC];#ASC是按照升序进行排序的,是默认的排序方式。
#DESC是按降序方式进行排序。SELECT Store_Name, Sales, Date FROM Store_Info ORDER BY Sales DESC;

GROUP BY

对GROUP BY后面的栏位的查询结果进行汇总分组,通常是结合聚合函数一起使用的

GROUP BY有一个原则,就是SELECT后面的所有列中,没有使用聚合函数的列,必须出现在GROUP BY后面。

语法: SELECT "栏位1", SUM("栏位2") FROM "表名”GROUP BY "栏位1";
SELECT Store_Name, SUM(Sales) FROM Store_Info GROUP BY Store_Name ORDER BY sales desc;

HAVING

用来过滤由GROUP BY语句返回的记录集,通常与GROUP BY 语句联合使用

HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。如果被SELECT的只有函数栏,那就不需要GROUP BY 子句。

语法: SELECT "栏位1",SUM("栏位2") FROM "表格名" GROUP BY "栏位1" HAVING (函数条件);
SELECT Store_Name,SUM(Sales) FROM Store_Info GROUP BY Store_Name HAVING SUM (Sales) > 1500;

二、函数

1、数学函数

abs(x)                                       返回x的绝对值
rand()                                      返回0到1的随机数
mod(x,y)                                    返回x除以y以后的余数
power(x,y)                                  返回x的y次方
round(x)                                    返回离x最近的整数
round(x,y)                                  保留x的y位小数四舍五入后的值
sqrt (x)                                    返回x的平方根
truncate(x,y)                               返回数字x截断为y位小数的值
ceil(x)                                     返回大于或等于x的最小整数
floor(x)                                    返回小于或等于x的最大整数
greatest(x1,x2.. .)                         返回集合中最大的值
least(x1,x2...)                             返回集合中最小的值SELECT abs(-1), rand(), mod(5,3),power(2,3),round(1.89);
SELECT round(1.8937,3),truncate(1.235,2),ceil(5.2),floor(2.1), least(1.89,3,6.1,2.1);


2、聚合函数

avg()                                    返回指定列的平均值
count()                                 返回指定列中非NULL值的个数
min()                                   返回指定列的最小值
max()                                   返回指定列的最大值
sum(x)                                  返回指定列的所有值之和SELECT avg (Sales) FROM Store_Info;
SELECT count(Store_Name) FROM Store_Info;
SELECT count(DISTINCT Store_Name) FROM Store_Info;
SELECT max(Sales) FROM Store_Info;
SELECT min(Sales) FROM Store_Info;
SELECT sum(Sales) FROM Store_Info;






3、字符串函数

trim()                           返回去除指定格式的值
concat(x,y)                     将提供的参数x和y拼接成一个字符串
substr(x,y)                     获取从字符串x中的第y个位置开始的字符串,跟substring() 函数作用相同
substr(X,y,z)                   获取从字符串x中的第y个位置开始长度为z的字符串
length(x)                       返回字符串x的长度
replace(x, y,z)                 将字符串z替代字符串x中的字符串y
upper(x)                        将字符串x的所有字母变成大写字母
lower(x)                        将字符串x的所有字母变成小写字母
left(x,y)                       返回字符串x的前y个字符
right(x,y)                      返回字符串x的后y个字符
repeat(8,y)                     将字符串x重复y次
space(x)                        返回x个空格
strcmp(x,y)                     比较x和y,返回的值可以为-1,0,1
reverse(x)                      将字符串x反转
SELECT TRIM ([ [位置] [要移除的字符串] FROM ]字符串);
#[位置]:的值可以为LEADING (起头),TRAILING (结尾),BOTH (起头及结尾)。
#[要移除的字符串]:从字串的起头、结尾,或起头及结尾移除的字符串。缺省时为空格。SELECT TRIM(LEADING 'Ne' FROM 'New York');


SELECT concat(Region,Store_Name) FROM location WHERE Store_Name='Boston' ;#如sql_ mode开启开启了PIPES_AS_CONCAT,"||"视为字符串的连接操作符而非或运算符,和字符串的拼接函数Concat相类似,这和Oracle数据库使用方法一样的
SELECT Region || ' '|| Store_Name FROM location WHERE Store Name ='Boston';


SELECT substr(Store_Name,3) FROM location WHERE Store_Name = 'Los Angeles';
SELECT substr(Store_Name,2,4) FROM location WHERE Store_Name='New York';


SELECT Region, length (Store_Name) FROM location;

SELECT REPLACE (Region,'ast', 'astern') FROM location;

 select Region,upper(Store_name) from location;

select Region,lower(Store_name) from location;

select Region,left(store_name,5) from location;

select Region,right(store_name,4) from location;

select Region,repeat(store_name,3) from location;

MysQL高级SQL语句|进阶语句|select语句(一)【图文细解】相关推荐

  1. MySQL高级SQL语句(终章)

    目录 一:通配符 1.1查询名字是有开头的记录 1.2查询名字里是贝和摩中间有一个字符的记录 1.3查看贝后面3个字符的名字记录 1.4通配符%和_结合使用 二:子查询 2.1相同表查询 2.2不同表 ...

  2. 【MySQL数据库】MySQL 高级SQL 语句一

    @[TOC](MySQL 高级SQL 语句 一.MySQL 高级SQL 语句 1.1select -显示表格中一个或数个字段的所有数据记录 1.2distinct不显示重复的数据记录 1.3where ...

  3. SQL语句--INSERT INTO SELECT 语句用法示例

    通过 SQL,您可以从一个表复制信息到另一个表. INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中. SQL INSERT INTO SELECT 语句 I ...

  4. 将insert语句转化为select语句,进行校验,验证是否插入成功

    前言   公司的测试和运维不太懂sql,每次将sql文件交给他们到测试或者生产数据库中执行sql的时候,他们都是全部执行,不看是否执行成功.因此,就会导致有些insert语句没有执行成功,等到功能验证 ...

  5. SELECT语句定义和Select语句完整的执行顺序

    SELECT语句定义: 一个完成的SELECT语句包含可选的几个子句.SELECT语句的定义如下:<SELECT clause> [<FROM clause>] [<WH ...

  6. MySQL高级SQL语句(开端)

    目录 一:order by-按关键字排序 1.1语法格式 1.2升序 1.3降序 1.4根据过滤的条件来降序 1.5指定俩条列来进行排序 二:AND/OR-区间判断 2.1语法格式 2.2显示分数大于 ...

  7. mysql叠加select,MySQL – 有效地将两个select语句组合成一个...

    您可以将多个查询与UNION组合,但前提是查询具有相同的列数.理想情况下,列不仅在数据类型中,而且在于它们的语义含义;但是,MySQL并不关心语义,并且会通过强制转换为更通用的东西来处理不同的数据类型 ...

  8. MySQL导入selectclass文件_MySQL执行Select语句将结果导出到文件的方法 – 疯狂的蚂蚁...

    然而也会遇到的场景是,需要执行一个SQL语句,然后将SQL语句的结果输出到文件: 方法一:使用MySQL的select * into outfile '/tmp/rs.txt' from tb_nam ...

  9. SQL Server 2000优化SELECT语句方法

    本文是SQL Server SQL语句优化系列文章的第一篇.该系列文章描述了在Micosoft's SQLServer2000关系数据库管理系统中优化SELECT语句的基本技巧,我们讨论的技巧可在Mi ...

最新文章

  1. 目标检测推理部署:优化和部署
  2. active server pages 错误 asp 0126_微信小程序全栈开发课程【视频版】2.1 小程序前端页面初始配置、ESlint格式错误...
  3. Setting property 'source' to 'org.eclipse.jst.jee.server:hczm' did not find a matching property
  4. 阮一峰react demo代码研究的学习笔记 - demo5 debug
  5. 前端学习(3088):vue+element今日头条管理-关于接口的使用(有声版)
  6. Java 装箱和拆箱
  7. spring学习笔记02-spring-bean创建的细节问题
  8. Python reduce 函数 - Python零基础入门教程
  9. Java图形界面设计——substance皮肤
  10. 空心点_空心水泥砖的多种花园用途,总有一款GET你的点!
  11. 如何在服务器中安装mysql 以及安装禅道
  12. uniapp 打包成微信小程序
  13. 管家婆辉煌 经营历程 Date exceeds maximum of 19-12-31 报错解决办法
  14. Docker容器dockerfile构建镜像
  15. lda指令是什么意思_lda指令什么意思
  16. pmv计算c语言软件,晨光暖通计算工具
  17. ueditor编辑器上传图片的显示问题
  18. 高二计算机水平测试题,2020——2021学年河南省高二学业水平测试信息技术选择判断模拟题(含答案)...
  19. CISP证书对个人求职有帮助吗?
  20. 微机原理——8086系统的概述与引脚介绍

热门文章

  1. caputo分数阶导数程序_基于Caputo导数的分数阶非线性振动系统响应计算
  2. Git码云安装与使用
  3. 大话腾讯App性能测试工具GT
  4. apache常见错误:VC运行库(找不到 VCRUNTIME140.dll)
  5. 求N分之一序列前N项和
  6. 上传excel到服务器端,并写入到mssql数据库
  7. 海外众筹如何通过邮件营销?
  8. oppoR17手机计算机的隐藏功能,小技巧隐藏大“智慧”,原来OPPO R17还有这些实用功能...
  9. Maxthon广告猎手规则,简简单单屏蔽广告
  10. unix服务器系统安装教程,unix ftp服务器安装教程