MySQL可视化软件(Navicat)部署与使用
一:可视化软件(Navicat)
1.什么是可视化软件?
数据可视化软件可将文本和数字数据转换为可视化的图表,图形和表格。 通过将重要数据引入中央界面,它被用作创建应用程序/系统性能或操作仪表板的方法。
2.什么是Navicat?
官网下载Navicat:http://www.navicat.com.cn/download/navicat-for-mysql
Navicat是一个可多重连接的数据库管理工具,它可以连接到MySQL、Oracle、PostgreSQL、SQLite、SQL Server和/或MariaDB数据库,让数据库管理更加方便。Navicat的功能可以满足专业开发人员的所有需求,对数据库服务器的新手来说学习起来也不难。有了极完备的图形用户界面(GUI),Navicat可以简便、安全地创建、组织、访问和共享信息。
Navicat提供三种操作平台:Microsoft Windows、Mac OS X 和Linux。它可以让用户连接到本机或远程服务器、提供一些实用的数据库工具如数据模型、数据传输、数据同步、结构同步、导入、导出、备份、还原、报表创建工具及计划以协助管理数据。
Navicat Premium是一套数据库管理工具,结合了其它Navicat成员的功能,Navicat Premium可满足现今数据库管理系统的使用功能,包括存储过程、事件、触发器、函数、视图等。
- Navicat 该软件是收费的 但是有很多破解版本 自我百度下载即可(正式版只能使用14天)
为了提高开发的效率 但是不能太过于依赖该软件
其实这些软件的底层还是执行的SQL语句来操作数据库的,只不过是将SQL语句封装到软件内。
二:部署MySQL(Navicat)
1.Navicat连接本地MySQL
2.连接MySQL,输入密码,在点击测试即可,不需要输入HOST,测试成功,会默认填写。
3.查询MySQL内,库和表。
4.创建库
5.创建表
可视化软件内,也可以选择SQL语句编辑,一些代码,可视化软件完成不了时,可以自己使用,可视化软件提供的SQL语句编辑。
6.重新编辑表字段设置
7.编写表数据
8.创建外键
1.外键设置 Foreign Keys
2.设置填写关联信息与被关联信息
3.先刷新设置的外键,在填写出对应的被关联表的设置的外键id,必须对应数据,不对应报错。
注:
如果想要把主键关联id,设置成不重复id,需要在表内编辑,选择sql语句手写自行编辑代码,该可视化软件无该快捷键。
1
2
3
9.图形化当前库下面所有的表关系
10.Query编辑SQL语句
11.使用可视化软件 将MySQL中SQL文件导出到本地
12.使用可视化软件,将本地SQL文件导入到MySQL内
三:使用可视化软件实现(MySQL多表查询)
1.做题思路
写多表查询题跟写代码是一样的 先写思路再写sql
不要想着一次性写完 写一点查一点再写一点
学生--成绩--课程--老师
2.查询所有的课程的名称以及对应的任课老师姓名
1、查询所有的课程的名称以及对应的任课老师姓名
1.先明确需要用到几张表 老师表与课程表
2.查询的结果也必须来源于两种表
步骤1 先连表
SELECT course.cname,teacher.tname FROM course INNER JOIN teacher ON course.teacher_id = teacher.tid;
3.查询平均成绩大于八十分的同学的姓名和平均成绩
查询平均成绩大于八十分的同学的姓名和平均成绩(先明确需要用到两张表)
分解题目执行(提高解题思路)
1.查询平均成绩大于80分的学生id号
按照学生id分组 之后求每个学生的平均成绩
select student_id,avg(num) from score group by student_id;
2.在使用having过滤出平均成绩大于80分的数据
select student_id,avg(num) as avg_num from score group by student_id
HAVING avg(num) > 80;
3.完善(查询平均成绩大于八十分的同学的姓名和平均成绩)
将上述的表与学生表按照学生id拼接到一起
SELECT student.sname,t1.avg_num FROM student INNER JOIN ( SELECT student_id, avg( num ) AS avg_num FROM score GROUP BY student_id HAVING avg( num ) > 80 ) AS t1 ON student.sid = t1.student_id;
# 5.查询没有李平老师课的学生姓名
# 1.先查询李平老师教授的课程编号
# (课程的老师id对应老师id)
-- select course.cid from course where teacher_id = (select tid from teacher where tname = '李平老师');
# 2.根据课程id号筛选出所有报了学生id号
# (老师教授的课程id 筛选出score内的课程id对应,留下来student_id字段)
-- select distinct score.student_id from score where course_id in (select course.cid from course where teacher_id = (select tid from teacher where tname = '李平老师'));
# 3.去学生表中根据id号取反筛选学生姓名
-- select student.sname from student where sid not in (select distinct score.student_id from score where course_id in (select course.cid from course where teacher_id = (select tid from teacher where tname = '李平')));
--
# 6.查询没有同时选修物理和体育科技的学生姓名(只要报一门的 两门和一门没报的都不要)
# 1.先获取两门课程的id号
-- select course.cid from course where cname in ('物理','体育');
# 2.在去分数表中先筛选出所有报了物理和体育的学生id(两门 一门);
-- select * from score where course_id in (select course.cid from course where cname in ('物理','体育'));
# 3.如何筛选出只报了一门的学生id 按照学生id分组 然后技数 并过滤出计数结果为1的数据
-- select score.student_id from score where course_id in (select course.cid from course where cname in ('物理','体育')) group by score.student_id having count(score.course_id) = 1;
# 4.根据学生id号去student表中筛选学生姓名
-- select student.sname from student where sid in (select score.student_id from score where course_id in (select course.cid from course where cname in ('物理','体育')) group by score.student_id having count(score.course_id) = 1);
# 7.查询挂科超过两门(包括两门)的学生姓名和班级
#1.先筛选出小于60分的数据
-- select * from score where num > 60;
# 2.按照学生id分组 然后统计挂科数量
-- select student_id,count(course_id) from score where num < 60 group by student_id;
# 3.筛选出挂科超过两门的学生id
-- select student_id from score where num < 60 group by student_id having count(course_id) >=2;
# 4.先将上述结果放在一边 去连接student和class表
-- select student.sname,class.caption from class inner join student on class.cid = student.class_id where student.sid in (select student_id from score where num < 60 group by student_id having count(course_id) >=2);
MySQL可视化软件(Navicat)部署与使用的更多相关文章
- MySQL— pymysql模块(防止sql注入),可视化软件Navicat
一.Pymysql import pymysql #python2.X 中是 mysqldb 和 pythonmysql 用法是一模一样的 #pymysql可以伪装成上面这两个模块 user = in ...
- HAVING,多表查询思路,可视化软件navicat,多表查询练习题,
HAVING "where"是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之 前起作用,且"where"后面不能写&quo ...
- MySQL可视化软件Work Bench导出导入数据库
首先打开你的work bench,输入你的密码进入主页面 A:导入数据库 在Schemas空白处右键选择Create~:建立一个数据库,然后就可以导入你的sql文件了 File-->Open S ...
- Mysql客户端软件
Mysql客户端软件Navicat,使用起来很方便; PremiumSoft Navicat for MySQL Enterprise Edition v8.0.27姓名(Name):3ddown.c ...
- 多表查询思路、navicat可视化软件、python操作MySQL、SQL注入问题以及其他补充知识
昨日内容回顾 外键字段 # 就是用来建立表与表之间的关系的字段 表关系判断 # 一对一 # 一对多 # 多对多 """通过换位思考判断""" ...
- python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)
昨日内容回顾 外键的变种三种关系: 多对一: 左表的多 对右表一 成立 左边的一 对右表多 不成立 foreign key(从表的id) refreences 主表的(id) 多对多 建立第三张表(f ...
- mysql更新(八) 可视化工具Navicat的使用 索引
17-索引 一.索引的介绍 数据库中专门用于帮助用户快速查找数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置吗,然后直接获取. 二 .索引的作用 约束和加速查 ...
- MySQL---5、可视化工具Navicat for MySQL安装配置
一.安装文件包下载 Navicat for MySQL 安装软件和破解补丁: 链接:https://pan.baidu.com/s/1oKcErok_Ijm0CY9UjNMrnA 密码:4xb1 ...
- MySQL数据库(4)- 多表查询、可视化工具Navicat的使用、设计模式MVC
一.多表查询 准备工作:创建两张表,部门表(department).员工表(employee),代码和表格如下: # 创建表 create table department( id int, name ...
- mysql(单表查询,多表查询,MySQl创建用户和授权,可视化工具Navicat的使用)
单表查询 语法: 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT ...
随机推荐
- JS 模块化- 04 CMD 规范与 Sea JS
1 CMD 规范介绍 CMD: Common Module Definition, 通用模块定义.与 AMD 规范类似,也是用于浏览器端,异步加载模块,一个文件就是一个模块,当模块使用时才会加载执行. ...
- 关于javascript:void(0) 在不用的浏览器当中的表现
原因在于三款浏览器,对三个属性的处理顺序不同. Chrome顺序:onclick -> href -> target IE和Firefox顺序:onclick -> target - ...
- 齐博x1.1用户登录接口
用户的登录主要涉及到小程序登录.APP的帐号密码登录.APP的微信开发平台帐号登录.相应的地址是:http://qb.net/index.php/index/wxapp.login/index.htm ...
- eDP接口简介
1. eDP背景介绍 随着显示分辨率的越来越高,传统的VGA.DVI等接口逐渐不能满足人们的视觉需求. 随后就产生了以HDMI.DisplayPort为代表的新型数字接口,外部接口方面HDMI占据 ...
- CentOS 7.9 Related Software Directory
一.CentOS 7.9 Related Software Directory Installing VMware Workstation Pro on Windows Installing Cent ...
- .Net 文件导出下载
//1.首先要有文件路径 2.要知道文件扩展名 3.根据扩展名在Provider Map对应的contentType 4.return FileSteam public IActionResult E ...
- SQL--Row_Number() over()的使用
1.语法 --over里面有两个参数 --partition by 用于分割区域 此参数可选 --order by 用于排序 此参数必有 row_number() over(partition by ...
- [苹果APP上架]ios App Store上架详细教程-一条龙顺滑上架-适合小白
如何在 2022 年将您的应用提交到 App Store 您正在启动您的第一个应用程序,或者距离上次已经有一段时间了.作者纸飞机@cheng716051来给你讲讲将应用程序提交到 App Store ...
- 从小白到架构师(4): Feed 流系统实战
「从小白到架构师」系列努力以浅显易懂.图文并茂的方式向各位读者朋友介绍 WEB 服务端从单体架构到今天的大型分布式系统.微服务架构的演进历程.读了三篇万字长文之后各位想必已经累了(主要是我写累了), ...
- el-scrollbar 监测滚动条
export function processScroll (_this) { let _self = _this let scrollbarEl = _this.$parent.wrap ...