# navicat 虽然我们可以通过命令行的方法来操作mysql数据库,但这无疑增加了学习的难度。一个好的学习路径必然是平缓的,我们在此为了塑造大脑更易接受的平滑学习曲线。使用非常好用的navicat来管理数据库。 Navicat是香港卓软数码科技有限公司生产的一系列MySQL、MariaDB、Oracle、SQLite、PostgreSQL 及Microsoft SQL Server图形化资料库管理及发展软件。 Navicat官方下载地址: [https://www.navicat.com.cn/products/](https://www.navicat.com.cn/products/) ![](https://img.kancloud.cn/51/e5/51e59dc9e25b8ef714251bff7457e502_583x225.png) 点击免费试用后跳转到下载页面,根据自己当前的操作系统选择试用的产品下载安装。 >[info] 好的产品需要好的工程师,好的工程师需要资金的支持,如果条件允许请支持正版。如果条件不允许,请在条件允许后支持正版。 # 启动mysql 教程中我们使用开源免费的mysql数据库,该软件已集成于我们上节安装的xampp中。启动的方法与上节中启动apache的方法完全相同。 ![](https://img.kancloud.cn/16/a2/16a26c24ef2530156320cdbce3d0d415_666x473.png) 打开xampp并在服务中选择mysql后点击右侧的start按钮。 >[warning] 如果未能成功启动,大多数也是由于端口冲突造成的。解决的方法同前面我们讲过的解决apache的端口冲突问题。mysql默认工作在3306端口,你可以将此端口更改为3307或其它未占用的端口。 # 新建连接 打开navicat管理工具,新建一个连接。如下图所示: ![](https://box.kancloud.cn/2016-06-16_5762164f8f5ae.png) 随意起一个连接名,比如为localhost,主机或IP地址、端口号、用户名和密码均可保持默认。如下图所示: ![](https://box.kancloud.cn/2016-06-16_5762164fa5b02.png) 即主机名或IP地址:`localhost`,端口:`3306`,用户名:`root`,密码:空,如果有其它项则保持默认。 填写完成后点击左下角的:连接测试 按钮。 ![](https://img.kancloud.cn/13/5c/135c43c7842a274419eaf9818a76ad7f_417x135.png) >[info] 以上截图发生在不同的操作系统、不同的navicat版本上。各个版本在各个操作系统的使用大同小异。 # 新建数据库 双击左侧连接名`localhost`,打开该连接。 ![](https://box.kancloud.cn/2016-06-16_5762164fbc19d.png) 然后右击`localhost`,选择“新建数据库” ![](https://img.kancloud.cn/21/c2/21c2c3250317c26ccb192678f58d176d_478x176.png) 在弹出的对话框中填写数据库名称`tp6`,字符设置为`utf8mb4`,默认排序方式选择`utf8mb4_general_ci`。 # 初始化数据表 ![](https://img.kancloud.cn/32/a1/32a1b4df6279efa618960fbfd6e896e1_712x463.png) 双击数据库名tp6打开需要操作的数据库,选择“查询 Queries”,在右侧查询窗口中,点击【新建 New】按钮打开“查询编辑器”。 ![](https://img.kancloud.cn/0f/9f/0f9faa09b78784f1fa78a263f9fff950_735x360.png) 输入SQL语句后,点击【运行 Run】按钮执行该SQL语句。 执行的SQL语句如下: ```sql SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for yunzhi_teacher -- ---------------------------- DROP TABLE IF EXISTS `yunzhi_teacher`; CREATE TABLE `yunzhi_teacher` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT '' COMMENT '姓名', `sex` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '0男,1女', `username` varchar(16) NOT NULL COMMENT '用户名', `email` varchar(30) DEFAULT '' COMMENT '邮箱', `create_time` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间', `update_time` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `teacher_username_unique` (`username`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4; -- ---------------------------- -- Records of yunzhi_teacher -- ---------------------------- BEGIN; INSERT INTO `yunzhi_teacher` VALUES (1, '张三', 0, 'zhangsan', 'zhangsan@mail.com', 123123, 123213); INSERT INTO `yunzhi_teacher` VALUES (2, '李四', 0, 'lisi', 'lisi@yunzhi.club', 123213, 1232); COMMIT; SET FOREIGN_KEY_CHECKS = 1; ``` ![](https://img.kancloud.cn/15/7e/157e0cb5755c6255680b2d0ec8825c5c_744x435.png) 然后我们回到tables数据表,刷新数据表,则可以看到新建的yunzhi_teacher数据表。 ![](https://img.kancloud.cn/62/8d/628d57aa6de3cf68af156968ece9d2e6_592x82.png) 即可看到新建的数据表,双击数据表打开后,测试数据显示如上: 好的,至此,我们已经在数据表中添加了测试数据。随着项目的推进,我们会越来越多的来操作数据库这个东西。前期,学到这里,没有出错,能看到测试数据,就已经达到了我们现在的目的。 # 发生了什么 本节中我们在navicat中成功的连接了xampp中集成的mysql,接着使用新建一个tp6数据库,最后使用运行sql语句的方式新建了yunzhi_teacher数据表,并初始化了两条测试数据。 ![](https://img.kancloud.cn/87/67/8767bfe023459b95709aa59dec7506a5_187x191.png) yunzhi_teacher结构如上。其中主键为与业务无关的ID,username添加了UNIQUE索引以保证其唯一性。 我们在版本控制中,建立了sql文件夹,并将上述sql代码存放于该文件中。 # 相关资源 | 内容 | 地址 | | ----------- | ----------- | | 本节源码 | [https://github.com/mengyunzhi/tp6/archive/step2.1.zip](https://github.com/mengyunzhi/tp6/archive/step2.1.zip) | |