bigint & bigserial

简介:

--最近在给公司开发部门培训一些pg的知识,现总结如下:
--在pg中整型与整型相除,会直接舍弃小数部分
postgres=# select 8/3;  
 ?column? 
----------
        2
--此时要声明除数为非整型,则不会舍弃小数部分
postgres=# select 8.0/3;
      ?column?      
--------------------
 2.6666666666666667
 
 postgres=# select 8::real/3;
     ?column?     
------------------
 2.66666666666667

-- 自增序列
 create table t (name varchar(20),password varchar(20));
 insert into t values('abc','1234354'),('123123','asdfasdf');
 select * from t;
 alter table t add column id serial;

postgres=# \d+ t
                                                     Table "public.t"
  Column  |         Type          |                   Modifiers                    | Storage  | Stats target | Description 
----------+-----------------------+------------------------------------------------+----------+--------------+-------------
 name     | character varying(20) |                                                | extended |              | 
 password | character varying(20) |                                                | extended |              | 
 id       | integer               | not null default nextval('t_id_seq'::regclass) | plain    |              | 
Has OIDs: no


-- 间隔序列
select generate_series(1,100);

 --间隔日期
 select generate_series('2015-1-1'::timestamp,'2015-1-4'::timestamp,interval '1 day');
 SELECT * FROM generate_series('2008-03-01 00:00'::timestamp,'2008-03-04 12:00'::timestamp, '10 hours');
 select m,'rudy'||m, now()+ (m||' day')::interval from generate_series(1,100) m;
  



  --创建枚举类型
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');

--测试
CREATE TABLE person ( name text,current_mood mood);
INSERT INTO person VALUES ('Larry', 'sad');
INSERT INTO person VALUES ('Curly', 'ok');
INSERT INTO person VALUES ('rudy', 'happy');

--注意枚举类型区分大小写
INSERT INTO person VALUES ('rudy', 'HAPPY');


--注意枚举类型的排序其为定义时的顺序
mydb=# select * from person order by current_mood;
 name  | current_mood 
-------+--------------
 Larry | sad
 Curly | ok
 rudy  | happy
 
 --执行显示的类型转换才能进行字符类型进行排序
 select * from person order by current_mood::char;
 
 
 --添加新的枚举值
 alter type mood add value 'engry';
 
 
--检举类型的修改相当于修改数据字典,不会对相应的引用造成阻塞
INSERT INTO person select 'rudy01','happy' from generate_series(1,10000000);
alter type mood add value 'engryeds';

--枚举类型的定义在如下表中
select * from pg_enum;

目录
相关文章
|
定位技术
最完整的经纬度正则表达式
最完整的就是最好的 ----经纬度
15481 0
|
8月前
|
算法 测试技术 Go
Go 1.24.0 重磅发布:新特性、新工具,开发者必看!
`Go 1.24.0` 已正式发布,带来诸多改进和新特性。语言层面上,泛型类型别名现已被完全支持;性能方面,通过优化 `map` 实现和内存分配,减少了 2-3% 的 CPU 开销;工具链新增模块工具依赖跟踪及测试分析器;标准库增加了弱引用包、FIPS 140-3 合规机制等;WebAssembly 支持也得到了增强。快来下载体验吧!
417 7
|
SQL 分布式计算 关系型数据库
实时数仓 Hologres操作报错合集之指定主键更新模式报错主键数据重复,该如何处理
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
数据挖掘 程序员 数据安全/隐私保护
解锁PDF潜力:9个Python库让你的文档处理更高效
程序员晚枫分享了Python处理PDF的9个第三方库,包括PyPDF2、pdfrw、ReportLab、pikepdf、pdfplumber、pdfminer.six、PyMuPDF、popdf和borb,各具优缺点。选择时需考虑应用场景、功能需求、库的维护状态和开源协议。例如,pdfplumber擅长内容提取,而ReportLab和PyMuPDF适用于创建和修改内容。
1942 7
|
SQL 前端开发 数据库
智能评估时代:SurveyKing开源问卷系统YYDS
我发现了一个开源的问卷/考试系统SurveyKing([GitHub](https://github.com/javahuang/surveyking) / [Gitee](https://gitee.com/surveyking/surveyking)),拥有强大功能,包括丰富的问卷设计选项。它在GitHub上有2.9k stars。虽然后端开源,但前端代码未公开。快速体验可通过Docker运行`docker run -p 1991:1991 surveyking/surveyking`。项目部署涉及数据库初始化和编写`docker-compose.yml`。
765 22
智能评估时代:SurveyKing开源问卷系统YYDS
|
算法 Linux Windows
linux中的压缩软件介绍
这些是Linux中一些常见的压缩软件工具,您可以根据需要选择合适的工具来压缩和解压缩文件。每种工具都有其特定的特点和压缩性能,因此根据具体情况选择合适的工具是重要的。
284 0
|
SQL Oracle 关系型数据库
调整OceanBase数据库的系统时间,即使只调小1秒导致异常并不是正常现象
【2月更文挑战第21天】调整OceanBase数据库的系统时间,即使只调小1秒导致异常并不是正常现象
499 7
|
Java Apache
Apache HttpClient 4.5设置超时时间
Apache HttpClient 4.5设置超时时间
585 0
|
Linux Docker 容器
Linux环境下Docker的卸载
本文可以满足完整卸载Docker的需求。文章记录了在Linux环境下Docker的卸载过程,包括Docker软件包、镜像、容器、数据卷等文件的删除。
12107 39
|
XML 存储 API
Flowable入门程序——构建一个命令行程序(二)
Flowable入门程序——构建一个命令行程序
386 0