精华内容
下载资源
问答
  • 传统普通,堆,他们都是以行的方式来进行存储,行存储是以记录为单位进行存储,数据页面存储是完整若干条记录。然而随着大数据发展,有大量以查询为主分析型需求诞生。因此达梦引入了HUGE表的...

    在达梦数据库中,表的类型有很多种。传统的普通表,堆表,他们都是以行的方式来进行存储的,行存储是以记录为单位进行存储的,数据页面中存储的是完整的若干条记录。然而随着大数据的发展,有大量以查询为主的分析型需求诞生。因此达梦引入了HUGE表的概念。在HUGE表中,数据是以列为单位进行存储的,每一个列的所有行数据都存储在一起。 这样便可以加快某一个列的数据查询速度,同时因为列数据的类型一致,可以获得更大的压缩效率。本文就将带大家认识和了解HUGE表。

     

    本文演示环境: DM Database Server x64 V7.1.6.48-Build(2018.03.01-89507)ENT

    01

    规划HTS表空间

    HUGE表在数据库中的存储,并不是在普通的表空间和数据文件上,而是会存放在专门的HTS表空间中。创建一个 HTS,其实就是创建一个空的文件目录。目录中的表,会以模式-表-列层层目录的方式来存放。示意图如下:

    默认情况下,HUGE表会存放在数据库自带的HMAIN表空间中。我们也可以手动规划一个HTS表空间名叫HTEST,具体语句如下:

     

     

    注意这里和普通表空间的区别,普通表空间在规划时要指定数据文件的路径,而HTS表空间则是指定一个目录。规划好数据库会帮我们创建此目录,但是因为还未插入数据库,目录当前为空。

     

    02

    创建HUGE表

    有了HTS表空间,我们可以尝试在HTEST中规划一个HUGE表,相关语句如下:

     

     

    语句和一般的建表语句类似,同样,我们也可以用普通的 SQL来对表数据进行操作。

     

    在创建表并插入数据之后,我们就可以在文件系统内查询到表的存储结构

     

    从这里我们可以看到,完整结构由三级目录构成:表空间的HTEST目录,对应模式的SCH150994945模式和对应表的TAB1279目录。在表目录下,每一列的数据会存放到单独的dta文件中。

     

    03

    HUGE表使用说明

    HUGE表与普通行表一样,可以进行增、删、改操作,操作方式也是一样的。但HUGE表的删除与更新操作的效率会比行表低一些,并发操作性能也会比行表差一些。这一点我们可以从结构里面看到出,假如我们要在数据库中插入一行数据库,会对每一个列对应的dta文件都进行修改,因此在HUGE中不宜做频繁的删除及更新操作。总之,HUGE表比较适合做分析型表的存储。

    展开全文
  • Tableau数据字典提供有关存储在Tableau Server存储库的“工作组” PostgreSQL数据库中的表和视图中的信息的信息。 数据字典有什么用? 该工作组数据库为Tableau Server提供持久存储,并且主要用于支持Tableau ...
  • 而nosql是数据库,没有接触过。于是查了很多资料,浪费了很多时间。记录下来,为以后备用。 这个简单的表包括员工代码(EmpId), 姓名字段(Lastname and Firstname)及工资(Salary). 这个表存储...

    项目涉及到nosql的建表等等。

    而nosql是列式数据库,没有接触过。于是查了很多资料,浪费了很多时间。记录下来,为以后备用。



    这个简单的表包括员工代码(EmpId), 姓名字段(Lastname and Firstname)及工资(Salary).
    这个表存储在电脑的内存(RAM)和存储(硬盘)中。虽然内存和硬盘在机制上不同,电脑的操作系统是以同样的方式存储的。数据库必须把这个二维表存储在一系列一维的“字节”中,又操作系统写到内存或硬盘中。
    行式数据库把一行中的数据值串在一起存储起来,然后再存储下一行的数据,以此类推。
    1,Smith,Joe,40000;2,Jones,Mary,50000;3,Johnson,Cathy,44000;
    列式数据库把一列中的数据值串在一起存储起来,然后再存储下一列的数据,以此类推。
    1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,44000;


    列式数据库的优点:
    数据压缩比高,正因为同一类型的列存储在一起。
    简化数据建模的复杂性。
    由于查询需要读取的blocks少,速度更快。
    BI的优秀选择。

    注:block 的意思 



    展开全文
  • 关系型数据库二维表的形式呈现数据,这种呈现是逻辑上展示。 一般具体存储在硬盘上,何种方式存储,对于数据库操作性能来说,至关重要。 对于硬盘来说,最昂贵操作是查找。为了提高最终性能,所需要...

    关系型数据库是以二维表的形式呈现数据,这种呈现是逻辑上的展示。
    这里写图片描述
    一般具体存储在硬盘上,以何种方式存储,对于数据库操作性能来说,至关重要。
    对于硬盘来说,最昂贵的操作是查找。为了提高最终性能,所需要的相关数据应该以某种方式去存储从而使“查找”操作尽可能少。硬盘由一系列规定大小的块(block)组成, 通常足以容纳数据表的几行。通过把相关的行存储在块中,仅仅一定数量的块需要被读取从而最小化了查找的数量。

    行式储存模型

    好现在我们开始让磁盘里塞,假设我们的磁盘块只能容下5个字段(抽象的,假设我们的这些字段的大小都一样),因为我们是按找行优先的,所以结果就如下:
    这里写图片描述
    于是当我们要找Jones的所有信息的工资时候,我们会依次从第一块磁盘块直到扫描到最后(为什么要扫到最后,因为是在找全部叫Jones的信息,所以不扫都最后都不能确定是否会遗漏)。一共需要扫4块,然后取出其第二块和第四块信息,找出其工资的信息。

    其实基于行式储存,对于where语句处理都需要处理全表。对于磁盘的不停seek,速度就可想而知。当然一般数据库为了应对这种全数据扫描,找到了建立索引的方法。而索引就是对某个或者某些字段的组合的信息,即取出数据的部分信息,以减少每次扫描从全表到部分信息的扫描的过渡。

    这种查询方式很适合于一次取出一个行数据,而对于日常应用系统来说这种方式是非常合适的,因为我们设计应用的时候都是针对一个事务,而我们会把一个事务所有属性存储成一行,使用的时候也是有很大的概率涉及到整行的信息,很利于做缓存。还比如我们经常使用的那些经典sql 语句:
    select * from user where id = 1001;
    select id, user_name, email, address, gender, … from user where id = 1001;

    列式储存模型

    而列储存就是下图这种按列优先储存。为了方便我们每块只储存了一个一列,没有存满。
    这里写图片描述
    这下我们再考虑上面的查找所有Jones的工资,这下我们只扫描第三个磁盘块,找出Jones都再那些行,然后根据查出来的行号,直接去第五块磁盘(这块对应的式salary列)找出第二、四行的数据,然后输出。一共2次seek。大大小于row-oriented的4次。

    这种查询方式的前提就是你就需要这列数据就行了,其前提假设就是查询基本不会使用这个行的其他列数据。显然这种假设对于日常操作系统的围绕着一个主题进行的活动是不合适旳。但是却在分析型数据大显身手。

    列式的另一大优势是压缩。因为列的天然凝聚性(比如上面的两个Jones就可以压缩成一个)大大强与行,所以列式储存可以有很高的压缩比,这个进一步使使用的磁盘的数量减少,因为使用的磁盘块少,进一步减少了需要扫描的次数。这方面很利于加快查找速度,但是因为解压缩也是耗时耗内存的过程,所以压缩的控制也是需要一个定平衡点。

    优劣总结

    从上面的例子可以明显看出列式数据库在分析需求(获取特点——每次查询几个维度,通常是)时候,不仅搜索时间效率占优势,其空间效率也是很明显的。特别是针对动辄按T计算的数据量来说,在分布式环境中能进行压缩处理能节省宝贵的内部带宽,从而提高整个计算任务性能。

    展开全文
  • 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为,一组组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个...

    一、前言入门

    基本概念的介绍

    • 关系型数据库

    关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。(百度百科)

    • 什么是SQL?

    Structured Query Language:结构化查询语言
    其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
    (本文不涉及数据库完整性的学习,只是SQL语句的快速入门单表操作)

    • SQL分类

    • DDL(Data Definition Language)数据定义语言

    用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等

    • DML(Data Manipulation Language)数据操作语言

    用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等

    • DQL(Data Query Language)数据查询语言

    用来查询数据库中表的记录(数据)。关键字:select, where 等

    • DCL(Data Control Language)数据控制语言

    用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

    mysql的基本数据类型
    在这里插入图片描述

    atetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss timestamp:时间错类型 包含年月日时分秒
    yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值

    启动数据库
    在这里插入图片描述
    成功后是这样的
    在这里插入图片描述

    二、具体内容

    DDL:操作数据库、表

    操作数据库

    1 创建数据库

    create database if not exists 数据库名称;
    create database if not exists db4 character set gbk
    

    在这里插入图片描述
    2 删除数据库
    在这里插入图片描述

    3 查询数据库的定义:show create database 数据库名称;

    在这里插入图片描述
    4 Update:修改数据库的字符集
    alter database 数据库名称 character set 字符集名称;
    在这里插入图片描述
    使用数据库:use 数据库名称;
    在这里插入图片描述

    • 注意:初学者千万要注意,在dos窗口使用SQL的时候,千万先选择一个数据库,才能使用SQL语句进行表的操作,就像你要出去吃饭就要找饭馆一样,进到一个门店里你才能开始点菜一样。

    表的基本操作

    1 创建

    create table 表名(
    				列名1 数据类型1,
    				列名2 数据类型2,
    				....
    				列名n 数据类型n
    			);
    

    在这里插入图片描述
    2 查询test数据库中所有的表名称:show tables;
    在这里插入图片描述
    查询表结构:desc 表名;
    在这里插入图片描述

    查询表定义的SQL语句:

     show create table student;
    

    在这里插入图片描述

    3 修改表

    修改表名:alter table 表名 rename to 新的表名;
    在这里插入图片描述
    修改表的字符集:alter table 表名 character set 字符集名称;
    在这里插入图片描述
    添加一列:alter table 表名 add 列名 数据类型;
    在这里插入图片描述
    修改列名称 类型

    alter table 表名 change 列名 新列别 新数据类型;
    alter table 表名 modify 列名 新数据类型;
    

    在这里插入图片描述

    • 我们可以使用change更加的强大,我们可以将表名和数据类型一次性的改掉,而modify只可以修改数据类型。

    4 删除列:alter table 表名 drop 列名;
    在这里插入图片描述

    drop table if exists 表名 ; 自己可以自行体验。
    在这里插入图片描述

    DML:增删改表中数据

    1 添加数据:语法:

     insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
    

    在这里插入图片描述

    • 注意
      • 列名和值要一一对应。
      • 如果表名后,不定义列名,则默认给所有列添加值
        insert into 表名 values(值1,值2,…值n);
      • 除了数字类型,其他类型需要使用引号(单双都可以)引起来

    在这里插入图片描述
    我们可以看到成功的插入了 6条数据,男女搭配了一下,都是不老男神和70年的中国美女。

    2 删除数据

    delete from 表名 [where 条件]
    

    在这里插入图片描述
    TRUNCATE语句和DELETE语句的区别

    • delete语句,是DML语句,truncate语句通常被认为是DDL语句。

    • delete语句,后面可以跟where子句,通常指定where子句中的条件表达式,只删除满足条件的部分记录,而truncate语句,只能用于删除表中的所有记录。

    • truncate语句,删除表中的数据后,向表中添加记录时,自动增加字段的默认初始值重新从1开始,而使用delete语句,删除表中所有记录后,向表中添加记录时,自动增加字段的值,为删除时该字段的最大值加1,也就是在原来的基础上递增。

    • delete语句,每删除一条记录,都会在日志中记录,而使用truncate语句,不会在日志中记录删除的内容,因此,truncate语句的执行效率比delete语句高。

    3 修改数据:
    带条件修改数据:update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];

    要求:将 id 号为 6 的张曼玉 名字 改为 温碧霞,再看看表中的数据
    在这里插入图片描述

    DQL:查询表中的记录

    select 字段列表  from 表名;
    

    1 语法: 语法语句的基本排列,根据查询的具体要求 会稍有改动

    • select 字段列表
    • from 表名列表
    • where 条件列表
    • group by 分组字段
    • having分组之后的条件
    • order by 排序
    • limit 分页限定

    2 基础查询

    我们重新创建一个表(表的完整性我们不做过多定义)

       CREATE TABLE `student` ( 
          `id` int(11) ,
          `NAME` varchar(20) DEFAULT NULL,
          `chinese` float DEFAULT NULL,
          `english` float DEFAULT NULL,
          `math` float DEFAULT NULL
        ) ENGINE=InnoDB DEFAULT CHARSET=utf
    

    表中的数据如下
    在这里插入图片描述
    多个字段的查询

      select 字段名1,字段名2... from 表名;
    

    在这里插入图片描述

    • 如果查询所有字段,则可以使用 * 来替代字段列表

    去除重复: distinct (用了之前的stu表)
    在这里插入图片描述
    计算列:一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
    这里使用了起别名 – as 别名

    ifnull(表达式1,表达式2):null参与的运算,计算结果都为null 表达式1:哪个字段需要判断是否为null
    如果该字段为null后的替换值。
    在这里插入图片描述
    在这里插入图片描述

    修改各科成绩的别名:
    在这里插入图片描述
    3 条件查询
    在这里插入图片描述
    查询数学成绩大于 70 的人的所有信息
    在这里插入图片描述
    查询数学和英语成绩大于 70 的人的所有信息
    在这里插入图片描述
    查询数学成绩等于90,92,,77的信息
    在这里插入图片描述
    查询 语文成绩在 80 - 90 之间的人的信息
    在这里插入图片描述
    LIKE:模糊查询

    占位符:
    _:单个任意字符
    %:多个任意字符

    查询姓张的有哪些? like
    在这里插入图片描述
    查询姓名是3个字的人 , 这样布拉德皮特就除外了
    在这里插入图片描述

    DQL:查询语句

    表中的数据
    在这里插入图片描述
    1 排序查询

    order by 排序字段1 排序方式1 ,  排序字段2 排序方式2...
    

    排序方式:

    • ASC:升序,默认的。
    • DESC:降序。

    注意:如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。

    • 要求:对每个人总分排序输出,然后再按升序的顺序输出

    SQL语句

      select *,(chinese + english + math) 总分 from student order by 总分;
    

    在这里插入图片描述

    • 要求:对张的学生成绩排序输出

    SQL语句

     select *,(chinese + english + math) 总分 from student where name like '张%'order by 总分 asc;
    

    在这里插入图片描述
    2 聚合函数:将一列数据作为一个整体,进行纵向的计算

    聚合函数 含义
    count(*) 计算个数(非空)
    max 计算最大值
    min 计算最小值
    sum 计算和
    avg 计算平均值
    • 要求:统计总分大于250的人数有多少?

    SQL语句

     SELECT COUNT(id) FROM student WHERE (chinese + english + math) > 250;
    

    在这里插入图片描述

    • 要求:求一个班级总分平均分

    SQL语句

    SELECT  SUM( chinese + english + math ) 各科成绩总和, FORMAT(AVG(chinese + english + math), 2) 总分平均分 FROM student;
    

    在这里插入图片描述

    3 分组查询
    我们添加了一个年龄,性别的字段,方便我们分组查询。
    在这里插入图片描述
    where 和 having 的区别?

    • where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来

    • where 后不可以跟聚合函数,having可以进行聚合函数的判断。

    在这里插入图片描述

    • 要求:按性别分组,求男神和女神数学的平均分

    在这里插入图片描述

    • 要求:查询男女各多少人(查询步骤如下)
      • 查询所有数据,按性别分组
      • 统计每组的人数

    在这里插入图片描述

    • 要求:查询年龄大于55岁的人,按性别分组,统计每组的人数

    在这里插入图片描述

    • 要求:查询年龄大于55岁的人,按性别分组,统计每组的人数,每组人数大于 2 的 显示

    sql语句

      select gender,count(id) from student where age > 55 group by gender having count(id) > 2;
    

    在这里插入图片描述
    在这里插入图片描述

    4 limit分页

    limit(offset,length) 跟数组下标 差不多
    offset :起始行数,从 0 开始计数,如果省略,默认就是 0
    length :返回的行数
    在这里插入图片描述
    分页使用场景:比如我们登录京东,淘宝,返回的商品信息可能有几万条,不是一次全部显示出来。是一页显示固定的条数。

    在这里插入图片描述

    总结

    在这里插入图片描述

    展开全文
  • 1.什么是数据库: 存储电子文件的处所,用户可以对文件中的数据增删改查等操作。...1)以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为,一组组成了数据库。 2)关系:可以理
  • 数据库中的数据之间的关系

    万次阅读 2012-12-14 16:56:16
    一个主键是唯一识别一个的每一记录,但这只是其作用的一疗分,主键的主要作用是将记录存放在其他表中的数据进行关联,在这一点上,主键是不同中各记录间的简单指针,主键约整就是确定表中的每一条记录,主键...
  • 来自数据库行和表的原始数据不能为人类读者提供太多了解。 相反,如果我们对数据执行某种聚合,则人类更有可能看到数据模式在向我们展示之前。 数据透视是聚合一种特定形式,我们可以在其中应用排序,求平均值或...
  • 数据库表

    2020-04-11 11:32:46
    表的结构设计是否合理、是否能保存所需数据对数据库的功能、性能、完整性有关键影响。...用户数据被分门别类、按行和列保存在各个表中,每个保存了特定主题数据(如学生数据、课程数据、选课...
  • 每个单元格都包含与其共线的标题和列标题的组合相关的信息。 在软件设计中,表格单元格是HTML和网页构建中的关键组成部分,它是其中的一部分 成分。 编码人员可以为表格单元指定尺寸,并使用它们保存网页的各个...
  • MySQL安装配置 MySQL是关系型数据库管理系统,按照数据结构在组织、存储管理数据...二维来存储数据,关系模型,每个可以存储多个字段列和记录,每个字段有固定属性。一个二维就是一个关系。二...
  • 在此分配中,您将设计表以将数据保存在CSV中,将CSV导入到SQL数据库中,并回答有关数据问题。 换句话说,您将执行: 数据工程 数据分析 注意:您可能会听到用术语“数据建模”代替“数据工程”,但是它们是相同...
  • 视图是从一个或多个表或视图中导出的表, 他也包含一系列带有名称的数据列和若干数据。 然而视图并不同于数据库中真实存在的表。 视图为虚拟表, 其结构数据建立在对数据库真实表的查询基础上。 视图的内容基于...
  • 数据库表的基本操作

    2014-12-16 15:48:00
    数据完整性:指存储在数据库中数据一致性正确性。sql server提供了定义、检查、控制完整性机制 实体完整性(完整性):将定义为特定表的唯一实体。 域完整性(完整性):用指定列的输入是否具有正确...
  • 表的连接是指在一个SQL语句通过之间关连,从一个或多个表中检索相关数据,大体上表与之间连接主要可分四种,分别为相等连接,外连接,不等连接自连接,本文将主要从以下几个典型例子来分析Oracle表的...
  • 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为,一组组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个...
  • 关系数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列行和列被称为,一组组成了数据库数据库:一些关联表的集合; 数据是数据...
  • 内连接使用比较运算符根据每个共有的的值匹配两个表中的行 sql语句举例:联接查询user,order中user的id相同的数据,前五列为user的内容,后面的是order。 SELECT * FROM `user` INNER JO...
  • Oracle数据库表与视图

    2020-03-03 23:43:10
    可以看作有行和列的电子数据是关系数据库中一种拥有数据结构。用CREATE TABLE语句建立,在建立表的同时,必须定义表名,列,以及列数据类型和大小。表名标识一个,所以应尽可能在表名中描述,...
  • 数据库中的视图

    2007-11-28 13:53:00
    表一样,视图也是包括几个被定义的数据列和多个数据,但就本质而言这些数据列和数据来源于其所引用的表。所以视图不是真实存在的基础表而是一张虚表,视图所对应的数据并不实际地视图结构存储在数据库中,...
  • 数据库系统,SQL语句不区分大小写(建议用大写) 。 但字符串常量区分大小写。 SQL语句可单行或多行书写,“;”结尾。 关键词不能跨多行或简写。...1、出在MySql服务器主机上的数据库 SHOW D...
  • 关系型数据库以行和列的形式存储数据,行和列的形式被称为是由一组相关实体组成的集合。一组组成了数据库表中的一行称为关系的一个元组,用来存储事物的一个实例;表中的一列称为关系的一个属性,用来描述...
  • 联接条件可在 FROM 或 WHERE 子句中指定,建议在 FROM 子句中指定联接条件。WHERE HAVING 子句也可以包含搜索条件,进一步筛选... 内联接使用比较运算符根据每个共有的的值匹配两个表中的行。例如,检索...
  • MySQL数据库中的索引

    2020-07-15 17:10:48
    没有索引,MySQL必须从第一开始,然后通读整个表以找到相关的行。 大多数MySQL索引(PRIMARY KEY, UNIQUE,INDEX FULLTEXT)存储在 B树。例外:空间数据类型索引使用R树;MEMORY 表还支持哈希索引 ; InnoDB对...
  • 逻辑设计 的创建CREATE TABLE 结构的修改ALTER TABLE 的删除截断与重命名 创建与删除数据库 数据也被称为或基本是数据库最基本的用于存储数据的对象可以认为关 系数据库中的数据以行和列组成的二...
  • 逻辑设计 的创建CREATE TABLE 结构的修改ALTER TABLE 的删除截断与重命名 创建与删除数据库 数据也被称为或基本是数据库最基本的用于存储数据的对象可以认为关 系数据库中的数据以行和列组成的二...
  • 数据库表连接

    2017-03-30 22:58:16
    联接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定联接条件。WHEREHAVING子句也可以包含搜索条件,...内联接使用比较运算符根据每个共有的的值匹配两个表中的行。例如,检索 studentscourses中学生标
  • 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为,一组组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,612
精华内容 644
关键字:

数据库中的表以行和列