一、安裝
下載地址: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,里面的內容就下面的東東

/* 數據導入: 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+/ 就能取消注釋
ok,Navicat簡單的就介紹完了,大家可以練一練了~~~