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模板**?

相关推荐
ID_180079054731 天前
Python采集闲鱼商品详情API:JSON数据解析与应用实践
数据库·python·json
白帽子凯哥哥1 天前
2026零基础如何参与护网行动?(非常详细)
数据库·sql·学习·漏洞·xss
我爱学习好爱好爱1 天前
Prometheus监控栈 监控Springboot2+Vue3+redis项目
数据库·redis·prometheus
月度空间1 天前
MySQL 数据库优化极简教程:快速提升性能
mysql
高一要励志成为佬1 天前
【数据库】第一章:绪论
数据库
潇湘梦1 天前
mysql团队编写规范
数据库·mysql·代码规范
zhengfei6111 天前
开源网站安全监测系统—Libra
数据库·安全·oracle
点云SLAM1 天前
boost中graph_traits和adjacency_list 的内存布局以及最小图示例
数据结构·数据库·图论·boost库·最小图·链接矩阵·graph_traints技术
微风中的麦穗1 天前
K8s(kubernetes)部署Mivus向量数据库集群 在线和离线两种部署方式
数据库
Go高并发架构_王工1 天前
Redis命令执行原理与源码分析:深入理解内部机制
数据库·redis·后端