news 2026/4/27 9:30:23

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/4/16 12:12:21

Conda-forge提交Qwen-Image-Edit-2509包以简化安装流程

Conda-forge提交Qwen-Image-Edit-2509包以简化安装流程 在电商运营、社交媒体内容生成和广告设计等高度依赖视觉表达的领域&#xff0c;图像编辑正面临前所未有的效率挑战。传统方式需要设计师手动使用Photoshop完成每一张图的修改&#xff0c;面对成百上千张商品图时&#xf…

作者头像 李华
网站建设 2026/4/21 17:14:50

什么是RoCE网络

转自微信号&#xff1a;AI Long Cloud 一、什么是RoCE网络&#xff1f; RoCE&#xff08;英文&#xff1a;RDMA over Converged Ethernet&#xff09;是一种基于以太网的远程直接内存访问&#xff08;RDMA&#xff09;技术&#xff0c;旨在通过无损以太网实现低延迟和高吞吐量…

作者头像 李华
网站建设 2026/4/24 7:21:22

百度网盘智能助手:告别繁琐提取码,开启极速下载新时代

还在为百度网盘的提取码而烦恼吗&#xff1f;每次看到心仪的资源&#xff0c;却要在页面间来回切换寻找那串神秘代码&#xff1f;现在&#xff0c;BaiduPanKey将彻底改变这一现状&#xff0c;为你带来前所未有的便捷体验。 【免费下载链接】baidupankey 项目地址: https://g…

作者头像 李华
网站建设 2026/4/24 9:07:08

Wan2.2-T2V-5B模型部署指南:快速搭建本地视频生成服务

Wan2.2-T2V-5B模型部署指南&#xff1a;快速搭建本地视频生成服务 在短视频内容爆炸式增长的今天&#xff0c;创作者对高效、低成本的自动化视频生成工具需求日益迫切。然而&#xff0c;主流文本到视频&#xff08;Text-to-Video, T2V&#xff09;模型往往依赖多卡A100集群运行…

作者头像 李华
网站建设 2026/4/24 20:24:26

音乐爱好者必备!Melody+管理多平台音源,远程听歌难题cpolar轻松解决

文章目录前言1. 添加镜像源2. 本地部署Melody3. 本地访问与使用演示4. 安装内网穿透5. 配置Melody公网地址6. 配置固定公网地址前言 Melody 是一款个人在线音乐平台&#xff0c;能聚合多个音乐网站的资源&#xff0c;支持歌曲搜索、播放、下载和上传到云盘&#xff0c;还能同步…

作者头像 李华
网站建设 2026/4/25 13:16:38

WebSite-Downloader 终极使用指南:轻松实现网站整站下载

想要快速备份整个网站、离线浏览网页内容或迁移网站资源吗&#xff1f;WebSite-Downloader 正是你需要的强大工具&#xff01;这款基于 Python 开发的网站整站下载器&#xff0c;通过智能多线程技术&#xff0c;能够高效地递归抓取网站的所有页面和资源文件&#xff0c;为你构建…

作者头像 李华