MySQL / Navicat

本文介绍了如何在MySQL中进行日期范围查询,使用BETWEEN操作符结合日期字段进行筛选。同时,详细讲解了SQL中的四种联合查询类型:INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN,以及它们的应用场景。另外,还阐述了HAVING子句在聚合函数筛选中的作用,与WHERE子句的区别,并展示了三表联查的步骤,特别是如何通过LEFT JOIN获取学生信息的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Navicat

时间

  • create_time 创建时间

在这里插入图片描述

  • update_time 更新时间
    在这里插入图片描述

查询日期范围

mysql怎样查询日期范围

select * from file where upload_time BETWEEN '2022-01-01' AND '2023-01-01'
// upload_time 的类型是 date
// java 中 upload_time 的类型可以是String 

默认值

logic_delete 逻辑删除

  • 1(true)逻辑删除
  • 0(false)未删除在这里插入图片描述

在这里插入图片描述

MySQL

13种联合查询图

在这里插入图片描述
1、inner join(内连接):只返回两个表中都有匹配值的记录。

2、left join(左连接):返回所有来自左表(left table)的记录,以及右表(right table)匹配的记录。即使右表中没有匹配的记录,左表中的所有记录也会都返回。

3、right join(右连接):返回所有来自右表的记录,以及左表匹配的记录。即使左表中没有匹配的记录,右表中的所有记录也会都返回。

4、full join(全连接):返回来自左表和右表的所有记录,即使左表和右表中没有相互匹配的记录。

在这里插入图片描述

having

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

where 和having之后都是筛选条件,但是有区别的:
1.where在group by前, having在group by 之后
2.聚合函数(avg、sum、max、min、count),不能作为条件放在where之后,但可以放在having之后

三表联查

user
在这里插入图片描述
role

在这里插入图片描述
user_role 两张表之间的连接表

在这里插入图片描述

查出用户为学生的所有信息

技巧:from处写两张表之间的连接表,便于与两表操作

SELECT u.*
        FROM user_role ur
                 LEFT JOIN role r ON r.id = ur.role_id
                 LEFT JOIN user u ON u.id = ur.user_id
        WHERE ur.role_id = 4

在这里插入图片描述
拆分

  • 1.先连接 role 和 user_role
SELECT *
        FROM user_role ur
                 LEFT JOIN role r ON r.id = ur.role_id

下表数据全部存入 user_role(可以把它看作为中间表)
在这里插入图片描述

  • 2.再连接 user_role 和 user
SELECT *
        FROM user_role ur
                 LEFT JOIN role r ON r.id = ur.role_id
                 LEFT JOIN user u ON u.id = ur.user_id

下表数据全部存入 user_role(可以把它看作为中间表)

在这里插入图片描述

  • 3.最后加上where条件
SELECT  *
        FROM user_role ur
                 LEFT JOIN role r ON r.id = ur.role_id
                 LEFT JOIN user u ON u.id = ur.user_id
        WHERE ur.role_id = 4

下表数据全部存入 user_role(可以把它看作为中间表)
在这里插入图片描述

  • 4.取出user表字段 SELECT u*
<think>好的,我现在需要帮助用户解决如何使用Navicat连接MySQL数据库的问题。首先,我要回忆一下用户提供的引用内容,看看里面有没有相关的步骤或者配置信息。用户引用了四个资料,其中引用1是关于Django配置MySQL的,引用2是Python连接MySQL的代码示例,引用3和4详细描述了Navicat连接的步骤。 接下来,我需要整理这些信息,特别是引用3和4中的内容。用户可能需要的步骤包括安装Navicat、创建新连接、填写连接参数、测试连接以及连接后的操作。我要确保每个步骤都清晰,并且符合用户提供的引用内容中的配置参数,比如主机名、端口、用户名和密码等。 然后,我要注意用户提到的系统级指令,比如使用正确的LaTeX格式,但这个问题可能不涉及数学公式,所以可能不需要处理这部分。不过,用户要求生成相关问题,我需要根据内容提出几个相关的问题,比如常见错误、数据库管理操作等。 另外,用户希望回答结构清晰,分步骤说明,所以需要用列表和代码块来展示操作步骤,可能还需要注意事项部分,提醒用户常见的问题,比如密码错误或服务未启动。需要检查引用中的信息是否有覆盖这些点,比如引用3提到测试连接成功后才保存,引用4提到了测试连接的步骤。 最后,生成相关问题时要确保问题与NavicatMySQL的使用相关,比如连接失败的原因、数据库管理、数据传输等。同时,确保引用标记正确,每个步骤末尾如果有引用来源的话要加上对应的标识符,比如引用3和4在步骤中的各个部分可能被引用多次,但需要正确对应。 总结一下,回答的结构应该是先概述Navicat连接MySQL的基本步骤,然后分步骤详细说明,包括参数配置、测试连接,接着是连接后的操作示例,注意事项,最后生成相关问题。需要确保引用标注正确,没有格式错误,并且使用中文回答,符合用户的所有要求。</think>### 如何使用 Navicat 连接 MySQL 数据库 #### 1. **安装与启动** - 确保已安装 NavicatMySQL 服务。MySQL 服务需处于运行状态(默认端口 `3306`,主机 `localhost` 或 `127.0.0.1`)[^3][^4]。 --- #### 2. **新建连接** - 打开 Navicat,点击左上角 **连接** > **MySQL**。 - 在弹出的窗口中填写以下参数: - **连接名**:自定义名称(如“酸菜鱼”) - **主机/IP**:`localhost` 或 `127.0.0.1`(本地数据库)[^1] - **端口**:默认 `3306`(若未修改) - **用户名**:默认 `root`(或自定义用户) - **密码**:安装 MySQL 时设置的密码(若未设置则为空)[^3] --- #### 3. **测试与保存** - 点击左下角 **测试连接**,若提示“连接成功”,则配置正确。 - 点击 **确定** 保存配置,左侧将出现新建的连接名称。 --- #### 4. **连接后的操作** - 双击连接名展开数据库列表,可查看所有数据库。 - 右键点击连接名,选择 **新建数据库** 或直接操作现有表。 - 通过 SQL 窗口执行查询(示例代码类似 Python 连接方式): ```sql SELECT * FROM user_info; ``` 类似 Python 中 `cur.execute("SELECT * FROM user_info")` 的逻辑[^2]。 --- #### 5. **注意事项** - **密码错误**:确保密码与 MySQL 安装时设置的一致(如引用中 `'PASSWORD': '123456'`)[^1]。 - **服务未启动**:通过任务管理器检查 MySQL 服务是否运行。 - **防火墙限制**:若远程连接,需开放 `3306` 端口。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值