mysql desc select_MySQL的select详细介绍

2023-11-20 22:50

本文主要是介绍mysql desc select_MySQL的select详细介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MySQL 查询数据

MySQL 数据库使用SQL SELECT语句来查询数据。

你可以通过 mysql> 命令提示窗口中在数据库中查询数据

语法

以下为在MySQL数据库中查询数据通用的 SELECT 语法:

SELECT column_name,column_name

FROM table_name

[WHERE Clause]

[LIMIT N][ OFFSET M]

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

SELECT 命令可以读取一条或者多条记录。

你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据

你可以使用 WHERE 语句来包含任何条件。

你可以使用 LIMIT 属性来设定返回的记录数。

你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

建一张表用于我们测试:

create table student

(

ids int auto_increment primary key,

name varchar(20),

chinese float,

english float,

math float

);

插入如下数据:

insert into student values(1,'李明',89,78,90);

insert into student values(2,'乘风',67,89,56);

insert into student values(3,'南宫流云',87,78,77);

insert into student values(4,'南宫皓月',88,98,90);

insert into student values(5,'南宫紫月',82,84,67);

insert into student values(6,'萧炎',55,85,45);

insert into student values(7,'林动',75,65,30);

aca503ef7ed0acb7a4625c711aafd6ab.png

1、指定查询列

mysql> select id,name,chinese from student;

e85cbb3d50699d81e46be52acf4d8141.png

2、去重查询

用distinct关键字, 如果结果中有完全相同的行,就去除重复行

mysql> select distinct math from student;

82fc2649686f79552284b166c0f3eb75.png

3、select语句中进行运算

查询学生总成绩

mysql> select id,name,(chinese+math+english) as 总成绩 from student;

43033ca80171321a358b4acbe20ddfe1.png

查询所有姓南宫人的总成绩。

mysql> select id,name,(chinese+math+english) as 总成绩 from student

-> where name like '南宫%';

8b1226f66cd87952fb4ca1c63bcdee6d.png

4、where查询过滤

在where子句中有很多经常使用的运算符,如下:

b458ffaa9ab0ce18df5754a6bcdd0af3.png

(1)查询所有英语成绩大于90的同学成绩:

mysql> select id,name,english as 英语 from student

-> where english > 90;

5e9bc647604bd0bddad45b233a74b540.png

(2)查询所有总分大于200分的同学

注意:where子句后不能用别名

因为数据库中先执行where子句,再执行select子句。

mysql> select id,name,(chinese+math+english) as 总成绩 from student

-> where (chinese+math+english) > 200;

2b23acfaaffa6942597d1b2ed89925ee.png

(3)查询姓林并且id大于6的学生信息

mysql> select id,name from student

-> where name like '林%' and id >6;

6566db06d34ace0020dd8e43c625c954.png

(4)查询英语成绩大于语文成绩的同学

mysql> select id,name from student

-> where english > chinese;

25d7f2f20334151d46b474cbdb136861.png

(5)查询所有总分大于200并且数学成绩小于语文成绩的学生信息

mysql> select id,name from student

-> where (chinese+math+english) >200 and math < chinese;

1aa8d0b459092f36dbe0e25dfab197c6.png

(6)查询所有英语成绩在80到90分的同学

方法一:

mysql> select id,name,english from student

-> where english >=80 and english <= 90;

a69b04c554b55bbc0e10b6fe616430fc.png

方法二:

注意:between是闭区间

mysql> select id,name,english from student

-> where english between 80 and 90;

f0c56fd68e79b806be6cca532d33ebd1.png

(7)查询数学成绩为89,90,91的同学信息

or:

mysql> select id,name,math from student

-> where math=89 or math=90 or math=91;

eaf2bfdffd76e0ac03f83ea9a81a73ce.png

in:

mysql> select id,name,math from student

-> where math in(89,90,91);

0651bc764b9ecfc0dd37d5607385f18b.png

5、order by排序语句

asc升序(默认),desc降序

order by 子句应该位于select语句的结尾

eg:对数学成绩进行排序

默认升序:

mysql> select id,name,math from student

-> order by math;

6238ec8a64657f05fc5833b5ba7544d5.png

降序:

mysql> select id,name,math from student

-> order by math desc;

46b77d024127a28f39bd0fcb250d3af4.png

对总分进行从高到低输出

mysql> select (chinese+math+english) as 总成绩 from student

-> order by 总成绩 desc;

93fcca79bc2d4d82bc8b19e2da13a788.png

6、常用函数

(1)count()

count(*)统计null值 count(列名)排除null值

eg :统计当前student表中一共有多少学生

mysql> select count(*) as 人数 from student;

0d3065c40d220b9c76da2c5dfd695350.png

(2)sum()

eg:统计一个班数学总成绩

mysql> select sum(math) as 数学总成绩 from student;

0b655e28007d319d243436d5c634ec18.png

(3)平均值:avg()

求数学的平均值

mysql> select sum(math)/count(*) as 数学平均值 from student;

2e27db02956042fe26012267a2387606.png

mysql> select avg(math) as 数学平均值 from student;

0459cf9869d465df166026b7640e3a13.png

7、group by 子句的使用

假设有一个职工信息表,

EMP:表名 ;部门:depton;sal:工资;job:工作

我们设想:

(1)显示每个部门的平均工资和最高工资

select deptno,avg(sal),max(sal) from EMP group by deptno;

(2)显示每个部门的每种岗位的平均工资和最低工资

select avg(sal),min(sal),job, deptno from EMP group by deptno, job;

补充:首先按照deptno分组,然后各组再按照job进行分组。

(3)显示平均工资低于2000的部门和它的平均工资

解题思路:

1. 统计各个部门的平均工资

select avg(sal) from EMP group by deptno

2. having往往和group by配合使用,对group by结果进行过滤

select avg(sal) as myavg from EMP group by deptno having myavg<2000;

这篇关于mysql desc select_MySQL的select详细介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/398018

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}