exel工作簿N张表组成数据库,在新表中输入编码自动填入所有相关信息

exel工作簿N张表组成数据库,在新表中输入编码自动填入所有相关信息,第1张

VLOOKUP轻松搞定,但你自己给自己设置了一个大麻烦,把一类的数据放入一个表中是最利于 *** 作的方法,100本书一个表很不明智,甚至1000本在一个表里都嫌少呢,如果一本书的数据就四五项,你可以在一个表里多做几列而没必要新增一个表,后期的查询会非常麻烦的,还得一个表一个表的翻。如果在一个表里,直接以搜索就可以找到想要的东西了,也方便后期数据整理。

举例如下:

1把所有数据都放在表“基础信息”中,CDE列如你所愿并填写适当数据。

2新建个工作表命名“快速查询”

3“快速查询”表中D2=VLOOKUP(C2,基础信息!C:E,2,FALSE),E2=VLOOKUP(C2,基础信息!C:E,3,FALSE),然后把D2E2下拉自动生成公式就OK了。

4以后需要查询的时候,在“快速查询”表C列输入书号,DE列就显示出“基础信息”表里书名和价格了。

注意一点,两个表中C列的格式必须一致,要是数字就都是数字,要是文本就记得别少录入0了。

在Oracle数据库中,导入dmp文件并不需要手动设置编码,Oracle会自动根据dmp文件中的数据来判断字符集编码。根据查询相关公开信息显示:不知道导出的dmp文件的字符集编码,可以使用Oracle提供的imp命令或impdp命令进行导入,并让Oracle根据dmp文件的数据自动判断编码。

1ASCII

用途:用来映射简单的单字节字符,比如大小写英文字母、阿拉伯数字、常用的标点符、运算符、控制字符等。

编码范围:U0000-U007F

注意:对于用这类字符的场景够用了,但是却无法表达比如汉字,日文等编码。

2UNICODE

用途:用来映射包含ASCII以内的其他的所有字符。

编码范围:U0000-U10FFFF

注意:ASCII是UNICODE的子集,ASCII编码的字符可以无损转换为UNICODE编码的字符。

MySQL常用字符集

1Latin1

Latin1是cp1252或者ISO-8859-1的别名。ISO-8859-1编码是单字节编码,向下兼容ASCII。

编码范围:U0000-U00FF

ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。

单字节内的空间都被ISO-8859-1编码占用,所以能够用ISO-8859-1编码存储、传输其他任何编码的字节流。

比如把一个Utf8mb4的编码或者GBK的编码存入Latin1,不会有任何问题。因为Latin1保留了原始的字节流,这也就是MySQL长期以来把Latin1做默认字符集的原因。

但是由于Latin1对任何字符都存放字节流,造成了字符个数的浪费。

比如:

CHAR(10)CHARACTERSETLATIN1;CHAR(10)CHARACTERSETUTF8;

该字段中存储字符个数UTF8是Latin1的三倍!!!

2GB18030

GB18030是中国官方标准字符集,向前兼容GBK、GB2312,是这两个的超集。用1、2、4个字节分别表示一个符号。比如对一般中文字符,默认是用两个字节编码存储。Windows系统,默认用的就是GB18030。

若只是存储中文字符,那GB18030最佳。

原因有两点:

1)占用空间小,比如比UTF8小。

2)存储的汉字根据拼音来排序,检索快。

3UTF8

UTF8是Unicode的编码实现,可以存储UNICODE编码对应的任何字符,这也是使用最多的一种编码。最大的特点就是变长的编码方式,用1到4个字节表示一个符号,可以根据不同的符号编码字节长度。

字母或数字用1字节,汉字用3字节,emoji表情符号用4字节。UTF8字符集目前是使用最广泛的。

注意!MySQL里常说的UTF8是UTF8MB3的别名,UTF8MB3是UTF8MB4的子集,UTF8MB4才是真正的4字节UTF8字符集!

UTF8MB3表示最大支持3个字节存储字符,UTF8MB4表示最大4个字节存储字符。根据实际需要和未来展望,MySQL80已经默认用UTF8MB4基础字符集。

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

创建数据库

第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脚本文件(CreateTableProductsql)导入数据库里。

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

第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文件,执行成功。刷新表,可以看到导入的数据。

进程文件: csrss or csrssexe 进程名称: Client/Server Runtime Server Subsystem 描述: 客户端服务子系统,用以控制Windows图形相关子系统。 常见错误: N/A 是否为系统进程: 是 所以,对自己不熟悉 没有把握的进程, 不要随便结束它建议:把你认为有问题的进程比 如"csrssexe",在google里搜索"csrssexe",就会获得相关的知识

以上就是关于exel工作簿N张表组成数据库,在新表中输入编码自动填入所有相关信息全部的内容,包括:exel工作簿N张表组成数据库,在新表中输入编码自动填入所有相关信息、oracle数据库导入dmp文件不知道编码、数据库编码格式(查看数据库编码格式)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10195182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存