gaussdb 主备版本8 SQL参考 学习

news2024/10/26 11:18:56

SQL参考
在这里插入图片描述

1 数据类型

1.1 货币类型
1.1.1 货币类型存储带有固定小数精度的货币金额。
1.2 布尔类型
1.2.1 true:真
1.2.2 false:假
1.2.3 null:未知(unknown)
1.3 日期/时间类型
1.3.1 DATE
输出格式:仅支持YYYY-MM-DD,且不受DateStyle参数的影响。
输入格式:支持有分隔符YYYY-MM-DD和无分隔符 YYYYMMDD的输入格式
1.3.2 TIME [§] [WITHOUT TIME ZONE]
不包括日期?
1.3.3 TIME [§] [WITH TIME ZONE]
不包括日期?
1.3.4 TIMESTAMP[§] [WITHOUT TIME ZONE]
1.3.5 TIMESTAMP[§][WITH TIME ZONE]
1.3.6 INTERVAL [FIELDS] [ § ]
时间间隔。
1.3.7 datetime[§]
1.4 几何类型
在这里插入图片描述

1.4.8 能否作为字段保存?
1.5 网络地址类型
1.5.1 GaussDB提供用于存储IPv4、IPv6、MAC地址的数据类型。
1.5.2 cidr
7或19字节
IPv4或IPv6网络
192.168.100.128/25’
‘192.168/24’
子网
1.5.3 inet
7或19字节
IPv4或IPv6主机和网络
192.168.100.128
192.168.1.0/25’
IP+(掩码)
1.5.4 macaddr
6字节
MAC地址
1.6 位串类型
1.6.1 位串就是一串1和0的字符串。它们可以用于存储位掩码。
1.7 UUID类型
1.8 JSON/JSONB类型
1.9 HLL-HLL(HyperLoglog)数据类型

1.10 范围类型
1.10.1 范围类型是表达某种元素类型(称为范围的subtype)的一个值的范围的数据类型
在一个范围的文本形式中,一个包含下界被表达为“[”,而一个排除下界被表达为“(”
一个范围的下界可以被忽略,意味着所有小于上界的值都被包括在范围中。 同样,如果范围的上界被忽略,那么所有比下界大的值都被包括在范围中
构造范围
– 完整形式是:下界、上界以及指示界限包含性/排除性的文本参数。
gaussdb=# SELECT numrange(1.0, 14.0, ‘(]’);
定义新的范围类型
CREATE TYPE floatrange AS RANGE (
subtype = float8,
subtype_diff = float8mi
);
索引
B-树索引可以在范围类型的表列上创建。对于这些索引类型,基本上唯一有用的范围操作就是等值
范围类型的B-树支持主要是为了允许在查询内部进行排序,而不是创建真正的索引。
1.10.2 int4range — integer的范围
1.10.3 int8range — bigint的范围
1.10.4 numrange — numeric的范围
1.10.5 tsrange — 不带时区的timestamp的范围
1.10.6 tstzrange — 带时区的timestamp的范围
1.10.7 daterange — date的范围
1.11 对象标识符类型
1.11.1 GaussDB在内部使用对象标识符(OID)作为各种系统表的主键。系统不会给用户创建的表增加一个OID系统字段,OID类型代表一个对象标识符。
1.11.2 目前OID类型用一个四字节的无符号整数实现。因此不建议在创建的表中使用OID字段做主键。
1.12 伪类型
1.12.1 伪类型不能作为字段的数据类型,但是可以用于声明函数的参数或者结果类型。
1.13 XML类型
1.14 XMLTYPE类型
1.14.1 它比直接在一个TEXT域中存储XML数据的优势在于:XMLTYPE类型数据支持基于LIBXML2提供的标准XML操作函数及XML规范性的检查
1.15 SET类型
1.15.1 SET类型成员个数最大为64个,最小为1个。不能定义为空集。
1.15.2 SET类型的表字段值必须是SET类型定义的集合的子集
CREATE TABLE employee (
name text,
site SET(‘beijing’,‘shanghai’,‘nanjing’,‘wuhan’)
);
INSERT INTO employee values(‘zhangsan’, ‘nanjing,beijing’);
1.16 数组类型
1.16.1 一个数组数据类型一般通过在数组元素的数据类型名称后面加上方括号([])来命名。
phone_numbers varchar(11)[]
1.16.2 数组构造器
SELECT ARRAY[1, 2, 3]::varchar[];
INSERT INTO orders VALUES(‘a’, ARRAY[‘苹果’, ‘橘子’, ‘梨’]);
1.16.3 数组元素个数限制如下:
元素个数最大为134217727个。
所有元素加起来最大存储空间不超过1GB - 1字节即1073741823字节。
1.17 向量数据类型
1.17.1 向量数据类型包括floatvector和boolvector两种。

2 常量与宏

2.1 CURRENT_CATALOG
2.1.1 当前数据库
2.2 CURRENT_ROLE
2.2.1 当前用户
2.3 CURRENT_SCHEMA
2.3.1 当前数据库模式
2.4 CURRENT_USER
2.4.1 当前用户
2.5 LOCALTIMESTAMP
2.5.1 当前会话时间(无时区)
2.5.2 SELECT LOCALTIMESTAMP;
2.6 NULL
2.6.1 空值
2.7 SESSION_USER
2.7.1 当前系统用户
2.8 SYSDATE
2.8.1 当前系统日期
2.9 USER
2.9.1 当前用户,此用户为CURRENT_USER的别名。

3 伪列

3.1 ROWNUM

4 空间回收-VACUUM

4.1 VACUUM回收表或B-Tree索引中已经删除的行所占据的存储空间
4.1.1 在一般的数据库操作里,那些已经DELETE的行并没有从它们所属的表中物理删除;
4.1.2 VACUUM和VACUUM FULL时,会根据参数vacuum_defer_cleanup_age延迟清理行存表记录,即不会立即清理刚刚删除的元组。
4.1.3 执行DELETE后立即执行VACUUM FULL命令不会回收空间。执行DELETE后再执行1000个非SELECT事务,或者等待1s后再执行1个事务,之后再执行VACUUM FULL命令空间才会回收。
4.2 因此有必要周期地运行VACUUM,特别是在经常更新的表上
4.3 VACUUM会导致I/O流量的大幅增加,这可能会影响其他活动会话的性能。因此,有时候会建议使用基于开销的VACUUM延迟特性。
4.4 VACUUM FULL分区表时,会遍历分区进行清理,并在分区清理后重建GPI,因此当分区较多时,建议先删除GPI,在VACUUM FULL执行完成后重新创建索引,以此降低VACUUM FULL的执行时间。
4.4.1 gpi 是 global primary index吗?
4.5 参数
4.5.1 选择“FULL”清理,这样可以恢复更多的空间,但是需要耗时更多,并且在表上施加了排他锁。
不建议日常使用FULL选项,但是可以在特殊情况下使用
VACUUM FULL通过重建表的方式将表内空闲空间归还给表空间,重建过程需要额外申请表中有效数据相当的存储空间。对于非段页式表,VACUUM FULL执行结束后,原表所占物理文件会被删除,原表所占的物理文件的空间会归还给操作系统;
4.5.2 partition_name
要清理的表的一级分区名称。缺省时为所有一级分区。
4.5.3 subpartition_name
要清理的表的二级分区名称。缺省时为所有二级分区。
4.5.4 VACUUM ANALYZE先执行一个VACUUM操作,然后给每个选定的表执行一个ANALYZE。对于日常维护脚本而言,这是一个很方便的组合。

5 特殊dml

5.1 COPY
5.1.1 COPY FROM从一个文件复制数据到一个表,COPY TO把一个表的数据复制到一个文件。
5.1.2 COPY只能用于表,不能用于视图。
5.1.3 支持使用query过滤数据
5.2 ALTER SESSION
5.2.1 ALTER SESSION命令用于定义或修改对当前会话有影响的条件或参数。修改后的会话参数会一直保持,直到断开当前会话。
5.3 REPLACE
5.3.1 在表中插入或者替换新的数据。当插入的数据与原有数据存在主键或唯一键冲突时,执行REPLACE语句会先删除原有数据,再插入新的数据。
5.4 LOAD DATA
5.4.1 将文件中的数据导入到数据库指定表中。

6 其它特殊sql

6.1 ALTER SYSTEM KILL SESSION
6.1.1 ALTER SYSTEM KILL SESSION ‘session_sid, serial’ [ IMMEDIATE ];

7 自治事务

7.1 自治事务(Autonomous Transaction),在主事务执行过程中新启的独立的事务。自治事务的提交和回滚不会影响主事务已提交的数据,同时自治事务也不受主事务影响。
7.2 自治事务在存储过程、函数、匿名块和package中定义,用PRAGMA AUTONOMOUS_TRANSACTION关键字来声明。

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

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

相关文章

MySQL-06.DDL-表结构操作-创建

一.DDL(表操作) create database db01;use db01;create table tb_user(id int comment ID,唯一标识,username varchar(20) comment 用户名,name varchar(10) comment 姓名,age int comment 年龄,gender char(1) comment 性别 ) comment 用户表; 此时并没有限制ID为…

圈子系统APP小程序H5该如何设置IM?

搭建圈子系统的常见问题,以及圈子论坛系统的功能特点 社交圈子论坛系统的概念 圈子小程序源码 多客圈子系统 圈子是什么软件 跟进圈一个系统的软件 为圈子系统APP小程序H5设置IM(即时通讯),需要遵循一系列步骤来确保通讯功能的稳定、安全和高…

企业架构之从理论指南到实践指导企业数字化转型

理论与实践结合的数字化转型之道 在当今的全球化经济中,企业面临着前所未有的数字化转型压力。数字化转型不仅是技术的更新换代,更是业务、组织、文化和战略的系统性重塑。对于企业来说,如何将理论转换为有效的实践路径,是推动数…

STM32 通用同步/异步收发器

目录 串行通信基础 串行异步通信数据格式 USART介绍 USART的主要特性 USART的功能 USART的通信时序 USART的中断 串行通信基础 在串行通信中,参与通信的两台或多台设备通常共享一条物理通路。发送者依次逐位发送一串数据信号,按一定的约定规则被接…

乐鑫ESP32-S3无线方案,AI大模型中控屏智能升级,提升智能家居用户体验

在这个由数据驱动的时代,人工智能正以其前所未有的速度和规模改变着我们的世界。随着技术的不断进步,AI已经从科幻小说中的概念,转变为我们日常生活中不可或缺的一部分。 特别是在智能家居领域,AI的应用已成为提升生活质量、增强…

linux下编译鸿蒙版curl、openssl

一.环境准备 1.参考说明 NDK开发介绍:https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/napi/ndk-development-overview.md 2.NDK下载 点击介绍页面中的链接可以跳转到相应下载页面: 下载相应版本: 下载完毕后解压到指定目…

Matlab详细学习教程 MATLAB使用教程与知识点总结

Matlab语言教程 章节目录 一、Matlab简介与基础操作 二、变量与数据类型 三、矩阵与数组操作 四、基本数学运算与函数 五、图形绘制与数据可视化 六、控制流与逻辑运算 七、脚本与函数编写 八、数据导入与导出 九、Matlab应用实例分析 一、Matlab简介与基础操作 重点内容知识…

第2章 STM32最小系统介绍

第2章 STM32最小系统介绍 1. STM32最小系统组成 2. STM32启动模式 1.STM32最小系统组成 (1)电源电路 (2)复位电路 (3) 晶振电路 (4)下载电路 可打开开发板原理图查看 2.STM32启动模式 在STM…

Postman最新V11版本关键更新一览

Postman作为接口测试中,被广泛应用的一款主流工具,以其丰富的功能,灵活方便的使用方式,广受欢迎。最新发布的V11版本则在向协作平台转型的过程中一路狂奔,增加大量全新的协作支持。下面我们就一起来看看都有哪些变化吧…

基于Arduino的泡茶机器人

打造你的完美泡茶助手 引言 你是否曾遇到过泡出的茶太淡或太苦?通过这个项目,你可以创建一个设备,为你的茶包提供完美的浸泡时间。只需附上一个茶包并放置你的杯子,设备就会开始工作!它将完美地按照你的喜好浸泡你的…

数通--3

一、动态路由 内部 路由器之间要互联互通,必须遵循相同的协议 企业内部用 IGP,企业之间用BGP RIP(已淘汰,不考) 距离就是长短,矢量就是方向,即路由的出接口 一台路由器 A 配好RIP,…

【Fargo】5:根据网络带宽动态调整发送速率

根据网络带宽动态调整发送速率 原理:这个简单实现的原理是 改变包的发送速率就可以改变发送码率了。例如1秒发1000个1KB 的包,带宽8Mbps,如果带宽是4Mbps,那么1秒发500个就够了。D:\XTRANS\thunderbolt\ayame\zhb-bifrost\player-only\worker\src\fargo\zhb_uv_udp_sender.…

好书分享《大模型应用开发极简入门》

本书为大模型应用开发极简入门手册,为初学者提供了一份清晰、全面的“可用知识”,带领大家快速了解GPT-4和ChatGPT的工作原理及优势,并在此基础上使用流行的Python编程语言构建大模型应用。 通过本书,你不仅可以学会如何构建文本生…

大数据开发基础实训室设备

大数据实验实训一体机 大数据实验教学一体机是一种专为大数据教育设计的软硬件融合产品,其基于华为机架服务器进行了调优设计,从而提供了卓越的性能和稳定性。这一产品将企业级虚拟化管理系统与实验实训教学信息化平台内置于一体,通过软硬件…

微软十月补丁星期二发现了 118 个漏洞

微软将在2024 年 10 月补丁星期二解决 118 个漏洞,并且有证据表明发布的 5 个漏洞被野蛮利用和/或公开披露,尽管微软尚未将其中任何一个漏洞评定为严重漏洞。 在这五个漏洞中,微软列出了两个已被利用的漏洞,这两个漏洞现在都已列…

【2025】springboot贫困地区捐助系统(源码+文档+调试+答疑)

🍅 简介:2000精品计算机源码学习 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 文末获取源码 目录 一、以下学习内容欢迎领取: 二、文档资料截图: 三想了解更多,请收藏、评论、留言&#xff1a…

python如何对变量赋值

Python 中的变量赋值不需要类型声明。 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 等号()用来给变量赋值。 等号(&…

GitHub简介与安装使用入门教程

1、Git与GitHub的简介 Git是目前世界上最先进的分布式控制系统,它允许开发者跟踪和管理源代码的改动历史记录等,可以将你的代码恢复到某一个版本,支持多人协作开发。它的核心功能包括版本控制、分支管理、合并和冲突解决等,其操作…

FP7126:DC-DC降压恒流LED芯片,65536级高辉无频闪调光 支持大功率舞台灯

产品概述: FP7126是在恒定关闭时间模式下工作的平均电流模式控制LED驱动器IC。具有稳定输出恒流的能力。FP7126不产生峰值到平均的误差,因此大大提高了LED电流的精度、线路和负载调节,输出的LED电流精度为2%。而不需要任何回路补偿或高侧电流…

通义灵码 Visual Studio 下载安装指南(附安装包)

文章目录 前言一、下载和安装指南方法 1:从插件市场安装方法 2:下载安装包安装方法 3:登录并开启智能编码之旅 二、使用指南总结 前言 通义灵码是基于通义大模型的智能编程辅助工具,它提供了多种强大的功能,旨在助力开…