SQL基础教程
对于刚入门学习sql的,我只推荐一本书Mick的《SQL基础教程》。网上很多人推荐《SQL必知必会》,其实这本书更适合数据库运维,对刚入门的朋友来说,理解不了。
而Mick的《SQL基础教程》的书通俗易懂,让你学起来有趣的多了。兴趣才是学下去的理由。
https://pic4.zhimg.com/v2-761d101cca8bbbd9359b028c4683a3fb_b.jpg
下面回答这本书里的数据如何导入数据库里。
如果你看到Mick《sql基础教程》中的第1章的1-3《SQ概要:sql语句及其种类》(对应书里第32页)下面部分,就是要将数据导入数据库里了。
https://pic2.zhimg.com/v2-187864a5c0074ace4e517d7b314aacef_b.jpg?consumer=ZHI_MENG
首先,确保你已经安装了mysql和mysql图形化客户端navicat。如果没有安装的,参考这里的步骤安装:
mysql数据库安装 | 保姆级视频
数据库客户端navicat安装使用教程
下面我们聊聊如何使用mysql图形化客户端navicat导入到数据库里。
连接mysql服务端
如果你已经按前面给的教程创建了连接,并成功连接到数据库。
当你如果打开navicat创建的连接图标处是灰色的,表示客户端没用连接到mysql服务端。
鼠标右键点击连接名称,然后点击“打开连接”
https://pic3.zhimg.com/v2-b2dc1584b18e51a940542ded0ed762f8_b.jpg?consumer=ZHI_MENG
https://pic2.zhimg.com/v2-891e95bfb1136c8bcad94cef8bfcb7c7_b.jpg?consumer=ZHI_MENG创建数据库
第1步,创建数据库
点击菜单栏“查询”下的“新建查询,就可以打开输入sql语句的地方。
https://pica.zhimg.com/v2-7a84398c4960e6af65fa4d703ae373ba_b.jpg?consumer=ZHI_MENG
然后输入创建数据库的sql语句,点击运行,可以看到sql语句执行结果。
https://pica.zhimg.com/v2-6e312e6e56a1746ff31d24f6549a4b24_b.jpg?consumer=ZHI_MENGhttps://pic3.zhimg.com/v2-47f77b71a886e35641abe83ebf72ccae_b.jpg?consumer=ZHI_MENG
鼠标右键连接名称,选择“刷新”,就可以看到创建的数据库了
https://pic1.zhimg.com/v2-0aeb71149f41e93d0579c76f96d808fe_b.jpg?consumer=ZHI_MENGhttps://pic2.zhimg.com/v2-72fd1463a49ff0189448c07e8de09949_b.jpg?consumer=ZHI_MENG
参考资料:《SQL从入门到进阶》视频
第2步,修改数据库编码
因为我们数据库里会存放中文内容,所以需要修改数据库编码,不然会面会报错。按下图设置数据库的编码。
https://pic3.zhimg.com/v2-a01832c6f51b4e6d447dba6f4ee3a862_b.jpghttps://pica.zhimg.com/v2-83d900c60ac30f16d1aafbcf4cd10cea_b.jpg?consumer=ZHI_MENG
修改完,点击“确定”按钮。
创建表
数据库shop名称前面的图标是灰色的,表示当前没有使用这个数据库。
在数据库名称上鼠标右键,选择“打开数据库”。
https://pic4.zhimg.com/v2-602f15a83a058dc776651325d0d6290d_b.jpg?consumer=ZHI_MENG
点击数据库(shop)下的查询,鼠标右键选中“新建查询”。以这种方式打开的查询编辑器里的sql语句都是针对当前这个数据库的。
https://pic2.zhimg.com/v2-f8729f47bcd12678b931070ffc268ec3_b.jpg?consumer=ZHI_MENGhttps://pica.zhimg.com/v2-0c8101b850676659a6dc8ee837b310fc_b.jpg?consumer=ZHI_MENG
在查询编辑器里输入下面创建商品表(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_priceINTEGER ,
regist_date DATE ,
PRIMARY KEY (product_id));https://pica.zhimg.com/v2-291b3789839ded7084bdd8a182f5624e_b.jpg?consumer=ZHI_MENG
鼠标右键点击“表”,选中“刷新”,我们就可以看到创建的表。双击表名,可以看到创建的表和sql语句里定义的一样。
https://pic1.zhimg.com/v2-065246c4b153ac4515954c22b57571bc_b.jpg?consumer=ZHI_MENG插入数据
点击下图红框的地方,我们回到刚才写sql语句的查询编辑器里。
https://pic4.zhimg.com/v2-1f9cb73fc4317f3200b26e536b10baf3_b.jpg?consumer=ZHI_MENG
在查询编辑器里写入下面插入数据的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');https://pic4.zhimg.com/v2-4a396e15fcafdccb09316df0aa231071_b.jpg?consumer=ZHI_MENG
这时候不要点击“运行”,因为运行会把这个“查询编辑器”里所有的sql都执行一遍。但是创建表的sql语句刚才我们已经执行过了,现在只需要执行创建数据的sql语句。
首先,用鼠标选中要执行的那部分sql语句。
https://pica.zhimg.com/v2-cf69b608b7be4eb4c5c5946c4a7aa7dc_b.jpg?consumer=ZHI_MENG
然后点击下图红框的地方,就会只执行选中的sql语句。
https://pic3.zhimg.com/v2-4a06171082085bb2a59ab8472cb9903e_b.jpg?consumer=ZHI_MENG
我们可以通过界面下方的sql执行结果,看sql运行是否有报错,如果没有报错,表示sql运行成功。
https://pic4.zhimg.com/v2-72f4f0756172e3074e514227cbbba3c9_b.jpg?consumer=ZHI_MENG
双击表名,我们就可以看到已经插入的数据。
https://pic4.zhimg.com/v2-b70168ba6b71424c22aa9f00d9c4bc1b_b.jpg?consumer=ZHI_MENG
ps:如果你之前打开过表,会遇到下面的问题
出现运行选中代码后,product表未生成数据。
https://pica.zhimg.com/v2-e051280bd0bd34c17fa4dce83979344e_b.jpg
解决办法:按下图操作先关掉打开的表,然后重新打开
https://pica.zhimg.com/v2-fd64b56df1621f741dcec283d7d54466_b.jpg
我们按下图顺序操作,将刚才的sql语句保存下来,万一以后需要。
https://pic3.zhimg.com/v2-a1fd20427f0f32734131f3b6690252f8_b.jpg?consumer=ZHI_MENG
保存后的sql语句,可以在下图红框的地方看到
https://pica.zhimg.com/v2-763bb89ee5341f8a89b431dc906fdeee_b.jpg?consumer=ZHI_MENG
我们也可以把创建数据库的sql语句保存下来。
https://pic2.zhimg.com/v2-00828e4f03b0eaa62f25e67de0d174d9_b.jpg?consumer=ZHI_MENG
我们可以看到,创建数据库的语句保存在连接名下(图中红色的部分),因为这部分语句是创建数据库的,不针对任何特定的数据库。
而数据库shop下创建的sql语句保存在它自己的查询里面(图中蓝色部分),表示这里的语句是针对这个特定的数据库的操作。
https://picx.zhimg.com/v2-1a14e52115833093179f9736c05d1efd_b.jpg?consumer=ZHI_MENG
双击保存的查询名称,可以再次打开查询编辑器,对sql进行编辑。
参考资料:《SQL从入门到进阶》视频
导出数据库
按下图操作我们将数据库导出成文件。这样以后你可以将文件分享给其他人,别人也可以使用你的数据库,或者作为数据库的备份,哪天你数据库里的数据丢了,可以使用这个文件恢复。
https://pic3.zhimg.com/v2-8b78688f54d82433f878e14db51da31e_b.jpg?consumer=ZHI_MENGhttps://pica.zhimg.com/v2-7f82a03efd1580f69732cdad898a6d3e_b.jpg?consumer=ZHI_MENGhttps://picx.zhimg.com/v2-c98785cd6e56d6b3240ed5f342fda1f5_b.jpg?consumer=ZHI_MENG
导出成功后,我们就可以在刚才保存文件的路径下看到这个sql脚本文件后缀是.sql,这种类型的文件叫做sql脚本文件。
https://pic2.zhimg.com/v2-262edac01f38fdd6b0c18b49ce4d9a4d_b.jpg?consumer=ZHI_MENG
我们使用软件notepad++打开sql脚本文件(windows用notepad++,在mac上可以用sublime text),没有这个软件的去官网下载一个,这个软件可以打开各种类型的文件,是技术学习的必备工具。
https://pic4.zhimg.com/v2-4f7b28ba885bbd6f40b7b9a6b5d00399_b.jpg?consumer=ZHI_MENG
打开后可以看到sql脚本文件,就是我们刚才写的sql语句,还有软件导出时自动加了些sql语句。所以sql脚本文件就是一个包括了sql语句,文件名后缀是.sql的文件。
https://pic2.zhimg.com/v2-d6999f3dcf8160f1a4afd55ec60b3a61_b.jpg?consumer=ZHI_MENG
如果你有特别留意的话,会发现我们刚才导出的sql脚本文件里,有这样一句sql:
DROP TABLE IF EXISTS `product`;
也就是说,如果数据库里已经有这个表了,那么就删除表以后再执行后面的sql语句。
因为有时候数据库里面表了,如果没有这一句会报错。
https://pic3.zhimg.com/v2-86608e04d75716a28641d0c20399c086_b.jpg?consumer=ZHI_MENG
参考资料:《SQL从入门到进阶》视频
导入sql脚本文件按下图操作把刚才的sql文件导入数据库里。https://pic4.zhimg.com/v2-37927a09f2630eec3c6a5695c49f39b1_b.jpg?consumer=ZHI_MENG
选择要导入的sql脚本文件,其他默认,然后点击开始。
https://picx.zhimg.com/v2-3129be4ad525ab68b66da918db460c1d_b.jpg?consumer=ZHI_MENG
出现下面的信息,表示导入成功。如果不是下面的信息,表示导入有错误,具体查看报错信息,根据报错信息顺藤摸瓜来解决。
导入成功后,点击关闭。刷新数据库可以看到导入的数据。
https://pic4.zhimg.com/v2-b0a17131df83fbca8f96ad8196890027_b.jpg?consumer=ZHI_MENG
Mick《sql基础教程》里的数据如何导入数据库里?
前面我们演示了创建数据库、在哪写sql语句、导出sql脚本文件,导入sql脚本文件,知道了sql脚本文件是怎么来的。现在我们回到Mick《sql基础教程》中的第1章的1-3《SQ概要:sql语句及其种类》(对应书里第32页)。
我们看如何把书中说的sql脚本文件(CreateTableProduct.sql)导入数据库里。
https://pic2.zhimg.com/v2-187864a5c0074ace4e517d7b314aacef_b.jpg?consumer=ZHI_MENG
为了演示整个过程,我们把刚才创建的表删掉。
https://pic1.zhimg.com/v2-e0102c0c55283af9ced7045ebbf3a776_b.jpg?consumer=ZHI_MENG
第1步,修改sql脚本文件
用notepad++打开sql脚本文件,瞅瞅里面有啥。
https://pic2.zhimg.com/v2-beb6f9007f246d8837be2a4044bd596d_b.jpg
我们看到里面是创建表和增加数据的sql语句。
https://pic4.zhimg.com/v2-e28a9a3b93083297b522eb31400b0775_b.jpg?consumer=ZHI_MENG
因为有时候导入数据会报错,当再次运行导入sql脚本文件,会报类似下面的错误:表已经存在。
https://pic3.zhimg.com/v2-653a1873ced4ed9eaff7974d418de5b4_b.jpg?consumer=ZHI_MENG
为了防止上面的错误,我一般都会在建立表的sql前面加上这么一句(product是表名,根据你的实际需求,修改成你对应的表名):
-- 表存在时,先删除表
DROP TABLE IF EXISTS Product;https://pic3.zhimg.com/v2-4596266c0a7d5ebb68402461bf383096_b.jpg
第2步,创建数据库
因为我们前面已经创建了数据库。后面导入数据,如果没有数据库,需要先创建数据库。
第3步,导入sql脚本文件
按下图步骤操作
https://pic1.zhimg.com/v2-86678670dc55f1ab60a118169433a6b0_b.jpg
https://pic3.zhimg.com/v2-63d0b9f65f115499462d998946d46376_b.jpg
导入结果显示未成功(Unsuccessfully),我们看如何根据报错信息顺藤摸瓜找到原因。
https://pic4.zhimg.com/v2-fe561f95025bc70ad08dc6c0dc586259_b.jpg?consumer=ZHI_MENG
将下图1处的下拉框拉到最上面,我们就可以看到详细的报错信息是: 1366 - Incorrect string value: "\xD0\xF4" for column。
把这个报错信息放到搜索引擎中,很快就可以找到解决方案。报错原因是因为编码的问题。
https://picx.zhimg.com/v2-b8e35a5c21b377b68c4da45a6e191bd7_b.jpg?consumer=ZHI_MENG
或者报下面的错误:
https://pic2.zhimg.com/v2-0fc898967c7ea4af74e27eee126bd42d_b.jpg
解决办法:用notepad++打开sql脚本文件,然后按下图修改sql脚本文件编码:
https://pic3.zhimg.com/v2-13065f26f4794679b27519a32aeddc7e_b.jpg
在notpad++中设置好编码以后,记得点击“保存”使sql脚本文件修改生效。
https://pic4.zhimg.com/v2-930489802fc580ce2143e28fdec2b551_b.jpg
我将修改编码后的sql脚本文件保存到下面这个文件里了
https://pic4.zhimg.com/v2-dea5352861388c2d8466cfb35bdf8c79_b.jpg
再次运行导入sql文件,执行成功。刷新表,可以看到导入的数据。
https://picx.zhimg.com/v2-231518438bdc0d794026c64d5a99b29d_b.jpg?consumer=ZHI_MENG总结
通过这个教程,你已经学会了:
1)如何使用navicat连接mysql服务端
2)如何在查询编辑器里写sql语句
2)如何创建数据库
3)如何导入sql脚本文件
4)如何导出sql脚本文件
5)Mick《sql基础教程》中的数据如何导入
想要系统的学习sql可以看这个:《SQL从入门到进阶》视频
参考资料:科普中国专家猴子作品合集
《Excel数据分析和数据思维》视频
《Power BI数据分析》视频
《SQL从入门到进阶》视频
《Python数据分析从入门到进阶》视频
页:
[1]