news 2026/5/26 20:45:28

MySQL 查询数据_笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 查询数据_笔记
SELECT —— 查询数据
  • 语法
    -- mysql数据库中查询数据通用的SELECT语法 SELECT column1,column2,.... FORM table_name [WHERE condition] [ORDER BY column_name[ASC|DESC]] [LIMT number] -- column1,column2,...是想要选择的列的名称,如果使用*表示选择所有列。 -- table_name 是要从中查询数据的名称 -- WHERE condition 是一个可选的子句,用于指定过滤条件,只返回符合条件的行 -- ORDER BY column_name[ASC|DESC]是一个可选的子句,用于指定结果集的排序顺序,默认升序(ASC) -- LIMIT number 是一个可选的子句,用于限制返回的行数
  • WHWRE 子句

    从MySQL表中使用SELECT语句来读取数据,如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句中。WHERE子句用于在MySQL中过滤查询结果,只返回满足特定条件的行。

    • 语法

      -- SQL SELECT 语句使用WHERE子句从数据表中读取数据的通用语法 SELECT column1,column2,... FORM table_name WHERE condition;
      • 更多说明

        1. 查询语句中可以使用一个或者多个表,表之间使用逗号,分割,并使用WHERE语句来设定查询条件。
        2. 可以在WHERE子句中指定任何条件
        3. 可以使用AND或者OR指定一个或多个条件
        4. WHERE子句也可以运用于SQL的DELETE或者UPDATE命令
        5. WHERE子句类似于程序语言中的if条件,根据MySQL表中的字段值来读取指定的数据
      • 简单实例

        -- 1.等于条件 SELECT * FROM users WHERE username = 'test'; -- 2.不等于条件 SELECT * FROM users WHERE username != 'runoob'; -- 3.大于条件 SELECT * FROM products WHERE price > 50.00; -- 4.小于条件 SELECT * FROM orders WHERE order_date <'2023-01-01'; -- 5.大于等于条件 SELECT * FROM employees WHERE salary >= 50000; -- 6.小于等于条件 SELECT * FROM students WHERE age <= 21; -- 7.组合条件(AND,OR) *** SELECT * FROM products WHERE category='Electronics' AND price >100.00; -- 8.模糊匹配条件(LIKE) *** SELECT * FROM customers WHERE frist_name LIKE 'J%'; -- 9.IN 条件 SELECT * FROM countries WHERE country_code IN('US','CA','MX'); -- 10.NOT 条件 SELECT * FROM products WHERE NOT category = 'Colthing';

      – 11.BETWEEN条件 ***
      SELECT * FROM orders WHERE order_date BETWEEN ‘2023-01-01’ AND ‘2023-12-31’;
      – 12.IS NULL 条件
      SELECT * FROM customers WHERE email IS NOT NULL;

  • LIKE 子句

    LIKE 子句中使用百分号 % 字符来表示任意字符,类似于UNIX或正则表达式中的星号*。

    如果没有使用百分号%,LIKE子句与等号 = 的效果是一样的。

    • 语法

      -- SQL SELECT 语句使用LIKE子句数据表中读取数据的通用语法。

    SELECT column1,column2,…
    FROM table_name WHERE column_name LIKE pattern;

    – column_name 是你要应用LIKE 子句的列的名称
    – pattern 是用于匹配的模式,可以包含通配符。

    - **更多说明** 1.你可以在WHERE子句中指定任何条件 2.你可以在WHERE子句中使用LIKE子句 3.你可以使用LIKE子句代替等号= 4.LIKE通常与%一同使用,类似于一个元字符的搜索 5.你可以使用AND或者OR指定一个或多个条件 6.你可以在DELETE或UPDATE命令中WHERE....LIKE子句来指定条件 - **实例** ```mysql -- 1.百分号通配符 % -> %通配符表示零个或多个字符,例如,'a%'匹配以字母'a'开头的任何字符串。 SELECT * FROM customers WHERE last_name LIKE 'S%'; -- 2.下划线通配符 _ -> _通配符表示一个字符。例如,'_r%'匹配第二个字符为'r'的任何字符串。 SELECT * FROM products WHERE product_name LIKE '_a%'; -- 3.组合使用 % 和_; -> 例如,'aaron','apol' SELECT * FROM users WHERE username LIKE 'a%o_'; -- 4.不区分大小写的匹配 SELECT * FROM employees WHERE last_name LIKE 'smi%'COLLATE utf8mb4_general_ci; ```
  • UNION 操作符

    UNION 操作符用于连接两个以上的SELECT语句的结果组合到一个结果集合,并去除重复的行

    UNION 操作符必须由两个或多个SELECT语句组成,每个SELECT语句的列数和对应位置的数据类型必须相同。

    • 语法

      -- UNION 操作符语法格式

    SELECT column1,column2,… FROM table1 WHERE condition1 UNION SELECT column1,column2,… FROM table2 WHERE condition2 [ORDER BY column1,column2,…];

  • ORDER BY(排序)语句

    ORDER BY(排序)语句可以按照一个或多个列的值进行升序(ASC)或降序(DESC)排序。

    • 语法

      以下是SELECT语句使用ORDER BY子句将查询数据排序后再返回数据

      SELECT column1,column2,... FROM table_name ORDER BY column1[ASC|DESC],column2[ASC|DESC],...; -- ORDER BY column1[ASC|DESC],column2[ASC|DESC],... 是用于指定排序顺序的子句。ASC表示升序(默认),DESC表示降序。
    • 更多说明

      1. 可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
      2. 可以设定多个字段来排序
      3. 可以使用ASC或DESC关键字来设置查询结果是按升序或降序排序。默认情况下,它是按升序排序。
      4. 你可以添加WHERE…LIKE子句来设置条件。
    • 实例

      1. 单列排序

        SELECT * FROM products ORDER BY product_name ASC -- 选择产品表 products 中的所有产品,并按产品名称升序 ASC 排序。
      2. 多列排序

        SELECT * FROM employess ORDER BY department_id ASC,hire_data DESC; -- 选择员工表 employees 中的所有员工,并先按部门 ID 升序 ASC 排序,然后在相同部门中按雇佣日期降序 DESC 排序。
      3. 使用数字表示列的位置

        SELECT first_name,last_name,salary FROM employess ORDER BY 3 DESC,1 ASC -- 选择员工表 employees 中的名字和工资列,并按第三列(salary)降序 DESC 排序,然后按第一列(first_name)升序 ASC 排序。
      4. 使用表达式排序

        SELECT product_name,price * discount_rate AS discounted_price FROM products ORDER BY discounted_price DESC; -- 选择产品表 products 中的产品名称和根据折扣率计算的折扣后价格,并按折扣后价格降序 DESC 排序。
  • GROUP BY 语句

    GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用COUNT,SUM,AVG等函数。

    GROUP BY语句是SQL查询中用于汇总和分析数据的重要工具,尤其在处理大量数据时,它能够提供有用的汇总信息。

    • 语法

      SELECT column1,aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1; -- column1 指定分组的列 -- aggregate_function(column2) 对分组后的每个组执行的聚合函数。 -- table_name 要查询的表名 -- condition 可选,用于筛选结果的条件
    • 实例

      -- 假设有一个名为 orders 的表,包含以下列:order_id、customer_id、order_date 和 order_amount。按照 customer_id 进行分组,并计算每个客户的订单总金额。 SELECT customer_id ,SUM(order_amount) AS total_amount FROM orders GROUP BY customer_id;
  • MySQL 连接的使用

    使用MySQL 的JOIN在两个或多个表中查询数据

    JOIN按照功能大致分为如下三类:

    • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录

      -- INNER JOIN 返回两个表中满足连接条件的匹配行 SELECT column1,column2,...FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; -- table1.column_name = table2.column_name 是连接条件,指定了两个表中用于匹配的列。
    • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。

      -- LEFT JOIN 返回左表的所有行,并包括右表中匹配的行,如果右表中没有匹配的行,将返回 NULL 值 SELECT column1,column2,... FROM table1 LEFT JOIN table2 ON table1.column_name = table2.coumn_name;
    • RIGHT JOIN(右连接):与LEFT JOIN相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

      -- RIGHT JOIN 返回右表的所有行,并包括左表中匹配的行,如果左表中没有匹配的行,将返回 NULL 值 SELECT column1,column2,... FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 8:37:55

从Git安装到运行FLUX.1-dev:新手避坑指南

从Git安装到运行FLUX.1-dev&#xff1a;新手避坑指南 在AI生成图像的热潮中&#xff0c;越来越多开发者尝试部署像 FLUX.1-dev 这样的前沿多模态模型。然而&#xff0c;当你兴致勃勃地克隆完仓库、装好依赖&#xff0c;却卡在“CUDA out of memory”或“Missing model weights…

作者头像 李华
网站建设 2026/5/26 17:00:43

跨平台歌词下载神器:ZonyLrcToolsX 完全使用指南

跨平台歌词下载神器&#xff1a;ZonyLrcToolsX 完全使用指南 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX 还在为音乐播放器缺少歌词而烦恼吗&#xff1f;ZonyLrcTool…

作者头像 李华
网站建设 2026/5/19 20:25:00

如何用响应式编程实现5倍性能提升的异步处理系统

如何用响应式编程实现5倍性能提升的异步处理系统 【免费下载链接】reactor-core Non-Blocking Reactive Foundation for the JVM 项目地址: https://gitcode.com/gh_mirrors/re/reactor-core 在现代应用开发中&#xff0c;异步编程已成为提升系统性能的关键技术。本文将…

作者头像 李华
网站建设 2026/5/27 1:37:52

什么是InfiniBand(IB)网络

转自微信号&#xff1a;Ai long cloud一、什么是InfiniBand网络InfiniBand&#xff1a;即“无限带宽”技术&#xff0c;缩写为IB&#xff0c;是一种网络通信标准&#xff0c;是RDMA技术的一种协议&#xff0c;它采用高速差分信号技术和多通道并行传输机制&#xff0c;主要目标是…

作者头像 李华
网站建设 2026/5/25 11:56:18

PyTorch安装Qwen-Image全流程教程(附GPU算力优化建议)

PyTorch部署Qwen-Image全流程与GPU算力优化实战 在AIGC浪潮席卷创意产业的今天&#xff0c;高质量图像生成已不再局限于研究实验室&#xff0c;而是逐步成为企业内容生产链路中的关键环节。从广告设计到游戏原画&#xff0c;从社交媒体运营到出版物插图&#xff0c;对“精准可控…

作者头像 李华
网站建设 2026/5/26 3:52:00

Markdown超链接关联Qwen3-VL-30B相关技术文档

Qwen3-VL-30B&#xff1a;如何让AI真正“看懂”世界&#xff1f; 在智能客服上传一张产品故障图&#xff0c;系统不仅能识别出损坏部件&#xff0c;还能结合说明书判断是否在保修范围内&#xff1b;医生将CT影像与病历文本同时输入&#xff0c;AI自动比对历史记录并提示潜在误诊…

作者头像 李华