【PostgreSQL】从零开始:(十八)数据类型-字符类型

news/2024/7/9 22:47:41 标签: postgresql, 数据库

字符类型

名字描述
character varying(n),varchar(n)可变长度的字符类型,它类似于其他数据库中的VARCHAR数据类型。可以在创建表时指定字符可变列的最大长度。如果不指定长度,则默认为255个字符。
character(n), ,char(n)bpchar(n)固定长度的字符类型,最多可以存储n个字符。如果存储的字符串长度小于n,会在末尾自动填充空格。
bpchar存储固定长度字符的数据类型。bpchar类型使用固定长度的存储空间来存储字符数据,不管实际输入的字符的长度如何,都会被填充到固定长度,在存储和处理固定长度的字符数据时非常有用。它可以用于存储具有固定长度的字符串,例如电话号码、邮政编码等,如果插入的数据长度超过了bpchar类型的指定长度,PostgreSQL将会截断或填充数据,要使用bpchar类型的固定长度特性,请确保指定正确的长度,以便正确存储和处理字符数据。( 16 / 15 / 14 / 13 / 12 / 11 / 10)版本支持
text可变长度的字符类型,可以存储任意长度的字符串。通常用于存储大量文本数据。
创建表格: CREATE TABLE contact ( id serial PRIMARY KEY, phone_number bpchar(10) );
插入数据: INSERT INTO contact (phone_number) VALUES ('1234567890');
查询数据: SELECT * FROM contact;
结果: id | phone_number ----+-------------- 1 | 1234567890
CREATE TABLE test1 (a character(4));
INSERT INTO test1 VALUES ('ok');
SELECT a, char_length(a) FROM test1; -- (1)

  a   | char_length
------+-------------
 ok   |           2


CREATE TABLE test2 (b varchar(5));
INSERT INTO test2 VALUES ('ok');
INSERT INTO test2 VALUES ('good      ');
INSERT INTO test2 VALUES ('too long');
ERROR:  value too long for type character varying(5)
INSERT INTO test2 VALUES ('too long'::varchar(5)); -- explicit truncation
SELECT b, char_length(b) FROM test2;

   b   | char_length
-------+-------------
 ok    |           2
 good  |           5
 too l |           5

PostgreSQL 中还有另外两种固定长度字符类型。它们不用于常规用途,仅用于内部系统目录。该类型用于存储标识符。它的长度目前定义为 64 个字节(63 个可用字符加上终止符),但应使用源代码中的常量进行引用。长度在编译时设置(因此可针对特殊用途进行调整);默认的最大长度可能会在将来的版本中更改。类型(注意引号)的不同之处在于它只使用一个字节的存储,因此只能存储一个 ASCII 字符。它在系统目录中用作简单的枚举类型。

名字存储大小描述
“char”1 字节单字节内部类型
name64 字节对象名称的内部类型

http://www.niftyadmin.cn/n/5275558.html

相关文章

【论文解读】Comparing VVC, HEVC and AV1 using Objective and Subjective Assessments

时间:2020 级别:IEEE 机构: IEEE 组织 摘要: 对3种最新的视频编码标准HEVC (High Efficiency video Coding)测试模型HM (High Efficiency video Coding)、amedia video 1 (AV1)和Versatile video Coding测试模型 (VTM)进行了客观和…

linux:掌握systemctl命令控制软件的启动和关闭、掌握使用ln命令创建软连接

掌握使用systemctl命令控制软件的启动和关闭 一:systemctl命令: Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动停止、开机自启 能够被systemctl管理的软件一般也称之为:服务 语法: systemctl | start | stop | status | enable …

Tomcat (Linux系统)详解全集

点击标题进入对应模块学习,你也可以完全拿捏Tomcat! 1 Tomcat及JDK下载安装(Linux系统) 2 Tomcat目录介绍 3 Tomcat的启动关闭及日志说明 4 完美解决Tomcat启动慢的三种方法 5 Tomcat管理功能使用 6 Tomcat主配置文件(…

aws配置以及下载 spaceNet6 数据集

一:注册亚马逊账号 注册的时候,唯一需要注意的是信用卡绑定,这个可以去淘宝买,搜索aws匿名卡。 注册完记得点击登录,记录一下自己的账户ID哦! 二:登录自己的aws账号 2.1 首先创建一个用户 首…

常见的排序算法---快速排序算法

快速排序算法 快排是基于分治的思想来的,快速排序就是在元素序列中选择一个元素作为基准值,每趟总数据元素的两端开始交替排序,将小于基准值的交换的序列前端,大于基准值的交换到序列后端,介于两者之间的位置称为基准值…

Kafka为什么能高效读写数据

1)Kafka 本身是分布式集群,可以采用分区技术,并行度高(生产消费方并行度高); 2)读数据采用稀疏索引,可以快速定位要消费的数据; 3)顺序写磁盘; …

vue3项目,按需引入Element-plus ElMessage 样式丢失

文章目录 Element-plus使用了自动按需导入代码手动导入了API样式丢失解决方案Eslint报错 Element-plus使用了自动按需导入 vite.config.js配置如下: import { defineConfig } from vite import vue from vitejs/plugin-vue// 按需引入 import AutoImport from unp…

Gradle 简单入门

Gradle简单介绍: Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。面向Java应用…