– 1.查询PostgreSql版本和数据库表
select version();
select * from pg_database;
– 2.修改表名
alter table public.table_name rename to table_name2;
–修改列名
A1LTER TABLE public.表名 RENAME '列名' TO '新列名';
– 3.修改字段的默认值
ALTER TABLE 表名 ALTER COLUMN 列名 SET DEFAULT 默认值;
--例如:ALTER TABLE 表名 ALTER COLUMN 列名 SET DEFAULT '0';
– 4.修改某个字段的值为null
update table_name set fin=null;--正常完成修改操作
× update table_name set fin is null;--报语法错误!!!
-- 5.修改表中值为null的数据
update table_name set fin='0' where fin is null ; --正常完成修改操作
× update table_name set fin='0' where fin = null ; --不报语法错误,但修改条数是0,不起修改作用
– 6.修改字段的类型
alter table 表名 alter COLUMN 列名 type varchar(255) ;
-- 7.添加字段
ALTER TABLE 表名 ADD 字段名 varchar(36);
– 8.替换字段中的字符串内容
UPDATE public.表名 set signature =replace(signature,'/nyr/','/sfm/');
– 9.查询字符长度大于指定值得数据
select 列名 from public.表名 where CHAR_LENGTH("列名")>20
– 10.其他测试
–表中总共的记录数
select count(1) from table_name 32
select count(1) from table_name where d_sign is null 9 //32=9+23
select count(1) from table_name where d_sign is not null 23 //23=5+18
select count(1) from table_name where d_sign= '' 5
select count(1) from table_name where d_sign!='' 18
select count(1) from table_name where d_sign is null or d_sign='' 14 //32=14+18
select count(1) from table_name where d_sign is not null AND d_sign!='' 18
– 11. pgsql中regexp_split_to_table(arg1,arg2)函数
– 参数1:字段值(aa,bb,cc)
– 参数2:分割符(’,’)
–作用: 将字段中包含特定分隔符的值分割为一个多行的表
select * from regexp_split_to_table((‘aa,bb,cc’),’,’)
– 即可得到一个table且只有一列,
– 列名默认就叫regexp_split_to_table,
– 得到的结果如下:
– 相当于将
name – 列名
aa,bb,cc – 内容
–变为了
regexp_split_to_table <-列名
aa <-值
bb <-值
cc <-值
– 12. String_agg(arg1,arg2)函数
– 作用:和上边的regexp_split_to_table(arg1,arg2)相反,
– 是将多行字段值合并到一行中,相当于聚合函数
select String_agg(a.regexp_split_to_table,’,’) as agg from (select * from regexp_split_to_table((‘aa,bb,cc’),’,’)) a
– 得到的结果如下:
– 相当于将
regexp_split_to_table <-列名
aa <-值
bb <-值
cc <-值
– 变为了
agg <-列名
aa,bb,cc <-值
11.12 参考自:postgresql 字符串分割字段转列表查询