当前位置: 首页 > article >正文

MySQL(四)MySQL Select语句

1. MySQL Select语句

1.1. 基本查询语句

mysql>select 列名 from 表名;(基本结构查询某一列)
mysql>select 列名1,列名2 from 表名;(查询所有列多列)
mysql>select * from 表名;(*代表查询所有列)
查询时可以给列设定别名通过as 关键字,别名可以是汉字,使用汉字需要加双引号
从查询结果中删除重复行 distinct; select distinct 列名 from 表名
mysql>select 列名 from 表名 where 条件表达式;(只查询符合表达式的数据)
例如:select goods_name from goods where goods_type=‘服装’;

  (1)基本查询结构

mysql>select 列名 from 表名;(基本结构查询某一列)
mysql>select 列名1,列名2 from 表名;(查询所有列多列)
mysql>select * from 表名;(*代表查询所有列)

在这里插入图片描述
  (2)列设定别名

查询时可以给列设定别名通过as 关键字,别名可以是汉字,使用汉字需要加双引号(为了防止有特殊字符)
mysql> select goods_name as "商品名称",goods_price from goods;
从查询结果中删除重复行 distinct; select distinct 列名 from 表名
mysql>select 列名 from 表名 where 条件表达式;(只查询符合表达式的数据)
例如:select goods_name from goods where goods_type=‘服装’;

在这里插入图片描述
  (3)删除查询重复行

从查询结果中删除重复行 distinct; select distinct 列名 from 表名
mysql>select 列名 from 表名 where 条件表达式;(只查询符合表达式的数据)
例如:mysql> select goods_name from goods where goods_price=12;

在这里插入图片描述

1.2. 查询基础-基本运算符

  (1)查询过程中可以使用算数运算符,查询价格2 goods_price2,获取价格两倍的数据(也可以使用括号改变计算优先级(1+2)*3)
在这里插入图片描述
  (2)where语句后面可以使用比较运算符,例如查询价格大于100的商品 where goods_price>100;(大于等于或者小于等于的时候不等号在左,等号在右面,>=)。
  另外比较常用的还有like模糊查询(若前面有字为 %like),in多个条件查询
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
  (3)where语句后面可以使用逻辑运算符,and和or关键字。对多个表达式进行组合例如(where goods_price>100 and goods_type=’服装’,where goods_price>100 or goods_price<20)
在这里插入图片描述

1.3. 查询基础-聚合查询

1.3.1. 聚合函数

  (1)count计算表中的记录数;

select count(列名) from 表名

在这里插入图片描述

  (2)sum计算表中数值列的数据合计值;

select sum(列名) from 表名

在这里插入图片描述

  (3)avg计算数值列平均值;

select avg(列名) from 表名

在这里插入图片描述

  (4)max筛选出列中数据最大值;

select max(列名) from 表名

在这里插入图片描述

  (5)min筛选出列中数据最小值;

select min(列名) from 表名

在这里插入图片描述

  (6)sum和avg只针对数值列,max和min可以对任意列使用,例如日期或者字符列;
在这里插入图片描述

  (7)聚合函数也可以使用distinct删除重复值

select count(distinct 列名) from 表名

在这里插入图片描述

1.3.2. 分组查询

  对查询出的列数据进行分组:group by语句,语句结构:

select 列名1,列名2,.. from 表名 group by 列名1,列名2,...

语句书写顺序:

select-from-group by

执行顺序

from-group by-select

在这里插入图片描述

1.3.3. 数据过滤

  使用having子句对分组后的数据过滤:having结构:

select 列名1,列名2,... from 表名 group by 列名1,列名2,... having 分组结果对应条件

在这里插入图片描述

1.4. 排序查询

  (1)对查询结果进行排序,order by语句,语句结构:

select 列名1,列名2,...from 表名order by 排序基准列1,排序基准列1,...

  未指定order by的时候select语句的顺序是未知的
在这里插入图片描述

  (2)指定升序和降序:desc关键字降序排列,asc是升序,不写时默认升宁例句:

order by 排序基准列1 asc,排序基准列2 desc

在这里插入图片描述

1.5. 多表查询

  (1)inner join(内连接)将左表的所有数据分别与右表的每条数据进行连接组合,返回结果为同时满足左右表联接条件的数据。
在这里插入图片描述

  (2)left join(左外连接)返回的结果除内连接的数据外,还有左表中不符合条件的数据,并在右表的相应列中填上null值。
在这里插入图片描述

  (3)right join(右外连接)返回的结果除了内连接的数据外,还有右表中不符合条件的数据,并在左表相应的列中填上null值。
在这里插入图片描述

  (4)full join(全连接)返回的结果除了内连接的数据外,还有两个妻中不符合条件的数据,并在左表或者右表的相应列中填上null值。(MYSQL不支持,很少使用)
在这里插入图片描述


http://www.kler.cn/a/467802.html

相关文章:

  • 【JVM】总结篇-类的加载篇之 类的加载器 和ClassLoader分析
  • 常用的数据结构API概览
  • HTML——56.表单发送
  • 【shell编程】报错信息:Non-zero Exit Status(包含7种解决方法)
  • 在Linux中,如何查看和修改网络接口配置?
  • 框架Tensorflow2
  • RISC-V学习笔记
  • QML自定义数值编辑框SpinBox样式
  • 基于mysql数据库实现分布式锁
  • 73 mysql replication 集群的交互
  • Python 数据结构揭秘:栈与队列
  • HDFS块预留导致的存储空间异常的问题探究
  • python.exe无法找到程序入口 无法定位程序输入点(Anaconda Prompt报错)
  • 基于JAVA+SpringBoot+Vue的校园外卖服务系统
  • 无刷电机驱动板原理图解析
  • LinuxC高级day2
  • 模型训练二三事:参数个数、小批量、学习率衰减、输入形状
  • 044_Standalone App in Matlab中发布独立应用
  • [网络安全]sqli-labs Less-3 解题详析
  • vue elementUI Plus实现拖拽流程图,不引入插件,纯手写实现。
  • Vue的data和methods
  • 面试题解,Java中的“字节码”剖析
  • HP 电脑开机黑屏 | 故障判断 | BIOS 恢复 | BIOS 升级
  • 改善 Kibana 中的 ES|QL 编辑器体验
  • 智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之20 再次重建 之5 项目文件三大部 整“拼”项目文档总述
  • vs 2022 中xml 粘贴为Class 中,序列化出来的xml 的使用