MYSQL高级语句

这篇具有很好参考价值的文章主要介绍了MYSQL高级语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验用表

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 |
+--------------+---------+------------+

MYSQL高级语句

 

 查询某个表某个字段

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);

MYSQL高级语句

 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或多个字符

_:下划线代表单个字符

MYSQL高级语句

匹配洛杉矶

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;

函数

MYSQL高级语句

 数学函数

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.。。。)返回集合中最小的值,也可以是多个字段的最小值

MYSQL高级语句

 聚合函数:

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

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

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

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

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

MYSQL高级语句

 字符串函数

trim()

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

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

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

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

两个字符串拼接

法一

MYSQL高级语句

MYSQL高级语句

 法二或者

先修改配置文件sql_mode

MYSQL高级语句

i=12345678 分片出4

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

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

mysql下标从1开始

MYSQL高级语句

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

MYSQL高级语句

 select store_name,length(store_name) from location;

截取长度

MYSQL高级语句

 替换

MYSQL高级语句

 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前

MYSQL高级语句

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

sql语句的执行顺序

MYSQL高级语句

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

MYSQL高级语句

表的别名

MYSQL高级语句

 子查询语句,表连接,在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 (右链接)返回包含右表中的所有记录的和坐标中有联机字段相同的记录。

MYSQL高级语句

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

 MYSQL高级语句

lift join 和 right join

MYSQL高级语句

 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

MYSQL高级语句using(字段名)去重

 子查询语句求交集

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

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

MYSQL高级语句

MYSQL高级语句

 MYSQL高级语句

 总结 

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;文章来源地址https://www.toymoban.com/news/detail-438352.html

到了这里,关于MYSQL高级语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL高级语句(一)

    显示表格中一个或数个栏位的所有资料 语法:SELECT \\\"字段\\\" FROM \\\"表名\\\"; 不显示重复的内容 语法:SELECT DISTINCT \\\"字段\\\" FROM \\\"表名\\\"; 条件查询 语法:SELECT \\\"字段\\\" FROM \\\"表名\\\" WHERE \\\"条件\\\"; 代表且、或、和的意思 语法:SELECT \\\"字段\\\" FROM \\\"表名\\\" WHERE \\\"条件1\\\" {[AND|OR] \\\"条件2\\\"}; 显示已知的值的

    2024年02月05日
    浏览(32)
  • MYSQL高级语句

    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   | |----------+--------------| | Eas

    2024年02月03日
    浏览(22)
  • MySQL高级(进阶)SQL语句

    #显示一个字段或者多个字段的所有内容 SELECT “字段” FROM 表名 ; #distinct对字段去重查询 (最好只对单个字段进行去重) SELECT DISTINCT 字段名 FROM 表名 #where 有条件查询 SELECT “字段” FROM 表名 WHERE 条件(例如:sales =!= 100); #and or 查看多个条件 SELECT “字段” FROM 表名 WHE

    2024年02月05日
    浏览(28)
  • mysql高级sql语句-全面

    显示表格中一个或数个字段的所有数据记录 在已知的字段数据取值范围内取值 在两个字段数据值之间取值,包含两边字段的数据 通常通配符都是与like配合使用的 % :百分号表示零个、一个或多个字符 _ :下划线表示单个字符 名称 作用 举例 ‘A_Z’ 所有以 ‘A’ 起头,另一

    2024年02月11日
    浏览(27)
  • MySQL 高级(进阶) SQL 语句

     创建两表以供使用   ---- SELECT ----显示表格中一个或数个字段的所有数据记录 ---- DISTINCT ----不显示重复的数据记录 ---- WHERE ----有条件查询 ---- AND OR ----且 或 ---- IN ----显示已知的值的数据记录 ---- BETWEEN ----显示两个值范围内的数据记录(包含边界值) ---- 通配符 ----通常通配

    2024年02月10日
    浏览(34)
  • 【MySQL系列】使用 ALTER TABLE 语句修改表结构的方法

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年04月10日
    浏览(35)
  • MySQL数据库高级查询语句

    基于这两个数据库表格来实现以下实验 concat(x,y)将提供的参数x和y拼接成一个字符串 trim()返回去除指定格式的值 GROUP BY 有一个原则,凡是在 GROUP BY 后面出现的字段,必须在 SELECT 后面出现; 凡是在 SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在 GROUP BY 后

    2024年02月11日
    浏览(46)
  • MySQL数据库管理高级语句

    复制表及内容     克隆表 获取数据表的表结构、索引等信息    清空表,删除表内的所有数据       删除的特点: 创建临时表 临时表创建成功之后,使用SHOWTABLES命令是看不到创建的临时表的, 临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查

    2024年02月11日
    浏览(47)
  • MySQL数据库——高级查询语句

    数据库是用来存储数据,更新,查询数据的工具,而查询数据是一个数据库最为核心的功能,数据库是用来承载信息,而信息是用来分析和查看的。所以掌握更为精细化的查询方式是很有必要的。本文将围绕数据的高级查询语句展开。 1.指定指字段进行查询——SELECT 语法:

    2024年02月11日
    浏览(70)
  • MySQL 高级(进阶) SQL 语句二

    MYSQL数据库中的三种连接: inner join(内连接):只返回两个表中联结字段相等的行(有交集的值) left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录 注:oracle数据库支持 outer

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包