【SQL应知应会】表分区(二)• Oracle版

news2024/10/4 22:52:43

请添加图片描述

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流

本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle

请添加图片描述

分区表 • Oracle版

  • 前言
  • 一、分区表
  • 1.什么是表分区
  • 2.创建分区表
    • 2.1 创建范围分区表
    • 2.2 创建列表分区表
    • 2.3 创建散列分区表
      • 2.3.1 基本语法
      • 2.3.2 示例1
      • 2.3.2 示例2
    • 2.4 创建复合分区表
      • 2.4.1 示例1 范围-列表复合分区
      • 2.4.3 示例2 范围-散列复合分区
  • 小结

前言

✅对于表分区这块内容,我们在MySQL方面已经有五篇内容了,大家可以去我的专栏SQL应知应会进行学习
🆗前面也有过Oracle的表分区的开篇了,今天这篇内容继续Oracle的表分区,如果大家学习过前面MySQL的表分区的话,那么对于今天的内容是很轻松就可以学会的,当然,这并没有严格的学习顺序的安排,只是对于MySQL的表分区,我们花了大量的篇幅进行学习,大家可以根据自己的学习情况进行随意的选择学习顺序(无需有过多的顾虑)
✳️今天这篇主要讲了如何创建散列分区表,其中有两种方法分别在两个例子中进行了使用,然后就是讲了创建复合分区表,包括范围-列表复合分区与范围-散列复合分区
希望文章的内容对大家有所帮助,如果有什么不足的地方,大家可以在评论区或者私信我,感谢大家的支持
💻那么,快拿出你的电脑,跟着文章一起学习起来吧

一、分区表

1.什么是表分区

👉:传送门💖什么是表分区💖

1.1 分区的意义
1.2 分区的作用
1.3 表分区的方法

2.创建分区表

2.1 创建范围分区表

👉:传送门💖创建范围分区表💖

2.1.1 基本语法
2.1.2 示例

2.2 创建列表分区表

👉:传送门💖创建列表分区表💖

2.2.1 基本语法
2.2.2 示例

2.3 创建散列分区表

使用范围分区和列表分区方法都可能导致数据分布不均匀,此时可以采用散列分区方法,将数据均匀分布到指定的分区中。

2.3.1 基本语法

使用带PARTITION BY HASH子句的CREATE TABLE语句创建散列分区表,基本语法为:

CREATE TABLE table(...)
PARTITION BY HASH (column1[,column2,...])
[(PARTITION partition [TABLESPACE tablespace][,...])]|[PARTITION hash_partition_quantity STORE IN (tablespace1[,...])]
...
  • 通过PARTITION BY HASH 指定分区方法,其后的括号指定分区列
  • 使用PARTITION子句指定每个分区名称和其存储空间
  • 或者使用PARTITION子句指定分区数量,用STORE IN子句指定分区存储空间

2.3.2 示例1

  • 通过PARTITION BY HASH 指定分区方法,其后的括号指定分区列
  • 使用PARTITION子句指定每个分区名称和其存储空间

示例: 创建一个分区表,根据学号将学生信息均匀分布到ORCLTBS1和ORCLTBS2两个表空间中

CREATE TABLE student_hash(
	sno NUMBER(6) PRIMARY KEY,
	sname VARCHAR2(10)
)
PARTITION BY HASH(sno)
(
    PARTITOIN p1 TABLESPACE ORCLTBS1,
    PARTITOIN p1 TABLESPACE ORCLTBS2
);

2.3.2 示例2

  • 使用PARTITION子句指定分区数量,用STORE IN子句指定分区存储空间

示例: 创建一个分区表,根据学号将学生信息均匀分布到ORCLTBS1和ORCLTBS2两个表空间中

# 用STORE IN子句指定分区存储空间创建分区表
CREATE TABLE student_hash(
	sno NUMBER(6) PRIMARY KEY,
	sname VARCHAR2(10)
)
PARTITION BY HASH(sno)
PARTITION 2 STORE IN (ORCLTBS1,ORCLTBS2);

2.4 创建复合分区表

创建复合分区表时,首先在CREATE TABLE语句中使用PARTITION BY子句指定分区方法、分区列,然后使用SUBPARTITION BY子句指定子分区方法、子分区列、子分区数量及子分区的描。

2.4.1 示例1 范围-列表复合分区

  • 创建一个范围-列表复合分区表,将1980年1月1日前出生的男、女学生信息分别保存在ORCLTBS1和ORCLTBS2两个表空间中,1980年1月1日到1990年1月1日出生的男、女学生信息分别保存在ORCLTBS3和ORCLTBS4两个表空间中,其他学生信息保存在ORCLTBS5表空间中
CREATE TABLE student_range_list(
	sno NUMBER(6) PRIMARY KEY,
	sname VARCHAR2(10),
    sex VARCHAR(2) CHECK(sex in ('M','F')),
    sage NUMBER(4),
    birthday DATE
)
PARTITION BY RANGE(birthday)
SUBPARTITION BY LIST(sex)
(
    PARTITION p1 VALUES LESS THAN(TO_DATE('1980-1-1','YYYY-MM-DD'))
    (
        SUBPARTITION p1_sub1 VALUES('M') TABLESPACE ORCLTBS1,
        SUBPARTITION p1_sub2 VALUES('F') TABLESPACE ORCLTBS2        
    ),
    PARTITION p2 VALUES LESS THAN(TO_DATE('1990-1-1','YYYY-MM-DD'))
    (
        SUBPARTITION p2_sub1 VALUES('M') TABLESPACE ORCLTBS3,
        SUBPARTITION p2_sub2 VALUES('F') TABLESPACE ORCLTBS4        
    ),
    PARTITION p3 VALUES LESS THAN(MAXVALUE) TABLESPACE ORCLTBS5
)

2.4.3 示例2 范围-散列复合分区

  • 创建一个范围-散列复合分区表,将1980年1月1日前出生学生信息分别保存在ORCLTBS1和ORCLTBS2两个表空间中,1980年1月1日到1990年1月1日出生的学生信息分别保存在ORCLTBS3和ORCLTBS4两个表空间中,其他学生信息保存在ORCLTBS5表空间中
CREATE TABLE student_range_list(
	sno NUMBER(6) PRIMARY KEY,
	sname VARCHAR2(10),
    sage NUMBER(4),
    birthday DATE
)
PARTITION BY RANGE(birthday)
SUBPARTITION BY HASH(sage)
(
    PARTITION p1 VALUES LESS THAN(TO_DATE('1980-1-1','YYYY-MM-DD'))
    (
        SUBPARTITION p1_sub1 TABLESPACE ORCLTBS1,
        SUBPARTITION p1_sub2 TABLESPACE ORCLTBS2        
    ),
    PARTITION p2 VALUES LESS THAN(TO_DATE('1990-1-1','YYYY-MM-DD'))
    (
        SUBPARTITION p2_sub1 TABLESPACE ORCLTBS3,
        SUBPARTITION p2_sub2 TABLESPACE ORCLTBS4        
    ),
    PARTITION p3 VALUES LESS THAN(MAXVALUE) TABLESPACE ORCLTBS5
)

小结

😘感谢大家耐心的看完这篇文章,这篇文章是Oracle的表分区的第2篇文章,对于SQL在表分区的知识点,我们在MySQL方面已经有五篇内容了,大家可以去我的专栏SQL应知应会 进行学习,如果大家觉着还算可以,那么就给个三连支持一下吧
🏡也可以加入我的社区一起学习呀
✅如果想要继续关注和学习后续更多的内容,那就关注一下爱书不爱输的程序猿吧,当然,如果大家还有什么其他方面的知识点想要看,可以在评论区或者私信我

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/801087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

富文本编辑器wangEditor初探

1、前言 现有的Quill比较简单,无法满足业务需求(例如SEO的图片属性编辑需求) Quill已经有比较长的时间没有更新了,虽然很灵活,但是官方demo都没有一个。 业务前期也没有这块的需求,也没有考虑到这块的扩展…

如何提高代码效率——时间复杂度与空间复杂度——【C语言】

当我们面对一个问题时,会有许多种解题思路。我们现在的计算机技术已经达到非常先进的地步,所以当我们用不同的方法对待问题时,时间差异不会很明显,内存差异我们一般在平常小问题时感受不到,所以我们不会去纠结程序的优…

基于ssm+mysql+html道路养护管理系统

基于ssmmysqlhtml道路养护管理系统 一、系统介绍二、功能展示1.道路信息管理2.损害类型信息管理3.损害类型信息管理4.评定等级信息管理5.日常巡查信息管理6.定期检查信息管理 四、获取源码 一、系统介绍 系统主要功能:道路信息管理、损害类型信息管理、评定等级信息…

VSCode SSH远程连接与删除

1.ubuntu设置 安装SSH服务并获取远程访问的IP地址 在Ubuntu系统中,“CtrlAltT”打开终端工具,执行如下命令安装SSH服务。 sudo apt-get install openssh-server如果安装失败则先安装依赖项。 2.VS Code 设置 2.1安装与设置Remote SSH 打开Windows系…

今天,我被二维码卷到了...

# 关注并星标腾讯云开发者# 每周4 | 鹅厂一线程序员,为你“试毒”新技术# 第1期 | 腾讯王锐:测评二维码艺术画生成体验 都说AI绘画来势汹汹,但论创意,还是人类玩得花🤫。下面这几张乍一看平平无奇、却在网上疯传的AI生…

rcu链表综合实践

基础知识 rcu-read copy update的缩写。和读写锁起到相同的效果。据说牛逼一点。对于我们普通程序员,要先学会使用,再探究其内部原理。 链表的数据结构: struct list_head {struct list_head *next, *prev; };还有一种:struct h…

自建纯内网iot平台服务,软硬件服务器全栈实践

基于以下几个考虑,自制硬件设备,mqtt内网服务器。 1.米家app不稳定,逻辑在云端或xiaomi中枢网关只支持少部分在本地计算。 2.监控homeassistant官方服务有大量数据交互。可能与hass安装小米账户有关。 3.硬件:原理图,l…

apifox 调用camunda engine-rest接口报错“type“: “NotFoundException“

官方文档在这: https://docs.camunda.org/rest/camunda-bpm-platform/7.19/ 现象 engine-rest本是可以直接请求的,我把openapi导入到apifox之中了,我测试一下接口没有能请求成功的,基本都报以下的错。 报错如下 {"type&qu…

【iOS】Frame与Bounds的区别详解

iOS的坐标系 iOS特有的坐标是,是在iOS坐标系的左上角为坐标原点,往右为X正方向,向下为Y正方向。 bounds和frame都是属于CGRect类型的结构体,系统的定义如下,包含一个CGPoint(起点)和一个CGSiz…

《向量数据库指南》:向量数据库Pinecone如何集成Haystack库

目录 安装Haystack库 初始化PineconeDocumentStore 数据准备 初始化检索器 检查文档和嵌入 初始化提取式问答管道 提问 在这个指南中,我们将看到如何集成Pinecone和流行的Haystack库进行问答。 安装Haystack库 我们首先安装最新版本的Haystack,其中包括PineconeDocum…

【爬虫案例】用Python爬取iPhone14的电商平台评论

用python爬取某电商网站的iPhone14评论数据, 爬取目标: 核心代码如下: 爬取到的5分好评: 爬取到的3分中评: 爬取到的1分差评: 所以说,用python开发爬虫真的很方面! 您好&…

Shell ❀ 一键配置Iptables规则脚本 (HW推荐)

文章目录 注意事项1. 地址列表填写规范2. 代码块3. 执行结果4. 地址与端口获取方法4.1 tcpdump抓包分析(推荐使用)4.2 TCP连接分析(仅能识别TCP连接) 注意事项 请务必按照格式填写具体参数,否则会影响到匹配规则的创建…

【腾讯云 Cloud Studio】构建基于 React 的实时聊天应用

关于腾讯云 Cloud Studio构建基于 Cloud Studio 的聊天应用(项目实战)1. 注册并登录 Cloud Studio2. 配置 Git 环境2.1 复制 SSH 公钥2.2 添加 SSH 公钥至 GIt 平台 3. 创建项目4. 项目开发4.1 安装依赖4.2 集成 tailwind css4.3 编写代码4.4 项目运行示…

windows中文界面乱码问题

我的便携是内部返修机,买来时就是英文版,在设置中改成简体中文就可以了,与中文版没有什么区别,已经升级成win11。windows自身的应用、360之类的界面都能正常显示,但是个别应用总是乱码,根据客服的提示设置一…

【lesson5】linux vim介绍及使用

文章目录 vim的基本介绍vim的基本操作vim常见的命令命令模式下的命令yypnyynpuctrlrGggnG$^wbh,j,k,lddnddnddp~shiftrrnrxnx 底行模式下的命令set nuset nonuvs 源文件wq!command(命令) vim配置解决无法使用sudo问题 vim的基本介绍 首先vim是linux下的…

企业服务器数据库被360后缀勒索病毒攻击后采取的措施

近期,360后缀勒索病毒的攻击事件频发,造成很多企业的服务器数据库遭受严重损失。360后缀勒索病毒是Beijingcrypt勒索家族中的一种病毒,该病毒的加密形式较为复杂,目前网络上没有解密工具,只有通过专业的技术人员对其进…

vlan 绑定端口号

<s2>system-view Enter system view, return user view with CtrlZ. # 创建 vlan 10 和 20 [s2]vlan 10 [s2-vlan10]vlan 20# display vlan# 删除 vlan 10 # [s2-vlan20]quit # [s2]undo vlan 10# 设置 interface 为 access port [s2]interface Eth0/0/1 [s2-Ethernet0/…

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境3

4、下载MaixPy IDE&#xff0c;MaixPy 使用Micropython 脚本语法&#xff0c;所以不像 C语言 一样需要编译&#xff0c;要使用MaixPy IDE , 开发板固件必须是V0.3.1 版本以上&#xff08;这里使用V0.5.0&#xff09;, 否则MaixPy IDE上会连接不上&#xff0c; 使用前尽量检查固…

diffusion model(五)stable diffusion底层原理(latent diffusion model, LDM)

LDM: 在隐空间用diffusion model合成高质量的图片&#xff01; [论文地址] High-Resolution Image Synthesis with Latent Diffusion Models [github] https://github.com/compvis/latent-diffusion 文章目录 LDM: 在隐空间用diffusion model合成高质量的图片&#xff01;系列…

3D工厂模拟仿真 FACTORY I/O 2.55 Crack

FACTORY I/O 提供超过20个典型的工业应用场景让您如身临其境般地练习控制任务。选择一种场景直接使用或以其作为一个新项目的开端。学生可以利用内嵌的可编辑的典型工业系统模板&#xff0c;也可以自由搭建并编辑工业系统。同时该系统具有全方位3D视觉漫游&#xff0c;可随意放…