MySQL 或 MariaDB 对象
要开始使用服务器对象,你应该创建并打开一个连接。如果服务器是空的,你需要在连接窗格的连接上右击并选择 新建数据库 来创建一个新的数据库。
要编辑一个现有的数据库属性,在连接窗格中的数据库上右击并选择 编辑数据库。请注意,这个时候 MySQL 不支持通过它的界面重命名数据库。访问保存数据库的目录。默认情况下,全部数据库保存于 MySQL 安装文件夹内一个名为
data 的目录。例如:C:\mysql5\data。
注意:你必须停止 MySQL,然后才能重命名数据库。
数据库名
设置新的数据库名。
字符集
指定默认的数据库字符集。
排序规则
指定默认的数据库排序规则。
关联式数据库使用表来保存数据。全部数据操作都在表上完成或生成另一个表作为结果。表是一组行和列,以及它们的相交点是字段。从一般的角度来看,列在一个表中描述数据的名和类型,被行发现其列的字段。行在一个表中代表列组成的记录,从左至右由相应列的名和类型描述。每一个在行中的字段是和该行的其他字段含蓄地相关。点击
来打开表 的对象列表。
当要打开有图形字段的表时,在表上右击并在弹出菜单中选择
打开表 (快速)。用更快的性能打开图形表,BLOB 字段(图片) 将不会被加载直到你点击单元格。如果你希望当打开表时 Navicat 加载全部你的图片请使用
打开表。
你可以创建一个表快捷方式,在对象列表窗格中的表上右击并在弹出菜单中选择 创建打开表快捷方式。这个选项是用来提供一个打开表的便捷方式,可以直接输入数据而无需打开主 Navicat。
要清空一个表,在已选择的表上右击并在弹出菜单中选择 清空表。此选项仅适用于如果你希望清除全部现有记录而不重设自动递增值。要当清除你的表同时重设自动递增值,请使用 截断表。
在 字段 选项卡中,只需简单地点击字段来编辑。右击来显示弹出菜单或使用字段工具栏,能让你创建新的、插入、移动或删除选择的字段。要搜索一个字段名,选择 编辑 -> 查找 或按 CTRL+F。
按钮 | 描述 |
添加字段 | 添加一个字段到表。 |
插入字段 | 在一个现有的字段上面插入一个字段。 注意:MySQL 3.22 或以上版本支持。 |
删除字段 | 删除已选择的字段。 |
主键 | 设置字段为主键。 |
上移或 下移 | 上移或下移已选择的字段。 注意:MySQL 4.0.1 或以上版本支持。 |
要修改一个现有字段来添加一个新字段,你可以右击并在弹出菜单中选择 复制字段。使用 名 编辑框来设置字段名。请注意字段名在表的全部字段中必须是唯一的。
类型 下拉列表定义字段数据的类型。详细信息请看 MySQL Data Types 或 MariaDB Data Types。
使用 长度 编辑框来定义字段的长度并用 小数点 编辑框来为浮点数据类型定义小数点(比例)后有几多位数。注意:小心当缩短字段长度可能会导致数据丟失。
不 是 null
勾选这个框来不允许字段是空值。
虚拟
勾选这个框来为字段启用虚拟列设置。注意:MariaDB 5.2 或以上版本支持。
主键
主键是一个单字段或多个字段组合,能唯一地定义一个记录。没有一个主键的字段可以包含空值。
字段的属性
注意:下面这些选项取决于你选择字段的类型。
默认
设置字段的默认值。
注释
设置任何可选的文本描述当前字段。
字符集
字符集是一组符号和编码。
排序规则
排序规则是一组在字符集中比对字符的规则。
注意:MySQL 按照下列方式选择列的字符集和排序规则:
如果指定了字符集 X 和排序规则 Y,就会采用字符集 X 和排序规则 Y。
如果指定了字符集 X 而没有指定排序规则,就会采用字符集 X 和字符集 X 的默认排序规则。
否则,采用表字符集和排序规则。
键长度
当设置主键,编辑框会启用。
二进制
自 MySQL 4.1,CHAR 及 VARCHAR 字段的值是根据指定到字段的字符集和排序规则来排序和比对。
在 MySQL 4.1 之前,排序和比对是根据服务器字符集的排序规则;你可以声明字段有二进制(BINARY)属性来导致排序和比对根据字段值的字节数值。二进制(BINARY)不会影响字段如何保存或检索。
自动递增
自动递增属性能为你新的列生成唯一标识。要自动递增值开始不是 1,你可以在选项选项卡设置该值。
无符号
无符号(UNSIGNED)值可用于当你想在字段中只允许非负数和你需要一个更大数字上限范围的字段。自 MySQL 4.0.2,浮点和定点类型也可以无符号。和整数不同,列值的上限范围仍然是相同的。
填充零
默认补充的空格用零代替。例如:声明一个字段为 INT(5) ZEROFILL,值 4 会检索为 00004;声明一个字段为 FLOAT(20,10) ZEROFILL,值 0.1 会检索为 000000000.1000000015。
注意:如果为一个数字类型指定填充零,MySQL 自动为该字段加入无符号属性。
根据当前时间戳更新
自 4.1.2,你有更多灵活性决定哪个 TIMESTAMP 字段自动以当前的时间戳初始和更新。
值
使用这编辑框来定义集或枚举(SET/ENUM)的成员。
虚拟类型
选择虚拟列的类型。VIRTUAL 表示当运行命令时才计算该列。PERSISTENT 表示该值被实体地保存在表中。注意:MariaDB 5.2 或以上版本支持。
表达式
指定表达式或函数在插入时评估。
注意:MariaDB 5.2 或以上版本支持。
索引是表特定列的组织版本。MySQL 使用索引来方便快捷地检索记录。有了索引,MySQL 可以直接跳到你想要的记录。如果没有任何索引,MySQL 就读取整个数据文件以查找正确的记录。
在 索引 选项卡,只需简单地点击索引字段来编辑。使用索引工具栏,能让你创建新的、编辑或删除选择的索引字段。
按钮 | 描述 |
添加索引 | 添加一个索引到表。 |
删除索引 | 删除已选择的索引。 |
使用 名 编辑框来设置索引名。
要在索引包含字段,只是简单地双击 字段 字段或点击
来打开编辑器进行编辑。从列表中选择字段。要从索引中移除字段,以相同的方式取消勾选它们。你也可以用箭头按钮来改变索引字段排序。子部份 编辑框是用来设置字段的键长度。
注意:一些数据类型不容许由多个字段索引。例如:BLOB
索引类型
定义表索引的类型。
Normal | NORMAL 索引是最基本的索引,并没有限制,如唯一性。 |
Unique | UNIQUE 索引和 NORMAL 索引一样,只有一个差异 - 索引列的全部值必须只出现一次。 |
Full Text | FULL TEXT 索引用于 MySQL 全文搜索。 |
索引方法
当创建索引时指定索引类型,BTREE 或 HASH。
注释
设置任何可选的文本描述当前索引。
注意:MySQL 5.5.3 或以上版本支持。
外键是一个在关联式表中符合另一个表主键的字段。外键可以用作交叉参考表。
在 外键 选项卡,只需简单地点击外键字段来编辑。使用外键工具栏,能让你创建新的、编辑或删除选择的外键字段。
注意: MySQL 3.23.44 或以上版本支持外键。 MySQL 4.0.13 或以上版本支持编辑外键。
按钮 | 描述 |
添加外键 | 添加一个外键到表。 注意:两个表必须是 InnoDB 类型(或如果你有 solidDB 类型 solidDB for MySQL)。在参考表中,必须有一个索引,在外键列以相同排序编入第一列。由 MySQL 4.1.2 开始,如 果该索引不存在,它将会在参考表中自动创建。 |
删除外键 | 删除已选择的外键。 注意:MySQL 4.0.13 或以上版本支持。 |
使用 名 编辑框来输入新键的名。
使用 参考数据库 和 参考表 下拉列表来分别选择一个外部索引数据库及表。
要包含字段或参考字段到键,只需简单地双击 字段 或 参考字段 字段或点击
来打开编辑器进行编辑。
删除时 和 更新时 下拉列表定义采取行动的类型。
CASCADE | 删除对应的外键,或更新对应的外键为主键的新值。 |
SET NULL | 设置全部对应的外键列为 NULL。 |
No ACTION | 不改变外键。 |
RESTRICT | 生成一个错误表明删除或更新将创建一个外键限制冲突。 |
相关主题:
外键数据选择
触发器是一个与表有关的有名数据库对象,当表出现特定的事件时,会激活它。
在 触发器 选项卡,只需简单地点击触发器字段来编辑。使用触发器工具栏,能让你创建新的、编辑或删除选择的触发器字段。
注意:MySQL 5.0.2 或以上版本支持触发器。
按钮 | 描述 |
添加触发器 | 添加一个触发器到表。 |
删除触发器 | 删除已选择的触发器。 |
使用 名 编辑框来设置触发器名。
使用 触发 下拉列表来定义触发器行动的时间。它可以是 Before 或 After 来指示在激活它的语句前或后激活触发器。
插入
每当一个新行插入表,触发器会被激活。例如,INSERT、LOAD DATA 和 REPLACE 语句。
更新
每当修改一个行,触发器会被激活。例如,UPDATE 语句。
删除
每当从表删除一个行,触发器会被激活。例如,DELETE 和 REPLACE 语句。然而,DROP TABLE 和 TRUNCATE 语句在表不会激活触发器。
定义 选项卡定义当激活触发器时运行的语句。要包含你的语句,只需简单地点击来写。如果你要运行多句语句,请使用
BEGIN ... END 复合语句结构。例如:
BEGIN
set new.容量 = new.容量 + 100; set new.总数 = new.总数 + 100;
END
引擎
定义表的引擎。
字符集
定义表的字符集类型。
排序规则
为表选择排序规则。
自动递增
在编辑字段设置或重设 自动递增的值。自动递增值指示下一个记录的值。
校验和 或 表校验和 (仅适用于 MyISAM 和 Aria 表)
勾选这个选项,如果你想 MySQL 为全部行保持一个即时的校验和。注意:MariaDB 5.1 或以上版本支持 Aria 表。
页校验和 (仅适用于 Aria 表)
勾选这个选项,如果你想索引和数据使用页校验和来提供额外的安全。注意:MariaDB 5.1 或以上版本支持。
事务 (仅适用于 Aria 表)
勾选这个选项,如果你想确保死机安全。注意:MariaDB 5.1 或以上版本支持。
行格式
定义如何保存行。
平均行长度
一个为你表概算的平均行长度。你只需要为有可变大小行的大表设置这个。
最大行
你计划要在表保存的行最大数。这不是一个硬性限制,而是一个给存储引擎的一个提示,表必须能够保存至少这个数的行。
最小行
你计划要在表保存的行最少数。
键块大小
此选项提供了给存储引擎的一个提示,关于索引键块的大小,以字节为单位。如果需要,引擎可以改变此值。0 值指示使用默认值。
封装键(仅适用于 MyISAM 表)
如果你想有较小的索引,设置这个选项为 1。这通常令到更新速度较慢,读取速度较快。设置选项为 0 禁用全部封装键。设置它为 DEFAULT 告诉存储引擎只封装长 CHAR、VARCHAR、BINARY 或 VARBINARY 列。
延迟键写入 (仅适用于 MyISAM 表)
勾选这个选项,如果你想延迟键写入表直到关闭表。
数据目录
指定 MyISAM 存储引擎放表的数据文件的位置。
索引目录
指定 MyISAM 存储引擎放表的索引文件的位置。
联合(仅适用于 MRG_MyISAM 表)
联合 使用当你想访问该表同一的 MyISAM 表。这仅适用于 MERGE 表。你必须有 MERGE 表对应的表的 SELECT、
UPDATE 和 DELETE 权 限 。
插入方法(仅适用于 MRG_MyISAM 表)
如果你想插入数据到一个 MERGE 表,你必须用插入方法 表指定到要插入的列。插入方法是一个只限 MERGE 表的有用选项。使用 FIRST 或 LAST 值来插入到第一个或最后一个表,或一个 NO 值来防止插入。
连接(仅适用于 FEDERATED 表)
创建联合到远程表的本机表。你可以创建一个本机表并在 连接 编辑框指定连接到远程表时用的连接字符串(包含服务器名、登录、密码)。
连接字符串包含连接到远程服务器中保存实体数据的表时所需要的信息。连接字指定服务器名、登录凭据、端口号码和数据库或表信息。
连接字符串的格式如下: scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name
连接字符串范例: CONNECTION='mysql://username:password@hostname:port/database/tablename' CONNECTION='mysql://username@hostname/database/tablename' CONNECTION='mysql://username:password@hostname/database/tablename'
表空间(仅适用于 ndbcluster 表)
指定保存的表空间。
注意:MySQL 5.1.6 或以上版本支持。
存储(仅适用于 ndbcluster 表)
指定存储使用的类型(磁盘或记忆体),及可以是 DISK、MEMORY 或 DEFAULT。注意:MySQL 5.1.6 或以上版本支持。
统计数据自动重计
指示是否为 InnoDB 表自动重新计算持久统计数据。注意:MariaDB 10.0 或以上版本支持。
统计数据持久
指示 ANALYZE TABLE 创建的 InnoDB 统计数据是否保留在磁盘上。注意:MariaDB 10.0 或以上版本支持。
分割区
设置分割区选项。
注意:MySQL 5.1 或以上版本支持。
选项 | 描述 |
分割由 | 选择用于决定分割区的函数:HASH、KEY、LINEAR HASH、LINEAR KEY、RANGE 和 LIST。 |
分割区 | 设置分割区号码。 |
子分割由 | 选择用于决定子分割区的函数:Hash 和 Key。 |
子分割区 | 设置子分割区号码。 |
分割定义 | 使用 或 分割区 来添加或删除分割区。使用 或 子分割区 来添加或删除子分割区。 |
值 | 对于 RANGE 分割,每个分割区必须包含一个 VALUES LESS THAN 子句;对于 LIST 分割,你必 须为每个分割区指定一个 VALUES IN 子句。这是用来决定要保存在此分割区的行。 |
引擎 | 选择分割区和子分割区的引擎。 |
数据目录 | 分割区保存数据的目录位置。 |
索引目录 | 分割区保存索引的目录位置。 |
最大行 | 在分割区保存的行最大数。 |
最小行 | 在分割区保存的行最少数。 |
表空间 | 指定分割区的表空间。只用于 Falcon。 |
节点组 | 设置节点组。 |
注释 | 输入分割区的注释。 |
视图(包括可更新视图)是在 MySQL 服务器 5.0 实施并限于二进制版本 5.0.1 或以上。视图是用于访问一组关联(表),就像它是一个单一的表,并限制它们访问这一点。视图也可以用来限制访问行(一个特定表的子集)。对于列的访问控制,你也可以用 MySQL 服务器的精密权限系统。点击
来打开 视图 的对象列表。
你可以创建视图快捷方式,在对象列表窗格中的视图上右击并在弹出菜单中选择 创建打开视图快捷方式。这个选项是用来提供一个打开视图的便捷方式而无需打开主 Navicat。
按钮 | 描述 |
预览 | 预览视图的结果。 |
解释 | 显示视图的查询计划。 |
美 化 SQL | 在编辑器中以美化 SQL 选项设置代码的格式。 |
注意:你可以通过选择 查看 -> 显示结果 -> 在查询编辑器下面 或 在新选项卡 来选择显示结果选项卡在编辑器下面或在新选项卡。
视图创建工具(只限于完整版本)
视图创建工具 让你能视觉化地创建视图。即使不了解 SQL,它能让你创建及编辑视图。详细信息请看查询创建工具。
定义
你可以编辑视图定义为 SQL 语句(它实施的 SELECT 语句)。
提示:要自定义编辑器的视图并查看更多 sql 编辑功能,请看编辑器高级功能。
高级属性算法
Undefined | MySQL 选择要使用的算法。如果可能,它倾向于 Merge 而不是 Temptable, 因为 Merge 通常更有效,而且如果使用临时表,视图是不可更新的。 |
Merge | 将引用视图的语句文本与视图定义合并,使得视图定义的一部份最代语句的对应部 份。 |
Temptable | 视图的结果会被置于临时表中,然后使用它运行语句。 |
定义者
默认定义者值是运行 CREATE VIEW 的用户。(这是和 DEFINER = CURRENT_USER 相同。)如果给予一个用户值,它应该是一个 'user_name'@'host_name' 格式的 MySQL 帐号(使用在 GRANT 语句相同的格式)。user_name 及
host_name 值都是必须的。
安全性
SQL 安全性特性决当为视图检查视图运行时的访问权限时要使用定哪一个 MySQL 帐号。合法的特性值是 Definer 和
Invoker。这表明视图必须分别由定义它的或启用它的用户运行。默认的安全性值是 Definer。
检查选项
Local | 限制检查选项只用在定义的视图上。 |
Cascaded | 导致检查基础视图进行评估。 |
视图查看器
视图查看器 以网格显示视图数据。数据可以用两种模式显示:网格查看 和 表单查看。详细信息请看表查看器。注意:事务只限于可更新的视图。
存储例程(过程和函数)在 MySQL 5.0 支持。存储例程是一组可以保存在服务器上的 SQL 语句。一旦这项工作完成,客户端不需要保持再发出个别的语句,但可以参考存储例程。点击
来打开 函数 的对象列表。
函数向导
在对象列表的工具栏点击
新建函数。函数向导 会弹出并让你能很容易地创建过程或函数。当创建新过程或函数时,你是可以不显示 函数向导。
选择例程的类型:过程 或 函数。
定义参数。设置参数 模式、名 和/或 类型。
如果你创建一个函数,从列表中选择 返回类型 及以输入相应的信息:长度、小数点、字符集 和/或 枚举。提示:一旦取消勾选 下次显示向导,你可以在选项启用它。
定义
定义包括一个有效的 SQL 过程语句。这可以是一个简单的语句,如 SELECT 或 INSERT,或它可以是一个用 BEGIN 和
END 写的复合语句。复合语句可以包含声明循环和其它控制结构语句。
提示:要自定义编辑器的视图并查看更多 sql 编辑功能,请看编辑器高级功能。
参数
定义函数或过程参数。
返回类型
这个文本框将被启用仅用于创建函数。这指示函数的返回类型。
类型
从下拉列表选择你想创建的存储例程,即 PROCEDURE 和 FUNCTION。高级属性
安全性
指定用创建例程的用户的权限来运行例程,或是用启用它的用户的权限来运行。
定义者
默认定义者值是运行 CREATE PROCEDURE 或 CREATE FUNCTION 语句的的用户。(这是和 DEFINER =
CURRENT_USER 相同。)如果给予一个用户值,它应该是一个 'user_name'@'host_name' 格式的 MySQL 帐号(使用在 GRANT 语句相同的格式)。user_name 及 host_name 值都是必须的。
数据访问
一些特性提供信息关于例程使用的数据性质。
Contains SQL | 表示例程不包含读或写数据的语句。如果没有明确给予特性,这是默认的。 |
No SQL | 表示例程不包含 SQL 语句。 |
Reads SQL Data | 表示例程包含读数据的语句,但不包含写数据的语句。 |
Modifies SQL Data | 表示例程包含写数据的语句。 |
决定性
如果函数或过程总是对同样的输入参数生成同样的结果,则被认为它是决定性,否则就是非决定性。
结果
要运行过程或函数,在工具栏点击
运行。如果 SQL 语句是正确的,该语句将被运行,及如果该语句应该返回数据,结果 选项卡会打开与过程或函数返回的数据。如果运行过程或函数时发生错误,运行停止,显示相应的错误信息。如果函数或过程需要输入参数,输入参数 框将弹出。使用「,」来分隔参数。
提示:Navicat 支持返回 10 个结果集。
MySQL 事件计划是在 MySQL 5.1.6 添加。MySQL 事件是按计划运行工作。因此,我们有时称它们为计划事件。当你创建一个事件时,你是创建一个有名的数据库对象,包含在一个或多个规律区间运行一个或多个 SQL 语句,并在特定的日期时间开始及结束。从概念上,这是类似 Windows 任务计划程序的概念。点击
来打开 事件 的对象列表。
定义
定义包括一个有效的 SQL 语句。这可以是一个简单的语句,如 SELECT 或 INSERT,或它可以是一个用 BEGIN 和
END 写的复合语句。复合语句可以包含声明循环和其它控制结构语句。
提示:要自定义编辑器的视图并查看更多 sql 编辑功能,请看编辑器高级功能。
定义者
指定当在事件运行时检查访问权限要使用的用户帐号。默认定义者值是运行 CREATE EVENT 语句的的用户。(这是和 DEFINER = CURRENT_USER 相同。)如果给予一个用户值,它应该是一个 'user_name'@'host_name' 格式的
MySQL 帐号(使用在 GRANT 语句相同的格式)。user_name 及 host_name 值都是必须的。
状态
你可以创建一个事件但可以用 DISABLE 关键字保持不激活。或者,你可以用 ENABLE 来出明确默认状态,这是激活。
ON COMPLETION
正常情况下,一旦事件已过期,它将立即删除。你可以通过指定 ON COMPLETION PRESERVE 来重写此性能。使用 ON COMPLETION NOT PRESERVE 只是使默认非持久性的性能明确。
计划 AT
AT timestamp 用于一次性事件。它指定该事件只运行一次于 timestamp 的日期和时间,它必须同时包含日期和时间,或必须是一个解析为 datetime 值的表达式。使用 +INTERVAL 来创建一个事件,它发生在与当前日期和时间有关的将来某个时候。
EVERY
在定期间隔重复的行动,你可以用一个 EVERY 子句之后是一个 interval。(+INTERVAL 与 EVERY 不能同时使用。)
STARTS
EVERY 子句还可能包含一个非必须的 STARTS 子句。STARTS 之后是一个 timestamp 值表示行动应该何时开始重复,也可以用 +INTERVAL 间隔以指定「由现在开始」的时间量。
例如:EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + 1 WEEK 的意思是「每 3 个月,从现在起一周后开始」。
ENDS
EVERY 子句还可包含一个非必须的 ENDS 子句。ENDS 关键字之后是一个 timestamp 值告诉 MySQL 何时停止重复事件。你也可以用 +INTERVAL 间隔与 ENDS 一起。
例如:EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS
CURRENT_TIMESTAMP + INTERVAL 4 WEEK 相当于「每十二个小时,从现在起三十分钟后开始,并于现在起四个星期后结束」。
timestamp 必须在未来的 - 你不能安排一个事件发生在过去。
interval 区间由两部份组成,数量和时间单位*。
*YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND