Navicat工具使用

开发中经常要连接各种数据库, 一个好用的数据库客户端工具能是效率提升很多. 而Navicat 就是一个支持多种数据库连接的客户端.
下面以Navicat Premium版为大家介绍工具的使用, 目录如下

  • 连接不同数据库
  • 创建数据库
  • 数据传输
  • 导出表结构
  • 生成数据字典
  • 查找数据或表名
  • 生成E-R模型

连接不同数据库

数据库连接

可见支持的数据库还是很多的,甚至包括了MongoDB非关系型数据库
连接数据库直接配置连接地址和用户名密码即可,Oracle复杂一点需要配置OCI,这个可自行百度.

一下以Sql Server数据库为例

创建数据库

右键刚新建的数据库连接--选择[新建数据库...]


新建数据库

Sql预览

CREATE DATABASE [test]
ON
PRIMARY
(
  NAME = N'test',
  FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test.ndf',
  SIZE = 4160KB,
  MAXSIZE = UNLIMITED,
  FILEGROWTH = 1MB
)
LOG ON
(
  NAME = N'test_log',
  FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test_log.ldf',
  SIZE = 1280KB,
  MAXSIZE = UNLIMITED,
  FILEGROWTH = 10%
)
GO

ALTER DATABASE [test] COLLATE Chinese_PRC_CI_AS
GO

ALTER DATABASE [test] SET RECOVERY FULL
GO

ALTER DATABASE [test] SET COMPATIBILITY_LEVEL = 130
GO

EXEC [test].dbo.sp_changedbowner N'wwmin'

数据传输

数据传输,顾名思义就是将数据从其他地方传输到当前数据库,例如我们将Eletcric数据库中的数据传输到刚才新建的Test数据库中

数据传输数据库

选择工具栏中的工具选项,在弹出的选项中选择【数据传输...】,在弹出的窗口中我们配置源数据库为【SQL_Road】,目标数据库配置为【Test】,这样就可以将SQL_Road中的对象传输到Test了,支持传输的对象包括:表,视图,函数和存储过程,具体如下图:
数据传输配置

选择需要传输的对象

点击下一步,后再点击开始.
数据传输中

此外如果想将数据导出到对象文件(sql文件),也可以使用将目标选择为文件, sql格式可选择想导入的数据库格式
传输数据库到sql

如果想对到处的内容自定义,也可是使用选项,自定义配置,如下:
自定义配置

配置完成后,点击开始,就会将你选择的数据库对象以脚本的形式导出到文件中。

但是数据传输到文件有个不足的地方,就是会将数据记录也会一并导出,而很多时候,我们其实只需要表结构,那么我们可以使用下面的这个功能。

  • 转储SQL文件

双击打开数据库后,我们右键架构名dbo,在弹出的选项中选择[转储SQL文件],这里还有两个子选项:[结构和数据...]和[仅结构...],如下图:

转储SQL文件

他们的区别就是一个有数据记录,一个没有数据记录,如果你只要数据结构可以只选择【仅结构...】,这样就可以大大节省导出时间了。

打印模式

打印模式可以完美的生成所有表的数据表结构的。这里我们选择表数量较多的数据库ReportServer。右键dbo后,选择【打印模式...】,如下图:


打印模式

在模式中查找

这个功能主要用来查找数据或结果,当你需要从当前数据库中查找数据记录或对象中包含某些字符时,可以使用该功能,具体如下:


在模式中查找

在弹出的对话框中,我们查找pre的结构,就可以将当前数据库符合要求的的所有对象都查找出来,如下图:


查找结构
查找数据

逆向模式到模型

右键dbo在弹出的选项中选择【逆向模式到模型..】,如果[逆向模式到模型]按钮是灰色的,不需要先双击dbo, 使dbo处于激活状态, 如下图:


逆向模式到模型

它可以将当前数据库中创建的所有表,以E-R图的模型清楚的告诉你每个表之间的关联关系,包括主外键,表结构,关联关系等. 图中右侧即为模型

还支持模型转换,模型导出,说白了就是你可以将该模型转换成其他数据库的模型,从SQL Server转换成MySQL,Oracle,Postgresql都可以。点击左上角的文件,选择【文件】——【模型转换】,如下图:


image.png

在模型中界面有许多操作, 如 保存,另存为,另存为外部文件,导出SQL..., 转换模型为..., 打印, 导出到PDF..., 如下:


模型操作

新建表

相比其他管理工具,Navicat将建表过程中所涉及的各种常用功能都包含进去了,包含新字段,索引,主键,外键,唯一键等等与表有关的内容,具体如下图:


新建表

针对表的几个常用功能,我们再详细给大家介绍一下

  • 字段
    字段的功能很多,也是其他功能的前提,你必须先创建了字段才能使用后面的一些功能。
新建表-字段

其中第一排的添加字段,插入字段,删除字段,可以通过字面意思来理解。
主键:选中某个字段,点击主键即可设置为主键
注释:对字段的备注,通常为中文
名:字段存在表里的字段名
类型:字段数据类型
长度:字段的长度,通常int和datetime可以不设置长度。
比例:小数位数
不是Null:该字段是否为空,勾选不为空,不勾选为空。

其中Id被设置了主键, 但是还没有设置标识,标识一般用作自增长列来使用, 需要在 字段|索引|外键|唯一键|检查|触发器|选项|存储|注释|SQL预览 , 这一栏菜单中选择选项

选项中选择标识自增长字段
  • 索引
    用来创建索引,只需要选定指定的列,就可以在对应的列上创建索引了。


    新建-索引

    名:索引的名称,通常按命名规范以index或idx开头,当然你也可以自定义。
    字段:选择在哪个字段上创建索引。还可以选择排序规则,默认是升序ASC。
    索引类型:不同的数据库索引类型不同,SQL Server类型一般为聚集索引(Clustered)和非聚集索引(Non-Clustered)
    唯一键:用来限制字段的记录是否可以重复,勾选就是不可重复。

  • 外键
    用来创建外键约束的功能,目前的数据库设计中,通常不设置外键约束了。

新建表-外键

名:外键名称,通常以fk开头
字段:用来设置外键的字段
参考表:与之相关联的表
参考字段:与之相关联表中的字段
删除时:是否级联删除
更新时:是否级联更新

  • 唯一键

区别于主键,唯一键具有唯一性
与主键的区别有:
1.主键不允许空值,唯一索引允许空值
2.主键只允许一个,唯一索引允许多个
3.主键产生唯一的聚集索引,唯一索引产生唯一的非聚集索引

  • 检查
    用来约束数据插入的合法性,对应SQL中的CHECK或DEFAULT

  • 触发器

用来创建与表相关的触发器,其中触发器的使用可以查看历史文章:SQL高级知识V2——触发器

  • 选项
    这里主要用来设置自增长的种子值(起始值)和增量, 以及设置分区等等


    mysql create table options
  • SQL预览
    这里可以看到我们刚才对表做的配置所对应的SQL语句

CREATE TABLE `freesql_blog`.`Untitled`  (
  `Id` int UNSIGNED NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) NULL,
  `CreateTime` datetime NOT NULL,
  PRIMARY KEY (`Id`),
  INDEX `IdName`(`Id`, `Name`) USING BTREE
) COMMENT = '信息' PARTITION BY RANGE (CreateTime)
PARTITIONS 0
;

ER图模式
会以ER图的形式显示每个表之间的关联关系,如下图


ER图
  • 导入/导出向导
    用来引导用户导入/导出数据到数据库对应的表


    image.png
  • 新建查询
    新建查询有两种方式,可以直接右键选择新建查询,也可以点击菜单栏的查询-新建查询,如下图:


    新建查询
  • 创建视图


    创建视图

    方式一: 使用sql语句


    image.png

    方式二: 图形化创建视图工具
图形化创建视图工具
  • 创建函数和存储过程
    函数和存储过程是类似的,区别是函数必须要有返回值,而存储过程可有可无。
    他们也有一套模板,选择函数后点击新建函数,弹出如下对话框:


    创建函数和存储过程
函数

写好函数里的语句后点击运行即可开始测试了。

  • 备份和还原
    通过Navicat,我们可以很方便的完成备份和还原操作,我们先来备份一个文件。


    备份数据库
还原数据库
  • 历史日志记录
    该功能可以很方便的查看到你在数据库中执行了哪些操作。点击菜单栏中的工具——历史日志,就可以看到我们的操作记录了,如下图:


    历史日志记录
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343