一、安装
下载地址:https://pan.baidu.com/s/1bpo5mqj
下载完之后,直接解压出来就能用,看一下解压之后的目录:
双击打开下面这个文件(可以把它添加一个桌面快捷方式,或者添加到任务栏):
然后会提示你输入注册码:
回到navicat的解压出来的文件夹里面,有个叫做key.txt的文件,打开,里面有注册码
将这个注册码copy到输入注册码的地方:
点击确定就能打开使用了:会显示出来下面的界面
既然是mysql客户端,我们需要连接mysql服务端
在弹出的界面输入mysql服务端的ip地址和端口,还有mysql用户名和密码
关于校对规则大家看看这两篇博客就明白了:
https://www.cnblogs.com/adforce/p/3282404.html
https://www.jb51.net/article/48775.htm
上面的步骤点击确定就建好一个数据库了:
然后我们到上面的数据库里面新建一张表
也就是我们自己用鼠标点啊点之类的,也就是生成对应的sql语句去执行
然后点击保存:
这个表就生成了:
不信我们去命令行看一看:这个表就存在了
以后我们直接就使用这个工具来操作数据库就可以了,因为命令行操作还是比较恶心的
然后我们看看建立外键
然后自动会生成对应的sql语句
然后点击保存,起一个表名,就有了这个表了
然后双击上面的表名就可以插入数据了
比方说我们上面这个dep表的id字段没有设置自增,我想改一下,让它这个id字段变为自增的怎么办
设计表:
那我们该怎么办呢,直接删除这个表然后重新创建吗?你另外一个关联表肯定不让你这么做,所以你需要先将那个关联表的外键关系先取消,或者先将那个外键关联表删除
然后把这个关联表的外键删除,然后保存
然后再去我们想给id字段加上自增的那个dep表里面把id字段设置为自增,保存,然后在重新将emp表外键到dep的id字段上
然后给dep表插入几条数据
这个工具还能将你的表之间的关系通过图形的形式来给你展示:
点击这个ER图,两者的关系图就显示出来了,那么将来你的表很多的时候,你就可以通过这个图来查看自己表和表之间的关系,看效果:
如果我们点击两个表之间的线,是可以看到两者之间的关系的:
还可以选择上面的模型来直接创作图表,创建表之间的关系
但是上面我们建立的这个模型,是不能直接创建到数据库里面的,需要将它以sql的形式导入,然后把导出的sql语句,到数据库里面去执行
然后导出保存到一个地方
打开我们导出的文件,看一下里面的内容
你看,就是咱们创建的模型翻译成的sql语句,复制一下这些sql语句,但mysql里面去执行一下,就等到我们模型里面的两个表了,是不是很方便
Navicat工具还能写原生sql语句来进行数据库的操作
就看到一个输入sql语句的界面了:
然后写一个sql语句试一下:
然后运行一下:
我们还可以将之前数据库中导出来的数据,以sql文件的形式通过navicat导入到数据库中:看步骤
假如我们有一个从数据库中导入的文件,文件名称为init.sql,里面的内容就下面的东东
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
/* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : localhost Source Database : sqlexam Target Server Type : MySQL Target Server Version : 50624 File Encoding : utf-8 Date: 10/21/2016 06:46:46 AM */ SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for `class` -- ---------------------------- DROP TABLE IF EXISTS `class`; CREATE TABLE `class` ( `cid` int(11) NOT NULL AUTO_INCREMENT, `caption` varchar(32) NOT NULL, PRIMARY KEY (`cid`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of `class` -- ---------------------------- BEGIN; INSERT INTO `class` VALUES ('1', '三年二班'), ('2', '三年三班'), ('3', '一年二班'), ('4', '二年九班'); COMMIT; -- ---------------------------- -- Table structure for `course` -- ---------------------------- DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cid` int(11) NOT NULL AUTO_INCREMENT, `cname` varchar(32) NOT NULL, `teacher_id` int(11) NOT NULL, PRIMARY KEY (`cid`), KEY `fk_course_teacher` (`teacher_id`), CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of `course` -- ---------------------------- BEGIN; INSERT INTO `course` VALUES ('1', '生物', '1'), ('2', '物理', '2'), ('3', '体育', '3'), ('4', '美术', '2'); COMMIT; -- ---------------------------- -- Table structure for `score` -- ---------------------------- DROP TABLE IF EXISTS `score`; CREATE TABLE `score` ( `sid` int(11) NOT NULL AUTO_INCREMENT, `student_id` int(11) NOT NULL, `course_id` int(11) NOT NULL, `num` int(11) NOT NULL, PRIMARY KEY (`sid`), KEY `fk_score_student` (`student_id`), KEY `fk_score_course` (`course_id`), CONSTRAINT `fk_score_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`cid`), CONSTRAINT `fk_score_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`) ) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of `score` -- ---------------------------- BEGIN; INSERT INTO `score` VALUES ('1', '1', '1', '10'), ('2', '1', '2', '9'), ('5', '1', '4', '66'), ('6', '2', '1', '8'), ('8', '2', '3', '68'), ('9', '2', '4', '99'), ('10', '3', '1', '77'), ('11', '3', '2', '66'), ('12', '3', '3', '87'), ('13', '3', '4', '99'), ('14', '4', '1', '79'), ('15', '4', '2', '11'), ('16', '4', '3', '67'), ('17', '4', '4', '100'), ('18', '5', '1', '79'), ('19', '5', '2', '11'), ('20', '5', '3', '67'), ('21', '5', '4', '100'), ('22', '6', '1', '9'), ('23', '6', '2', '100'), ('24', '6', '3', '67'), ('25', '6', '4', '100'), ('26', '7', '1', '9'), ('27', '7', '2', '100'), ('28', '7', '3', '67'), ('29', '7', '4', '88'), ('30', '8', '1', '9'), ('31', '8', '2', '100'), ('32', '8', '3', '67'), ('33', '8', '4', '88'), ('34', '9', '1', '91'), ('35', '9', '2', '88'), ('36', '9', '3', '67'), ('37', '9', '4', '22'), ('38', '10', '1', '90'), ('39', '10', '2', '77'), ('40', '10', '3', '43'), ('41', '10', '4', '87'), ('42', '11', '1', '90'), ('43', '11', '2', '77'), ('44', '11', '3', '43'), ('45', '11', '4', '87'), ('46', '12', '1', '90'), ('47', '12', '2', '77'), ('48', '12', '3', '43'), ('49', '12', '4', '87'), ('52', '13', '3', '87'); COMMIT; -- ---------------------------- -- Table structure for `student` -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `sid` int(11) NOT NULL AUTO_INCREMENT, `gender` char(1) NOT NULL, `class_id` int(11) NOT NULL, `sname` varchar(32) NOT NULL, PRIMARY KEY (`sid`), KEY `fk_class` (`class_id`), CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`cid`) ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of `student` -- ---------------------------- BEGIN; INSERT INTO `student` VALUES ('1', '男', '1', '理解'), ('2', '女', '1', '钢蛋'), ('3', '男', '1', '张三'), ('4', '男', '1', '张一'), ('5', '女', '1', '张二'), ('6', '男', '1', '张四'), ('7', '女', '2', '铁锤'), ('8', '男', '2', '李三'), ('9', '男', '2', '李一'), ('10', '女', '2', '李二'), ('11', '男', '2', '李四'), ('12', '女', '3', '如花'), ('13', '男', '3', '刘三'), ('14', '男', '3', '刘一'), ('15', '女', '3', '刘二'), ('16', '男', '3', '刘四'); COMMIT; -- ---------------------------- -- Table structure for `teacher` -- ---------------------------- DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher` ( `tid` int(11) NOT NULL AUTO_INCREMENT, `tname` varchar(32) NOT NULL, PRIMARY KEY (`tid`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of `teacher` -- ---------------------------- BEGIN; INSERT INTO `teacher` VALUES ('1', '张磊老师'), ('2', '李平老师'), ('3', '刘海燕老师'), ('4', '朱云海老师'), ('5', '李杰老师'); COMMIT; SET FOREIGN_KEY_CHECKS = 1;
首先我们新建一个库:
然后选择这个数据库,点击右键,选择运行sql文件;
注意上面这一步,直接关闭就可以了,不要再次点击开始了
然后通过ER图,来看看,各个表的关系就看的很清楚了。
我们还可以对sql语句进行注释:选中语句然后ctrl+/就能多行注释,ctrl+shift+/ 就能取消注释