MySQL高级进阶sql语句总结大全

MySQL高级进阶SQL语句总结大全

这篇文章主要介绍MySQL高级进阶SQL语句的总结大全,包括常用的高级SQL语句的使用方法和示例。

一、排序

1.1 ORDER BY

  • 用法:ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ... [ASC|DESC]
  • 示例:假设有一个student表,其中包含3个字段,分别为id(学生编号)、name(姓名)和age(年龄),如果要按照age从大到小的顺序和id从小到大的顺序排列,则可以这样写:
SELECT * FROM student ORDER BY age DESC, id ASC;

1.2 GROUP BY

  • 用法:GROUP BY column1, column2, ...
  • 示例:假设有一个score表,其中包含3个字段,分别为id(学生编号)、subject(科目)和score(分数),如果要按照subject分组,并统计每个分组内的总分数,则可以这样写:
SELECT subject, SUM(score) AS total_score FROM score GROUP BY subject;

二、子查询

2.1 IN / NOT IN

  • 用法:SELECT column1, column2, ... FROM table_name WHERE column_name [NOT] IN (SELECT column_name FROM table_name WHERE condition)
  • 示例:假设有一个score表和一个student表,其中score表包含3个字段(id、subject、score),student表包含2个字段(id、name),如果要查询所有选了数学(Math)课的学生信息,则可以这样写:
SELECT * FROM student WHERE id IN (SELECT id FROM score WHERE subject = 'Math');

2.2 EXISTS / NOT EXISTS

  • 用法:SELECT column1, column2, ... FROM table_name1 WHERE [NOT] EXISTS (SELECT column_name FROM table_name2 WHERE condition)
  • 示例:假设有一个score表和一个student表,其中score表包含3个字段(id、subject、score),student表包含2个字段(id、name),如果要查询所有有成绩记录的学生信息,则可以这样写:
SELECT * FROM student WHERE EXISTS (SELECT id FROM score WHERE id = student.id);

三、连接

3.1 JOIN

  • 用法:SELECT column1, column2, ... FROM table_name1 JOIN table_name2 ON condition
  • 示例:假设有一个score表和一个student表,其中score表包含3个字段(id、subject、score),student表包含2个字段(id、name),如果要查询每个学生选了哪些课以及各自的分数,则可以这样写:
SELECT student.name, score.subject, score.score
FROM student JOIN score ON student.id = score.id;

3.2 LEFT JOIN

  • 用法:SELECT column1, column2, ... FROM table_name1 LEFT JOIN table_name2 ON condition
  • 示例:假设有一个student表和一个score表,其中student表包含2个字段(id、name),score表包含3个字段(id、subject、score),如果要查询所有学生的信息以及他们选的课程和成绩(如果没有成绩,则分数为0),则可以这样写:
SELECT student.name, IFNULL(score.subject, 'N/A') AS subject, IFNULL(score.score, 0) AS score
FROM student LEFT JOIN score ON student.id = score.id;

四、函数

4.1 COUNT

  • 用法:SELECT COUNT(column_name) FROM table_name WHERE condition
  • 示例:假设有一个score表,其中包含3个字段,分别为id、subject和score,如果要查询选了数学课的学生人数,则可以这样写:
SELECT COUNT(DISTINCT id) FROM score WHERE subject = 'Math';

4.2 AVG

  • 用法:SELECT AVG(column_name) FROM table_name WHERE condition
  • 示例:假设有一个score表,其中包含3个字段,分别为id、subject和score,如果要查询数学课的平均成绩,则可以这样写:
SELECT AVG(score) FROM score WHERE subject = 'Math';

以上就是MySQL高级进阶SQL语句的总结大全,希望能对大家的学习有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL高级进阶sql语句总结大全 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 05【掌握】 SpringBoot 清空Redis所有缓存

    package top.yangbuyi.system.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.sp…

    Redis 2023年4月11日
    00
  • linux正确重启MySQL的方法

    下面是关于“Linux正确重启MySQL的方法”的详细攻略: 1. 停止MySQL服务进程 在重新启动MySQL之前,需要停止当前正在运行的MySQL服务进程。可以通过下面两种命令之一来实现: sudo systemctl stop mysql 或者 sudo service mysql stop 这两种命令都会停止MySQL服务进程,并使其不再运行。 2.…

    database 2023年5月22日
    00
  • Transact_SQL 小手册

    下面是“Transact_SQL 小手册”的完整攻略。 Transact_SQL 小手册 简介 Transact-SQL(简称 T-SQL)是微软 SQL Server 数据库的 SQL 语言扩展。本手册是关于 T-SQL 的介绍和参考,适合于 T-SQL 初学者和有经验的开发人员。 数据类型 T-SQL 支持以下主要数据类型: 整数:int、bigint、…

    database 2023年5月21日
    00
  • SQL小技巧 又快又简单的得到你的数据库每个表的记录数

    以下是详细的攻略: SQL小技巧:又快又简单的得到你的数据库每个表的记录数 在开发数据库应用程序时,我们常常需要获取数据库中各个表的记录数。虽然这看起来是个简单的任务,但实际上需要编写冗长且低效的代码。在这个基础上,我们将介绍两种SQL小技巧,可以轻松地获得数据库每个表的记录数。 方法一:使用系统表信息_schema.tables MySQL和Postgre…

    database 2023年5月22日
    00
  • centos 7安装mysql5.5和安装 mariadb使用的命令

    安装 MySQL 5.5 首先,我们需要在 CentOS 7 中安装 remi-release 和 epel-release 源。 yum install epel-release yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 接着,我们需要启用 remi 源中…

    database 2023年5月22日
    00
  • Oracle怎么删除数据,Oracle数据删除的三种方式

    Oracle怎么删除数据 在Oracle中,数据删除有三种方式:DELETE、TRUNCATE和DROP。这三种方式功能不同,使用时需谨慎。 DELETE语句删除数据 DELETE语句是用来删除表中的数据的,其中可以带WHERE子句。如果不带WHERE子句,则删除整个表中的所有行。 DELETE语句的语法如下所示: DELETE FROM table_nam…

    database 2023年5月21日
    00
  • 一条sql详解MYSQL的架构设计详情

    一条sql详解MYSQL的架构设计详情 MySQL是目前流行的关系型数据库管理系统,它的架构设计包含了多个组件构成的整体。要深入理解MySQL的架构设计,需要从客户端发起的一条SQL语句开始,分析整个系统的处理过程。 1. SQL语句的解析 MySQL客户端发送一条SQL语句到MySQL服务器时,首先需要进行SQL语句解析。MySQL的解析器可以将SQL语句…

    database 2023年5月19日
    00
  • mybatis单笔批量保存实体数据的方法

    一、概述 mybatis 是一个优秀的 ORM 框架,提供了单笔保存实体数据的方法,也支持批量保存实体数据的方法。批量保存实体数据要比单笔保存实体数据的效率高,因为避免了频繁连接数据库以及频繁提交 SQL 的开销。本文将详细讲解 mybatis 单笔批量保存实体数据的方法。 二、单笔保存实体数据 单笔保存实体数据的方法比较简单,代码如下: Integer s…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部