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

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

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

首先,确保你已经安装了mysql和mysql图形化客户端navicat。如果没有安装的,参考这里的步骤安装:mysql数据库安装教程​mp.weixin.qq.com

客户端navicat安装教程​mp.weixin.qq.com

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

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

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

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

创建数据库

第1步,创建数据库

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

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

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

第2步,修改数据库编码

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

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

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

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

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

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

-- 创建商品表(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语句。

-- 插入数据

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:

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是表名,根据你的实际需求,修改成你对应的表名):

-- 表存在时,先删除表

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

怎么把sql文件导入MySQL数据库中_《sql基础教程》书里的sql文件如何导入数据库?...相关推荐

  1. php将excel数据导入mysql表中_【PHP】将EXCEL表中的数据轻松导入Mysql数据表

    在网络上有不较多的方法,在此介绍我已经验证的方法. 方法一.利用EXCEL表本身的功能生成SQL代码 ①.先在"phpmyadmin"中建立数据库与表(数据库:excel,数据表: ...

  2. php将excel数据导入mysql表中_利用php将xls表格数据以原生方式快速导入mysql

    这里以联通的市区编码表为例,如图: 第一步,我们把xls表格中的首行作为mysql表中的字段,为了方便查看这里转换成了小写,表名随意,主键id可加可不加,看自己需求 第二步,将xls表格中除了首行以外 ...

  3. sql注入获取mysql版本信息_这可能是最全的SQL注入总结,很有用

    SQL注入原理 当客户端提交的数据未作处理或转义直接带入数据库,就造成了sql注入. 攻击者通过构造不同的sql语句来实现对数据库的任意操作. SQL注入的分类 按变量类型分:数字型和字符型 按HTT ...

  4. excel导入mysql命令行_将Excel数据导入MySql

    今天是全国数学建模比赛,同学选的一个题目需要对一个large的Excel表格进行统计,好哥们儿嘛--便帮助他完成了数据从Excel到MySql的转化.记下具体步骤分享给大家,也免得大家到网上到处乱找了 ...

  5. 如何在手机端从多个Excel文件多个Sheet中搜索某一内容,多个excel文件批量查找

    如何在手机端从多个Excel文件多个Sheet中搜索某一内容,多个excel文件批量查找 今天介绍一个在线工具:e.anyoupin.cn 比如: 多个年度的项目信息,每年一张工作簿.现在需要查找某些 ...

  6. 使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有新插入的数据的原因

    使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有数据的原因 没有提交事务,有时没有配置自动提交事务的设置,所以需要手动提交事务,即 sqlSession.commit ...

  7. 如何判断数据库中的两个表是否相同(相等)?比较数据库中的两个表是否完全相同,包括字段和每条记录

    如何判断数据库中的两个表是否相同(相等)?比较数据库中的两个表是否完全相同,包括字段和每条记录 目录

  8. PowerShell基础教程(10)——处理文件、文件夹和注册表项

    PowerShell基础教程(10)--处理文件.文件夹和注册表项 <o:p></o:p> Windows PowerShell 使用名词项来表示在 Windows Power ...

  9. Linux中nginx安装基础教程

    Linux中nginx安装基础教程 1.安装所需的运行环境 (1) 需要安装gcc的环境. yum install gcc-c++ (2)第三方包.   Perl库 PCRE(Perl Compati ...

  10. linux下导入mysql表乱码_在linux下导入.sql文件,数据库中文乱码

    现象描述 我是在aix下面导入如下SQL语句时,数据库中显示乱码. insert into CONFERENCE(CONFERENCEID,SUBCONFERENCEID,ACCESSNUMBER,A ...

最新文章

  1. LeetCode简单题之最常见的单词
  2. 原360首席科学家颜水成正式加入依图科技,任首席技术官
  3. 人工智能是这样理解真正的活过了
  4. Informix IDS 11系统经管(918考试)认证指南,第 5 部分: 数据库做事器行使(5)
  5. 【HDOJ】1597 find the nth digit
  6. 【文件包含、宏、条件编译】(学习笔记21--预处理命令)
  7. MySql大数据量恢复
  8. HDFS简单的shell操作--大数据纪录片第二记
  9. 红帽子linux拨号上网,centos6.5宽带拨号上网的方法
  10. 经纬度转小数格式 java_怎么把经纬度转成小数
  11. 巨头争云存储祭免费旗 或重演视频业消耗战
  12. …… ᵇᵘᵗ ᵗʰᵃᵗ ʸᵒᵘ ˡᵒᵛᵉ ⁿᵒ ᵒⁿᵉ 【transshipment】
  13. 华为手机主界面的返回键怎么调出来_华为手机没有返回键怎么调出来
  14. 1253本科2016c语言程序设计试题,1253电大《C语言程序设计A》试题和答案200901
  15. WPF制作贪吃蛇小游戏
  16. linux cadaver 命令,备份Linux系统的数据到坚果云
  17. windows找不到gpedit.msc请确定文件名
  18. 阿里云API网关调用示例
  19. 基于Qt的FreeType字体轮廓解析
  20. 【Leetcode】914. X of a Kind in a Deck of Cards

热门文章

  1. MD5类加密解密工具类
  2. 【从零开始学TVM】三,基于ONNX模型结构了解TVM的前端
  3. 特征选择-相关系数法F检验
  4. 平行坐标图:高维数据可视化必备图形
  5. 【数据艺术科技1】基于pyhon的高维数据可视化。(1、2维)
  6. Java版进销存ERP管理系统源码
  7. C++开发必备的书——《C++代码整洁之道》C++17可持续软件开发模式实践
  8. 阿里云主要产品及功能介绍,阿里云产品分为6大分类:云计算基础/安全/大数据/人工智能/企业应用/物联网...
  9. logit回归怎么看显著性_spss logistic回归分析结果如何分析
  10. 阿里云邮箱推送发送邮件 25端口禁用 问题