-
2021-04-28 06:37:20
Excel 表格类似的数据结构,数据库应该如何设计
想想一个三维的空间:
x,y,z 分别表示坐标的 x,y,z 值,为整数(可以为负,如果你在应用里面将0设中点,且允许反方向存储数据的话,x,y 表示坐标,z 表示用户,那么任何一个数据就是:
(x,y,z,data)
那么这个时候问题来了,data 需要存储的是各种各样类型的,所以,这个时候,我们可以这样:
data 拆分为 (type, value)
data 存储 data 表中的 id,然后真实数据存储在 data 表中,可以直接存储对象
怎样用excel制作一个小型数据库表格
简单将数据源明细账做好,数据透视一下OK
如何在excel中创建“数据库”
一、 建立数据库
一:使用向导,调出方法⑴可采用“文件”菜单“新建”
⑵用“工具”菜单“向导”
方法二:使用数据库设计器
1、 使用向导建立数据库
特点:可以方便快捷地创建数据库,但只适用于一般常用的数据库。
2、 使用数据库设计器建立数据库
特点: 最大特点就是灵活性
操作步骤:⑴“文件”菜单“新建”,显示新建对话框
⑵选择“数据库”和单击“新建文件”钮
⑶在创建对话框中输入新数据库的名称和单击“保存”钮
效果:数据库文件已经建立完成。
显示出“数据库设计器”窗口和“数据库设计工具”
打开“数据库设计器”工具方法:“显示”菜单“工具栏”
选择“数据库设计器”
三、建立表
1、 数据库与数据表
可以先建立自由表,然后再添加到数据库中
建立新的数据库表,系统会将其自动加入到数据库中。
2、 建立自由表
注意:自由表独立于任何数据库,如需要课添加到数据库中,但不能同时
将一个表添加到多个数据库。
预备知识:建立表必须首先建立表的结构
即要描述各个字段的字段名、字段类型、字段宽度、如果是数
值型还有小数位数,以及索引、是否再字段中允许空值(选择NULL)
3、 建立数据库表
有三种方法:
法一、“文件”菜单“新建”,显示新建对话框
选择“表”和单击“新建文件”钮
在创建对话框中输入新数表名称和单击“保存”钮
法二、再建立完数据库后,不关闭“数据库设计器”窗口,单击鼠标右键后
选择快捷菜单种的“新表”,单击“新表”钮,再创建对话框输入表 名
后“保存”
法三、使用数据库设计器工具栏
(“显示”菜单“工具栏”)
选择“数据库设计器”工具栏种的第一个钮“新建表”
二、使用命令建立数据库、数据库表
1、 建立数据库
CREATE DATABASE 数据库名称
2、 建立数据库表
CREATE TABLE │DBF 表名 [FREE]
(字段名1 字段类型 [(字段宽度 [,小数位数] )]
[(字段名2……]
二、使用向导建立查询
1、查询形式分类:查询向导:标准查询
交叉表向导:以电子表格形式输出查询结果
图形向导:以电子图形形式输出查询结果
2、使用查询向导建立查询步骤:
[0]使用查询向导前必须先打开用到的库表或自由表
⑴字段选取
⑵记录筛选
⑶选择排序方式
⑷查询完成(选择保存并运行)(浏览查询)
⑸打开查询设计器,修改查询
请采纳答案,支持我一下。
更多相关内容 -
matlab根据行列标题索引表格数据
2021-01-07 01:09:59matlab根据行列标题索引表格数据 %%通过行列标题查找对应数值 path = 'C:\Users\lenovo\Desktop\matlab程序\通过表格行与列标题查找数值\table.xlsx'; table = readcell(path); % 使用readcell读取表格文件,能够... -
Excel表格怎么制作目录索引
2021-08-27 17:56:10今天小编跟大家分享一下WPS如何快速制作目录索引 1.打开Excel文件 2.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说。) 3.选择【表格目录】 4....今天小编跟大家分享一下WPS如何快速制作目录索引
1.打开Excel文件
2.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说。)
3.选择【表格目录】
4.勾选【保存到新建工作表】
5.最后点击【确定】即可完成
6完成效果如下图所示
-
档案索引(表格模板、DOC格式)
2020-12-09 00:58:19档案索引(表格模板、DOC格式)对我们有很大的帮助,日常工作生活我们可能都会用到,需要档案索引(表格.....该文档为档案索引(表格模板、DOC格式),是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看 -
档案索引表(表格模板、DOC格式).doc
2022-02-09 23:48:46档案索引表(表格模板、DOC格式).doc -
如何在Word中制作目录索引?简单有效的大神技巧
2019-10-29 18:51:39在利用Word文档制作会议记录等文件时,由于内容太多,为了方便了解文档大纲我们往往需要制作一个目录索引。那么很多小伙伴就有了疑惑,这个看似简单的目录索引到底该如何制作呢?今天小编就来教大家快速制作目录索引...在利用Word文档制作会议记录等文件时,由于内容太多,为了方便了解文档大纲我们往往需要制作一个目录索引。那么很多小伙伴就有了疑惑,这个看似简单的目录索引到底该如何制作呢?今天小编就来教大家快速制作目录索引的方法。
一:设置标题
首先我们要设置好标题等级,将各类小标题分为一级标题、二级标题等等。选取文字,在【开始】页面点击【目录】框中的标题等级即可。
二:设置目录页
将鼠标放置在文章开头,同时点击【Ctrl】与【回车键】,这样就会生成一个目录首页。
三:引用页面
点击【菜单栏】中的【引用】,在最左边有一个【目录】,点击进入目录设置页面。
四:自定义目录
在【目录内置】页面,选择【自定义目录】,在这里你可以设置【目录显示级别】、【格式】等等,设置好后点击确定,这样就生成好目录了。
五:更新目录
当你的正文标题内容修改后,目录内容并不会直接修改,你需要点击【引用】中的【更新目录】,即可更新目录内容。
设置目录索引是一种常见的制作Word文档的技巧,除了最基本的美观外,按住【Ctrl】键,点击目录标题就可以直接跳转到该文档页面,方便阅读。
以上就是小编分享的怎样在Word中设置目录索引的方法,希望可以帮助到你,有需要的小伙伴记得收藏。
-
【MySQL】单表访问之索引合并
2022-01-01 11:29:40MySQL在一般情况下执行一个查询时最多只会用到单个二级索引,但存在有特殊情况,在这些特殊情况下也可能在一个查询中使用到多个二级索引,MySQL中这种使用到多个索引来完成一次查询的执行方法称之为:索引合并/index...MySQL在一般情况下执行一个查询时最多只会用到单个二级索引,但存在有特殊情况,在这些特殊情况下也可能在一个查询中使用到多个二级索引,MySQL中这种使用到多个索引来完成一次查询的执行方法称之为:索引合并/index merge,具体的索引合并算法有下边三种。
mysql> show index from t_emp; +-------+------------+----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------+------------+----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | t_emp | 0 | PRIMARY | 1 | emp_no | A | 299246 | NULL | NULL | | BTREE | | | | t_emp | 1 | udx_union_test | 1 | hire_date | A | 4998 | NULL | NULL | | BTREE | | | | t_emp | 1 | udx_union_test | 2 | birth_date | A | 297486 | NULL | NULL | | BTREE | | | | t_emp | 1 | udx_union_test | 3 | first_name | A | 299246 | NULL | NULL | | BTREE | | | | t_emp | 1 | idx_first_name | 1 | first_name | A | 1297 | NULL | NULL | | BTREE | | | | t_emp | 1 | idx_last_name | 1 | last_name | A | 1667 | NULL | NULL | | BTREE | | | +-------+------------+----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 6 rows in set (0.00 sec)
Intersection合并
Intersection翻译过来的意思是交集。这里是说某个查询可以使用多个二级索引,将从多个二级索引中查询到的结果取交集,比方说下边这个查询:
mysql> select * from t_emp where first_name='Georgi' and last_name='Facello';
假设这个查询使用Intersection合并的方式执行的话,那这个过程就是这样的:
- 从idx_first_name二级索引对应的B+树中取出
first_name='Georgi'
的相关记录。从idx_last_name二级索引对应的B+树中取出last_name='Facello'
的相关记录。二级索引的记录都是由索引列+主键构成的,所以我们可以计算出这两个结果集中id值的交集。 - 按照上一步生成的id值列表进行回表操作,也就是从聚簇索引中把指定id值的完整用户记录取出来,返回给用户。
为啥不直接使用idx_first_name或者idx_last_name只根据某个搜索条件去读取一个二级索引,然后回表后再过滤另外一个搜索条件呢?这里要分析一下两种查询执行方式之间需要的成本代价。
- 只读取一个二级索引的成本:按照某个搜索条件读取一个二级索引,根据从该二级索引得到的主键值进行回表操作,然后再过滤其他的搜索条件
- 读取多个二级索引之后取交集成本:按照不同的搜索条件分别读取不同的二级索引,将从多个二级索引得到的主
键值取交集,然后进行回表操作。
虽然读取多个二级索引比读取一个二级索引消耗性能,但是大部分情况下读取二级索引的操作是顺序I/O,而回表操作是随机I/O,所以如果只读取一个二级索引时需要回表的记录数特别多,而读取多个二级索引之后取交集的记录数非常少,当节省的因为回表而造成的性能损耗比访问多个二级索引带来的性能损耗更高时,读取多个二级索引后取交集比只读取一个二级索引的成本更低。
MySQL在某些特定的情况下才可能会使用到Intersection索引合并,哪些情况呢?
情况一:等值匹配
普通的二级索引列是等值匹配的情况。
对于联合索引来说,在联合索引中的每个列都必须等值匹配,不能出现只匹配部分列的情况。而下边这两个查询就不能进行Intersection索引合并:
mysql> select * from t_emp where hire_date>'1960-04-17' and birth_date='1991-11-27' and first_name='Georgi'; mysql> select * from t_emp where hire_date='1960-04-17' and birth_date='1991-11-27';
第一个查询是因为对hire_date进行了范围匹配,第二个查询是因为联合索引udx_union_test中的first_name列并没有出现在搜索条件中,所以这两个查询不能进行Intersection索引合并。
情况二:主键列可以是范围匹配
比方说下边这个查询可能用到主键和idx_first_name进行Intersection索引合并的操作:
mysql> select * from t_emp where emp_no > 493549 and first_name='Georgi';
对于InnoDB的二级索引来说,记录先是按照索引列进行排序,如果该二级索引是一个联合索引,那么会按照联合索引中的各个列依次排序。而二级索引的记录是由索引列+主键构成的,二级索引列的值相同的记录可能会有好多条,这些索引列的值相同的记录又是按照主键的值进行排序的。
所以重点来了,之所以在二级索引列都是等值匹配的情况下才可能使用Intersection索引合并,是因为只有在这种情况下根据二级索引查询出的结果集是按照主键值排序的。
Intersection索引合并会把从多个二级索引中查询出的主键值求交集,如果从各个二级索引中查询的到的结果集本身就是已经按照主键排好序的,那么求交集的过程就很容易。
假设某个查询使用Intersection索引合并的方式从idx_first_name或者idx_last_name这两个二级索引中获取到的主键值分别是:
- 从idx_first_name中获取到已经排好序的主键值:1、3、5
- 从idx_last_name中获取到已经排好序的主键值:2、3、4
那么求交集的过程就是这样:逐个取出这两个结果集中最小的主键值,如果两个值相等,则加入最后的交集结果中,否则丢弃当前较小的主键值,再取该丢弃的主键值所在结果集的后一个主键值来比较,直到某个结果集中的主键值用完了,时间复杂度是O(n)。
但是如果从各个二级索引中查询出的结果集并不是按照主键排序的话,那就要先把结果集中的主键值排序完再来做上边的那个过程,就比较耗时了。按照有序的主键值去回表取记录有个专有名词,叫:Rowid Ordered Retrieval,简称ROR。
另外,不仅是多个二级索引之间可以采用Intersection索引合并,索引合并也可以有聚簇索引参加,也就是我们上边写的情况二:在搜索条件中有主键的范围匹配的情况下也可以使用Intersection索引合并索引合并。为啥主键这就可以范围匹配了?还是得回到应用场景里:
mysql> select * from t_emp where emp_no > 493549 and first_name='Georgi';
假设这个查询可以采用Intersection索引合并,我们理所当然的以为这个查询会分别按照
emp_no > 493549
这个条件从聚簇索引中获取一些记录,在通过first_name='Georgi'
这个条件从idx_first_name二级索引中获取一些记录,然后再求交集,其实这样就把问题复杂化了,没必要从聚簇索引中获取一次记录。别忘了二级索引的记录中都带有主键值的,所以可以在从idx_first_name中获取到的主键值上直接运用条件emp_no > 493549
过滤就行了,这样多简单。所以涉及主键的搜索条件只不过是为了从别的二级索引得到的结果集中过滤记录罢了,是不是等值匹配不重要。当然,上边说的情况一和情况二只是发生Intersection索引合并的必要条件,不是充分条件。也就是说即使情况一、情况二成立,也不一定发生Intersection索引合并,这得看优化器的心情。优化器只有在单独根据搜索条件从某个二级索引中获取的记录数太多,导致回表开销太大,而通过Intersection索引合并后需要回表的记录数大大减少时才会使用Intersection索引合并。
Union合并
我们在写查询语句时经常想把既符合某个搜索条件的记录取出来,也把符合另外的某个搜索条件的记录取出来,我们说这些不同的搜索条件之间是OR关系。
有时候OR关系的不同搜索条件会使用到不同的索引,比方说这样:
mysql> select * from t_emp where first_name='Georgi' or last_name='Facello';
Intersection是交集的意思,这适用于使用不同索引的搜索条件之间使用AND连接起来的情况;Union是并集的意思,适用于使用不同索引的搜索条件之间使用OR连接起来的情况。
与Intersection索引合并类似,MySQL在某些特定的情况下才可能会使用到Union索引合并:
情况一:等值匹配
分析同Intersection合并
情况二:主键列可以是范围匹配
分析同Intersection合并
情况三:使用Intersection索引合并的搜索条件
就是搜索条件的某些部分使用Intersection索引合并的方式得到的主键集合和其他方式得到的主键集合取交集,比方说这个查询:
mysql> select * from t_emp where (hire_date='1960-04-17' and birth_date='1991-11-27' and first_name='Georgi') or (first_name='Georgi' and last_name='Facello');
优化器可能采用这样的方式来执行这个查询:
- 先按照搜索条件
first_name='Georgi' and last_name='Facello'
从索引idx_first_name和idx_last_name中使用Intersection索引合并的方式得到一个主键集合。 - 再按照搜索条件
hire_date='1960-04-17' and birth_date='1991-11-27' and first_name='Georgi'
从联合索引udx_union_test中得到另一个主键集合。 - 采用Union索引合并的方式把上述两个主键集合取并集,然后进行回表操作,将结果返回给用户。
当然,查询条件符合了这些情况也不一定就会采用Union索引合并,也得看优化器的心情。优化器只有在单独根据搜索条件从某个二级索引中获取的记录数比较少,通过Union索引合并后进行访问的代价比全表扫描更小时才会使用Union索引合并。
Sort-Union合并
Union索引合并的使用条件太苛刻,必须保证各个二级索引列在进行等值匹配的条件下才可能被用到,比方说下边这个查询就无法使用到Union索引合并:
mysql> select * from t_emp where first_name>'Georgi' and last_name<'Facello';
这是因为根据
first_name>'Georgi'
从idx_first_name索引中获取的二级索引记录的主键值不是排好序的,根据last_name<'Facello'
从idx_last_name索引中获取的二级索引记录的主键值也不是排好序的,但是first_name>'Georgi'
和last_name<'Facello'
这两个条件又特别让我们动心,所以我们可以这样:- 先根据
first_name>'Georgi'
条件从idx_first_name二级索引中获取记录,并按照记录的主键值进行排序 - 再根据
last_name<'Facello'
条件从idx_last_name二级索引中获取记录,并按照记录的主键值进行排序 - 因为上述的两个二级索引主键值都是排好序的,剩下的操作和Union索引合并方式就一样了。
上述这种先按照二级索引记录的主键值进行排序,之后按照Union索引合并方式执行的方式称之为Sort-Union索引合并,很显然,这种Sort-Union索引合并比单纯的Union索引合并多了一步对二级索引记录的主键值排序的过程。
联合索引替代Intersection索引合并
mysql> select * from t_emp where first_name='Georgi' and last_name='Facello';
这个查询之所以可能使用Intersection索引合并的方式执行,还不是因为idx_first_name和idx_last_name是两个单独的B+树索引,要是把这两个列搞一个联合索引,那直接使用这个联合索引就把事情搞定了,何必用啥索引合并呢,就像这样:
ALTER TABLE t_emp drop index idx_first_name, idx_last_name, add index idx_full_name(first_name, last_name);
这样我们把idx_first_name、idx_last_name都干掉,再添加一个联合索引idx_fullname,使用这个联合索引进行查询简直是又快又好,既不用多读一棵B+树,也不用合并结果。
- 从idx_first_name二级索引对应的B+树中取出
-
Vue里表格获取列的索引index
2022-02-14 19:53:47表格里的代码(这里用了element组件) <el-button type="primary" slot-scope="scope"icon="el-icon-search"@click='mathLink(scope.$index)'plain>点击进入</el-button> var foo = 'bar'; Vue里的代码 ... -
如何制作table 一列多行的表格?
2021-06-13 17:47:59我们在制作表格的时候,总是会遇到一个表格中有多行多列,但是又不一定每行的列数相同,这样的表格我们该怎么制作呢?以下介绍以下这样的表格如何制作:方法一:代码编写 方法二:1、在html中定义一个表格table,... -
LaTeX 中表格和图片的目录
2020-11-03 12:41:43表格和图片的目录可以让读者快速定位文档中某些特定的内容。本篇文章介绍如何在文档中创建图片或表格的目录,以及如何改变目录的默认标题。 -
Ant-design表格添加索引列
2021-01-11 11:04:461、每一页索引都从1开始 <a-table :colums="colums"></a-table> //配置表格的columns: ... colums: [ { title: '排名', customRender:(text,record,index) => index + 1 }, { title: '姓名', ... -
Pandas read_表使用第一列作为索引
2021-02-03 13:29:22我有一个包含表单行的txt文件(比如说第1行):id1-a1-b1-c1我想使用pandas将其加载到一个数据帧中,索引是id,列名是'a','B','C',值是对应的a I,bi,ci最后,我希望数据帧看起来像:'A' 'B' 'C'id1 a1 b1 c1id2 ... -
Python 与 Excel 表格综合实例:给表格增加序号,对表格已有内容增加索引
2020-06-24 21:20:38Python 与 Excel 表格综合实例(一):给表格增加序号,根据表格已有内容增加索引前言:需求一:增加序列号需求二:按已有内容新增列结尾: ...之前在工作中,遇到过一个需求。有一份软件(GIS)后 -
v-for制作一个简单表格
2018-06-18 23:06:46v-for练习做一个表格 title > < style > table { width : 600px ; border : 2px solid orangered ; text-align : center ; } thead { background-color : orangered ; color : white ; }... -
Excel添加目录索引
2018-06-19 09:29:51sheet比较多的时候,在第一个sheet设置成目录索引可以方便的处理的找到相关表。仅仅记录步骤,excel的公式原理未知。 step1 选中B1单元格,单击公式-定义名称。 输入名称【索引目录】,引用位置公式 =INDEX... -
python将一个excel表格的数据匹配到另一个表中
2020-09-21 10:31:10打开excel表,需要在另一个表中匹配相应学生姓名的学号信息。 之前尝试了excel中的VLOOKUP函数,试了很多次都没有成功,因此,用python试了一下 import pandas as pd subtrain = pd.read_csv('subtrainLabels.csv','... -
LaTeX 索引
2021-06-04 15:24:43在大型的文档中,例如书籍等,通常会有一个按字母顺序排列的列表来列出文档中的主要术语。通过 LaTeX 和 imakeidx 包,你可以轻松地在文档中创建索引表。 -
python 按条件索引/提取出Excel表格中的内容
2019-10-21 16:33:49python在处理Excel表格中, 功能非常强大, ... 对于的, 就要用到python的索引功能; 以下是要实操的案例数据中的一部分 CardCount Type TermNo OperNo Dept 818 消费 49 235 第一食堂 ... -
elementUI如何拿到表格当前行的索引
2020-06-05 15:01:12前几天项目中遇到一个需要在table表格中加入Switch 开关的功能: element-ui中Switch 开关代码块是这样的: <el-switch v-model="value" active-color="#13ce66" inactive-color="#ff4949"> </el-... -
python如何将两个索引相同的列表的数据合并成一个新列表及绘图注意事项
2020-07-17 16:07:05在进行测试的过程中,我们的样品数量有很多,但是不同的样品测试完就形成了一个独立的文件,不同样品会形成不同的文件,因此,有时在进行数据处理之前,需要将这些数据列表进行合并统一分析,本文上传我的方法: ... -
点击表格获取表格行或列索引
2017-03-08 20:23:43此段html将产生一个表格table。 现在我们需要实现,点击表格时,获取点击行的索引或是所在行的列索引。 行索引: $('table tr').click(function () { var idx = $(this).index(); alert(idx); -
Kibana:在 Kibana 中的四种表格制作方式
2020-12-13 09:51:47在 Kibana 的可视化中,我们经常会绘制表格。我总结了一下,有如下的四种方法: 在 Discover 界面中制作 使用 table 可视化进行制作 使用 TSVB 来制作 使用 Lens 进行制作 ...这样我们就完成了一个叫做kibana_s... -
JavaScript 技术篇-js获取表格元素tr、th、td相对于父节点的索引。
2019-04-11 09:48:15js 获取表格元素 tr、th、td 相对于父节点的索引。 rowIndex 可以获取 tr 相对于根节点所有 tr 的索引,会计算之前所有的 tr。 sectionRowIndex 可以获取 tr 相在当前 table 下的索引。 以下面的第二个 tr 为例,... -
element-ui中表格获取当前行的索引index
2020-10-03 15:06:03弄文件上传时,需要对上传列表的文件进行一定的操作,例如暂停/取消等等,因为我是使用element-ui中表格展示上传文件列表的,这时的操作却需要使用到当前行的索引下,如何获取索引就是我接下来要做的工作了: ... -
layui 表格中如何实现根据行索引显示 当前行的 id值
2021-01-12 09:50:41其实正常的话 ,可能我们在表格中第一行可能是按数据库中 的id进行展示的 但那样的话 可能新增的数据 id可能比较大 然后在上面排着 有点别扭 哈 这样 产品 就会让我们前端码农更改下 哎 苦逼的生活 这个时候我们... -
elementUI table组件获取表格当前行的索引
2020-10-27 16:51:20elementUI table组件获取表格当前行的索引 <el-table-column type="index" width='50' label="序号" ></el-table-column> 直接type=“index” 就好,亲测可用 -
pandas-入门 利用pandas创建一个excel表格
2022-03-28 16:45:11在python中导入pandas库,注意这里可能还要下载 “openpyxl” -pip install openpyxl 才可以正常创建一个excel表格。程序如下: Excel文件: 但是会发现在新建的表中最左侧存在一列,这是... -
如何给数据库表格添加索引以及删除索引
2018-08-09 20:47:19可能有人知道索引的作用的是什么,例如知道索引可以提高查询效率,减少查询时编列全表,或者说,有了索引可按特定的序列进行排序等等。还可以加快表与表之间的连接。 在使用分组和排序子句进行数据检索时,可以显著... -
帮阿雪写的一个自动录入表格的小程序
2020-03-05 22:38:59上大学的时候,总是会由很多表格需要同学们去搞,尤其是刚开学的那个时候,显然是很烦躁, 阿雪刚开学的时候,作为班干部,表示有时候刚录表不是很熟悉经常会弄到很晚,甚至还会弄错,...这就让我很是触动,所以想帮...