前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《sql基础教程》书里的sql文件如何导入数据库?

《sql基础教程》书里的sql文件如何导入数据库?

原创
作者头像
猴子数据分析
修改于 2021-05-04 14:17:44
修改于 2021-05-04 14:17:44
2K00
代码可运行
举报
文章被收录于专栏:猴子数据分析猴子数据分析
运行总次数:0
代码可运行

对于刚入门学习sql的,我只推荐一本书Mick的《SQL基础教程》。网上很多人推荐《SQL必知必会》,其实这本书更适合数据库运维,对刚入门的朋友来说,理解不了。而Mick的《SQL基础教程》的书通俗易懂,让你学起来有趣的多了。兴趣才是学下去的理由。

下面回答这本书里的数据如何导入数据库里。

如果你看到Mick《sql基础教程》中的第1章的1-3《SQ概要:sql语句及其种类》(对应书里第32页)下面部分,就是要将数据导入数据库里了。

首先,确保你已经安装了mysql和mysql图形化客户端navicat。如果没有安装的,参考这里的步骤安装:

下面我们聊聊如何使用mysql图形化客户端navicat导入到数据库里。

  • 连接mysql服务端

如果你已经按前面给的教程创建了连接,并成功连接到数据库。

当你如果打开navicat创建的连接图标处是灰色的,表示客户端没用连接到mysql服务端。

鼠标右键点击连接名称,然后点击“打开连接”

  • 创建数据库

第1步,创建数据库

点击菜单栏“查询”下的“新建查询,就可以打开输入sql语句的地方。

然后输入创建数据库的sql语句,点击运行,可以看到sql语句执行结果。

鼠标右键连接名称,选择“刷新”,就可以看到创建的数据库了

第2步,修改数据库编码

因为我们数据库里会存放中文内容,所以需要修改数据库编码,不然会面会报错。按下图设置数据库的编码。

修改完,点击“确定”按钮。

  • 创建表

数据库shop名称前面的图标是灰色的,表示当前没有使用这个数据库。

在数据库名称上鼠标右键,选择“打开数据库”。

点击数据库(shop)下的查询,鼠标右键选中“新建查询”。以这种方式打开的查询编辑器里的sql语句都是针对当前这个数据库的。

在查询编辑器里输入下面创建商品表(Product)的sql语句,点击“运行”按钮就会执行sql语句。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 创建商品表(Product)
CREATE TABLE Product
(product_id      CHAR(4)      NOT NULL,
 product_name    VARCHAR(100) NOT NULL,
 product_type    VARCHAR(32)  NOT NULL,
 sale_price      INTEGER ,
 purchase_price  INTEGER ,
 regist_date     DATE ,
 PRIMARY KEY (product_id));

鼠标右键点击“表”,选中“刷新”,我们就可以看到创建的表。双击表名,可以看到创建的表和sql语句里定义的一样。

  • 插入数据

点击下图红框的地方,我们回到刚才写sql语句的查询编辑器里。

在查询编辑器里写入下面插入数据的sql语句。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 插入数据
INSERT INTO Product VALUES ('0001', 'T恤' ,'衣服', 1000, 500, '2009-09-20');
INSERT INTO Product VALUES ('0002', '打孔器', '办公用品', 500, 320, '2009-09-11');
INSERT INTO Product VALUES ('0003', '运动T恤', '衣服', 4000, 2800, NULL);
INSERT INTO Product VALUES ('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20');
INSERT INTO Product VALUES ('0005', '高压锅', '厨房用具', 6800, 5000, '2009-01-15');
INSERT INTO Product VALUES ('0006', '叉子', '厨房用具', 500, NULL, '2009-09-20');
INSERT INTO Product VALUES ('0007', '擦菜板', '厨房用具', 880, 790, '2008-04-28');
INSERT INTO Product VALUES ('0008', '圆珠笔', '办公用品', 100, NULL, '2009-11-11');

这时候不要点击“运行”,因为运行会把这个“查询编辑器”里所有的sql都执行一遍。但是创建表的sql语句刚才我们已经执行过了,现在只需要执行创建数据的sql语句。

首先,用鼠标选中要执行的那部分sql语句。

然后点击下图红框的地方,就会只执行选中的sql语句。

我们可以通过界面下方的sql执行结果,看sql运行是否有报错,如果没有报错,表示sql运行成功。

双击表名,我们就可以看到已经插入的数据。

ps:如果你之前打开过表,会遇到下面的问题

出现运行选中代码后,product表未生成数据。

解决办法:按下图操作先关掉打开的表,然后重新打开

我们按下图顺序操作,将刚才的sql语句保存下来,万一以后需要。

保存后的sql语句,可以在下图红框的地方看到

我们也可以把创建数据库的sql语句保存下来。

我们可以看到,创建数据库的语句保存在连接名下(图中红色的部分),因为这部分语句是创建数据库的,不针对任何特定的数据库。

而数据库shop下创建的sql语句保存在它自己的查询里面(图中蓝色部分),表示这里的语句是针对这个特定的数据库的操作。

双击保存的查询名称,可以再次打开查询编辑器,对sql进行编辑。

  • 导出数据库

按下图操作我们将数据库导出成文件。这样以后你可以将文件分享给其他人,别人也可以使用你的数据库,或者作为数据库的备份,哪天你数据库里的数据丢了,可以使用这个文件恢复。

导出成功后,我们就可以在刚才保存文件的路径下看到这个sql脚本文件后缀是.sql,这种类型的文件叫做sql脚本文件。

我们使用软件notepad++打开sql脚本文件(windows用notepad++,在mac上可以用sublime text),没有这个软件的去官网下载一个,这个软件可以打开各种类型的文件,是技术学习的必备工具。

打开后可以看到sql脚本文件,就是我们刚才写的sql语句,还有软件导出时自动加了些sql语句。所以sql脚本文件就是一个包括了sql语句,文件名后缀是.sql的文件。

如果你有特别留意的话,会发现我们刚才导出的sql脚本文件里,有这样一句sql:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE IF EXISTS `product`;

也就是说,如果数据库里已经有这个表了,那么就删除表以后再执行后面的sql语句。

因为有时候数据库里面表了,如果没有这一句会报错。

  • 导入sql脚本文件 按下图操作把刚才的sql文件导入数据库里。

选择要导入的sql脚本文件,其他默认,然后点击开始。

出现下面的信息,表示导入成功。如果不是下面的信息,表示导入有错误,具体查看报错信息,根据报错信息顺藤摸瓜来解决。

导入成功后,点击关闭。刷新数据库可以看到导入的数据。

  • Mick《sql基础教程》里的数据如何导入数据库里?

前面我们演示了创建数据库、在哪写sql语句、导出sql脚本文件,导入sql脚本文件,知道了sql脚本文件是怎么来的。现在我们回到Mick《sql基础教程》中的第1章的1-3《SQ概要:sql语句及其种类》(对应书里第32页)。

我们看如何把书中说的sql脚本文件(CreateTableProduct.sql)导入数据库里。

为了演示整个过程,我们把刚才创建的表删掉。

第1步,修改sql脚本文件

用notepad++打开sql脚本文件,瞅瞅里面有啥。

我们看到里面是创建表和增加数据的sql语句。

因为有时候导入数据会报错,当再次运行导入sql脚本文件,会报类似下面的错误:表已经存在。

为了防止上面的错误,我一般都会在建立表的sql前面加上这么一句(product是表名,根据你的实际需求,修改成你对应的表名):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 表存在时,先删除表
DROP TABLE IF EXISTS Product;

第2步,创建数据库

因为我们前面已经创建了数据库。后面导入数据,如果没有数据库,需要先创建数据库。

第3步,导入sql脚本文件

按下图步骤操作

导入结果显示未成功(Unsuccessfully),我们看如何根据报错信息顺藤摸瓜找到原因。

将下图1处的下拉框拉到最上面,我们就可以看到详细的报错信息是: [Err] 1366 - Incorrect string value: "\xD0\xF4" for column。

把这个报错信息放到搜索引擎中,很快就可以找到解决方案。报错原因是因为编码的问题。

或者报下面的错误:

解决办法:用notepad++打开sql脚本文件,然后按下图修改sql脚本文件编码:

在notpad++中设置好编码以后,记得点击“保存”使sql脚本文件修改生效。

我将修改编码后的sql脚本文件保存到下面这个文件里了

再次运行导入sql文件,执行成功。刷新表,可以看到导入的数据。

  • 总结

通过这个教程,你已经学会了:

1)如何使用navicat连接mysql服务端

2)如何在查询编辑器里写sql语句

2)如何创建数据库

3)如何导入sql脚本文件

4)如何导出sql脚本文件

5)Mick《sql基础教程》中的数据如何导入

想要系统的学习sql可以看这个:

如何学习 SQL 语言?​www.zhihu.com

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
大数据入门与实战-SQL基础教程
第1章数据库和SQL 1.SQL书写的基本规则 SQL分句以分号结尾 SQL语句不区分大小写 创建数据库 CREATE DATABASE shop; 创建表 USE shop; CREATE TABLE shoin( product_id CHAR(4) NOT NULL COMMENT "商品id", product_name VARCHAR(100) NOT NULL COMMENT "商品名称", product_cate VARCHAR(32) NOT NULL COMMENT "商品分类",
致Great
2019/05/31
4250
MySQL引入脚本文件.sql的一些技巧(高效快速)
第一步:(可视化操作创建的数据库表,也是可以直接转储sql语句出来,方便下次直接使用,就不用重新写sql语句了)
软件小生活
2021/08/16
7350
Python数据库操作 mysql基础操作命令#学习猿地
> 方式三:通过编程语言(python,php,java,go...)执行mysql命令
学习猿地
2020/03/24
3800
SQL基础查询
对含有NULL数据的列使用DISTINCT关键字 NULL也被视为一类数据,如果存在多行NULL时,将被合并成一行。
活用数据
2019/06/03
2.4K0
SQL基础查询
MySQL加载本地文本、导入SQL文件及其他常见命令行。
1、使用SHOW语句,查询当前服务器中存在哪些数据库: show database; 2、创建一个测试数据库: create database testdb; 3、选择使用你所创建的数据库: use testdb; 4、查看现在的数据库中存在什么样的表: show tables; 5、创建一个数据库表: create table mytable (id int(4),name varchar(10)); 6、显示表结构: describe mytable; 7、往表中插入值: insert into myt
赵腰静
2018/07/26
1.4K0
Python操作mysql数据库知识大全
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。
Python知识大全
2020/02/13
8510
MySql基础-笔记12 -重复数据处理、SQL注入、导入导出数据
读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。
虫无涯
2023/01/31
1.5K0
新闻推荐实战(一):MySQL基础
本文属于新闻推荐实战—数据层—构建物料池之MySQL。MySQL数据库在该项目中会用来存储结构化的数据(用户、新闻特征),作为算法工程师需要了解常用的MySQL语法(比如增删改查,排序等),因为在实际的工作经常会用来统计相关数据或者抽取相关特征。本着这个目的,本文对MySQL常见的语法及Python操作MySQL进行了总结,方便大家快速了解。文末附上参考资料
用户9656380
2022/04/14
2.2K0
新闻推荐实战(一):MySQL基础
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
数据分析离不开数据库,如何使用python连接MySQL数据库,并进行增删改查操作呢?
派大星的数据屋
2022/04/03
1.3K0
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
【MySQL基础篇】二、数据库的操作
​ 接下来学的数据库的操作以及表的结构操作,都是属于我们之前讲的 DDL 也就是数据定义语言,它负责的是对结构的管理,而不是对数据内容的管理!
利刃大大
2025/05/21
980
【MySQL基础篇】二、数据库的操作
如何实现数据通过表格批量导入数据库
在许多业务场景中,需要将大量数据从表格文件(如Excel、CSV)中导入数据库,以便进行进一步的数据分析和处理。本文将介绍如何通过编程实现数据通过表格批量导入数据库,以提高数据导入的效率和准确性。我们将以 Python 和 MySQL 数据库为例进行讲解,同时提供一些拓展思路和优化建议。
IT_陈寒
2023/12/14
5460
如何实现数据通过表格批量导入数据库
初始化数据库和导入数据
在Spring Boot应用的测试一文中,我们在StarterRunner类的run(...)方法中给数据库中添加一些初始数据。尽管通过编程方式添加初始数据比较快捷方便,但长期来看这并不是一个好办法——特别是当需要添加的数据量很大时。我们开发最好把数据库准备、数据库修改和数据库的配置与将要运行的程序代码分离,尽管这仅仅是为测试用例做准备。Spring Boot已经提供了相应的支持来完成这个任务。
阿杜
2018/08/06
1.8K0
SQL Server数据库表的创建、修改、复制、删除及数据处理
  本文介绍基于Microsoft SQL Server软件,实现数据库表的创建、修改、复制、删除与表数据处理的方法。
疯狂学习GIS
2025/03/17
1K0
SQL Server数据库表的创建、修改、复制、删除及数据处理
如何快速导入数据
日常学习和工作中,经常会遇到导数据的需求。比如数据迁移、数据恢复、新建从库等,这些操作可能都会涉及大量数据的导入。有时候导入进度慢,电脑风扇狂转真的很让人崩溃,其实有些小技巧是可以让导入更快速的,本篇文章笔者会谈一谈如何快速的导入数据。
MySQL技术
2020/05/22
2.9K0
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
数据分析离不开数据库,如何使用python连接MySQL数据库,并进行增删改查操作呢?
龙哥
2020/03/27
3.8K0
SQL基础-->数据库事务(TRANSACTION)
数据库事务是指作为单个逻辑工作单元执行的一系列操作,可以认为事务就是一组不可分割的SQL语句
Leshami
2018/08/07
6620
python操作mysql数据库
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。
想偷懒的程序员
2019/11/12
2.2K0
如何在SQL Server中将表从一个数据库复制到另一个数据库
在某些情况下,作为DBA,您需要将模式和特定表的内容从数据库复制到同一实例中或在不同的SQL实例中,例如从生产数据库中复制特定表到开发人员以进行测试或排除故障。 SQL Server提供了许多方法,可以用来执行表的数据和模式复制过程。为了研究这些方法中的每一个,我们将考虑下面的场景: 托管SQL服务器:localhost。这两个数据库都驻留在同一个SQL Server 2014实例中。 源数据库:AdventureWorks2012。 目标数据库:SQLShackDemo。 将从源数据库复制到目标数据库的表
程序你好
2018/07/20
9K0
java核心技术第二篇之数据库SQL语法
#查询products表记录 SELECT * FROM products WHERE price > 2000; – 单行注释 /* 多行注释 */ #创建数据库 CREATE DATABASE hei66_day19_db;hei66_day19_db #查看数据库 SHOW DATABASES; #查看某个数据库的定义信息 SHOW CREATE DATABASE hei66_day19_db; #删除数据库 DROP DATABASE hei66_day19_db;
海仔
2019/08/05
1.1K0
mysql数据库管理工具navicat基本使用方法
昨天闲来无事,研究了一下mysql和navicat!看见一篇讲的很详细的博客,分享一下!
javascript艺术
2021/05/28
2.5K0
mysql数据库管理工具navicat基本使用方法
推荐阅读
相关推荐
大数据入门与实战-SQL基础教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验