navicat连接数据库&mysql常见语句及操作

软件介绍

navicat是操纵数据库的图形化工具,因为MySQL窗口是像命令行一样只有一个黑色的窗口,在navicat中进行操作会更加直观、可视化。

xftp8是用于在不同系统中轻松传输文件的软件,我们这里实现Windows系统中的文件直接"拖"到centos中。

软件下载兄弟们直接搜一下就行。

1、点击连接,选择mysql

2、连接名自己取,主机我们在上一篇博客进行了IP映射,填入我们映射的名字master或者直接填写IP,填写centosd的用户名和密码

3、点测试连接显示连接成功

4、双击即可进入

案例:创建成绩表,导入学生期末成绩

1、右键,新建数据库

2、输入数据库名称,确定

注意创建页面的SQL预览是在mysql创建数据库的命令,在Mysql窗口中执行这个命令和我们这里的操作是等价的

3、新建学生期末成绩表socres

4、通过"添加字段"输入表头信息,只输前两项就行,添加完成后点保存

5、名字随便取

6、接下来就是导入学生成绩表,首先得在mysql文件夹中创建一个学生表

关于创建路径:

输入成绩信息,你们可以少输入几行

提示:i进入插入模式,ecs返回命令模式,:wq保存并退出,这是前面学的内容哈。

7、点击新建查询,输入以下代码

bash 复制代码
LOAD DATA INFILE '/var/lib/mysql-files/socres.txt'
INTO TABLE socres
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(stu_id, subject_id, socres, type);

输完之后点运行

8、回到socres表,右键刷新一下就能看到我们的表格了。

到这里,我们就完成了成绩表的导入,刚才新建会话的代码我们在mysql中运行效果是一样的:

1、登录mysql

2、输入命令:

bash 复制代码
use stu
LOAD DATA INFILE '/var/lib/mysql-files/socres.txt'
INTO TABLE socres
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(stu_id, subject_id, socres, type);

注意这里代码和之前的区别,这里需要加上第一行use stu,即选择你要用的数据库

显示我的.txt文件中26行数据被插入。

也可以通过navicat界面的导入来实现学生成绩表导入,孩子们可以自行尝试。

常用的mysql语句

下面介绍常见的mysql语句,以student表为例:

查询所有学生

复制代码
select * from students;

查询年龄等于20岁的学生

复制代码
select name, age 
from students
where age = 20;

查询人工智能的所有学生

复制代码
select * 
from students 
where major='人工智能\r';

模糊查询

复制代码
select * 
from students 
where major LIKE '%计算机科学%';

查询年龄大于22岁的学生 id倒序排

复制代码
SELECT id, name
FROM students
WHERE age = 20
ORDER BY id DESC;

查询每个班的最大年龄 函数 max min avg sum count

复制代码
SELECT major,MAX(age) as max_age
FROM students
GROUP BY major;

数据链接(外连接 内连接)

内连接 join | inner join

复制代码
SELECT s.*, sc.subject_id, su.subject_name
FROM (
students s
JOIN
scores sc
JOIN
subjects su
ON s.id = sc.stu_id and sc.subject_id = su.subject_id
);

外连接 left join / right join / full join

复制代码
# 在score末行添加一个假数据
# 2000	1	100	期末
SELECT *
FROM(
students as s
RIGHT JOIN
scores as sc
ON s.id = sc.stu_id
);

MySQL中**内连接(INNER JOIN)**和**外连接(OUTER JOIN)**的核心用法,下面分别讲解: ### 一、内连接(`JOIN` / `INNER JOIN`) #### 作用 只返回**多张表中"关联条件匹配"的数据行**(相当于取多张表的"交集")。 #### 示例解析(图中SQL) ```sql SELECT s.*, sc.subject_id, su.subject_name FROM students s JOIN scores sc -- 等价于 INNER JOIN JOIN subjects su ON s.id = sc.stu_id and sc.subject_id = su.subject_id; ``` - 关联了`students`(学生表)、`scores`(成绩表)、`subjects`(科目表)三张表; - 只有同时满足"学生存在对应成绩"**且**"成绩存在对应科目"的数据,才会被查询出来; - 若某学生没有成绩,或某成绩没有对应科目,这条数据会被过滤掉。 ### 二、外连接(以`RIGHT JOIN`为例) 外连接包含`LEFT JOIN`(左外连接)、`RIGHT JOIN`(右外连接)、`FULL JOIN`(全外连接),核心是**保留其中一张表的所有数据,另一张表匹配不到则补NULL**。 #### 示例解析(图中`RIGHT JOIN`) ```sql SELECT * FROM students as s RIGHT JOIN scores sc ON s.id = sc.stu_id; ``` - `RIGHT JOIN`表示**保留右表(`scores`)的所有数据**,左表(`students`)匹配不到则字段补`NULL`; - 图中特意在`scores`加了一条"stu_id=2000"的假数据(假设`students`中没有id=2000的学生),查询结果会显示这条成绩,同时学生相关字段(如姓名)会显示`NULL`。 ### 三种外连接的区别 | 连接类型 | 保留的数据 | 场景举例 | |----------------|-----------------------------|------------------------------| | `LEFT JOIN` | 左表所有数据,右表匹配补NULL | 查"所有学生的成绩(含无成绩的学生)" | | `RIGHT JOIN` | 右表所有数据,左表匹配补NULL | 查"所有成绩对应的学生(含无对应学生的成绩)" | | `FULL JOIN` | 左右表所有数据,双方匹配补NULL | 查"所有学生+所有成绩,相互匹配" | 要不要我帮你整理一份**内/外连接的对比案例SQL模板**?

相关推荐
yuzhiboyouye1 小时前
内连接,左连接,右连接怎么区别开来?
数据库
铭毅天下1 小时前
Easysearch 版本进化全图——从 ES 国产替代到 AI Native 搜索数据库
大数据·数据库·人工智能·elasticsearch·搜索引擎
muddjsv1 小时前
SQL 最常用技能详解与实战示例
数据库·sql·mysql
muddjsv3 小时前
大中小型企业数据配置年度成本估算分析
数据库·企业运营
ᰔᩚ. 一怀明月ꦿ3 小时前
MySQL 学习目标
学习·mysql·adb
塔能物联运维3 小时前
存量机房升级成为行业主流方向:热管理重构算力中心价值路径
数据库
lqj_本人3 小时前
鸿蒙electron跨端框架PC工志簿实战:项目、工时、阻塞和下一步都要有位置
数据库·华为·harmonyos
刘一说3 小时前
AI科技热点日报 | 2026年5月22日
数据库·人工智能·科技
LCG元4 小时前
RAG工程指南:从基础检索到生产部署全解析
java·运维·数据库
godspeed_lucip4 小时前
LLM和Agent——专题3: Agentic Workflow 入门(1)
大数据·数据库·人工智能