前几天帮一位大一计算机新生启动导师给他的现成java项目,发现对于萌新来说,怎么根据已有的sql文件来创建对应的数据库与数据库表是一件困难的事,并且萌新表示网上缺少教程且问ai很多次都没成功,所以我决定写一篇新手向博客来教大家如何建表建库。
问题描述
现在已有一个xxx.sql文件,如
但是不知道怎么根据这个sql文件去在本地创建对应的数据库与表这个问题其实并不是网上没有教程or人工智能不会解决,只是萌新们可能不会很好的描述问题来让ai理解or在互联网上检索。
如果是我来询问ai,我会这么问:我是一个计算机领域新手,我现在有一个sql文件,但是我不知道如何根据这个文件去创建里面对应的数据库与表,请告诉我需要用到的工具,具体的步骤与检验是否创建成功的方法。
如果是检索的话,我会搜索“如何在本地根据已有sql文件创建数据库与数据库表”,这样就会搜到这篇文章,跟着操作,就能成功了(bushi)
一、建库建表的必备神器——navicat
要基于SQL文件创建数据库和表,你可以使用命令行(大多数学校的数据库课是这么教的),但是这样非常麻烦,且可视化不够ok,会遇到各种本可以避免的问题,所以不论是企业开发还是自己练手,我都推荐大家学习使用数据库管理工具,比如Navicat。
Navicat 是一款强大的数据库管理工具,它支持多种数据库系统,包括 MySQL、MariaDB、PostgreSQL、Oracle 等,提供了图形化界面来简化数据库的管理、开发和维护工作。与 MySQL 不同,Navicat 本身不是一个数据库服务器,而是数据库服务器的客户端软件,用于连接、管理和操作数据库服务器。它是拿来管理数据库的!
Navicat的安装教程非常多,找一个时间比较新的跟着做就行,注意navicat有多个版本,有部分是收费的,不过基本上都有破解版。我使用的是Navicat Premium 17,破解版推荐大家去“软件管家”去找,它不仅提供了绿色安全的软件,而且是傻瓜式教学安装。
二、创建步骤
打开Navicat后,就可以开始创建库表了,图文步骤如下:
1.创建连接
点击左上角“连接”,去新建连接
根据你的sql文件匹配的数据库来选择,一般是MySQL,选中mysql。
给连接命名,比如我就命名为“test”,主机这里用默认的"localhost",如果是连远程服务器的数据库,那么就改为对应的ip地址(萌新一般在本地搭建就好啦),端口默认为3306,用户名默认为root,密码是自己设置的,记好这一页的内容,在Java项目中一般有地方需要配置,这里不展开讲。
创建成功后,双击该连接,就能看到这个连接里面的库了
这里面的information_schema/mysql/performance_schema/sys 都是MySQL 数据库管理系统自带的系统数据库,sky_take_out和suanfa是我之前自己创的库。
2.运行sql文件创建数据库与库表
先给大家展示一下我的sql文件
-- 创建数据库 test,如果不存在的话
CREATE DATABASE IF NOT EXISTS `test`;
-- 使用数据库 test
USE `test`;
-- ----------------------------
-- Table structure for tme_contract_process_table
-- ----------------------------
CREATE TABLE IF NOT EXISTS `tme_contract_process_table` (
`modifier` varchar(60) COMMENT '修改人',
`pk_process` varchar(32) COMMENT '主键',
`id` varchar(22) NOT NULL COMMENT 'id',
`pubts` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'pubts',
`creator` varchar(60) COMMENT '创建人',
`modify_time` datetime COMMENT '修改时间',
`create_time` datetime COMMENT '创建时间',
`contract_number` varchar(32) COMMENT '合同编号',
`contract_id` varchar(32) COMMENT '合同系统合同 ID',
`original_contract_number` varchar(32) COMMENT '原合同号',
`contract_name` longtext COMMENT '合同名称',
`operator_code` varchar(32) COMMENT '合同经办人编码',
`operator_name` varchar(32) COMMENT '合同经办人',
`operate_status` varchar(32) COMMENT '操作状态',
`operate_status_name` varchar(32) COMMENT '操作状态名称',
`operate_counts` decimal(32,8) COMMENT '操作次数',
`operate_begintime` datetime COMMENT '操作开始时间',
`operate_endtime` datetime COMMENT '操作结束时间',
`error_msg` longtext COMMENT '处理结果等报错信息',
`notice_status` varchar(32) COMMENT '通知状态',
`response_msg` longtext COMMENT '合同消息',
`creationtime` datetime COMMENT '创建时间',
`ts` datetime COMMENT '时间戳',
`inOutTypeCode` varchar(32) COMMENT '收支类型',
`def1` varchar(32) COMMENT 'def1',
`def2` varchar(32) COMMENT 'def2',
`def3` varchar(32) COMMENT 'def3',
`def4` varchar(32) COMMENT 'def4',
`def5` varchar(32) COMMENT 'def5',
`def6` varchar(32) COMMENT 'def6',
`def7` varchar(32) COMMENT 'def7',
`def8` varchar(32) COMMENT 'def8',
`def9` varchar(32) COMMENT 'def9',
`def10` varchar(32) COMMENT 'def10',
`ytenant_id` varchar(36) NOT NULL COMMENT '租户id',
INDEX `i_ytenant_id`(`ytenant_id`),
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='合同记录表';
可以看到sql语句中有创建数据库的语句,创建的库名字叫test
CREATE DATABASE IF NOT EXISTS `test`;
创建数据库表的语句,表名为tme_contract_process_table
CREATE TABLE IF NOT EXISTS `tme_contract_process_table`
而Navicat就具有这么一个功能,即直接运行这个sql语句,来一键创建好数据库和表,方法如下:
右击该连接"test",选中**“运行sql文件”**,点击图中小点,选好要运行的sql文件
然后点开始
运行成功
再右击"test"连接,点“刷新”,就能看到已经创建好的数据库和表啦!