PostgreSQL manual
- Case
- Install DB
- DML
- 日志
-
- Time Zone
- 日志文件postgresql.conf
- pg_reload_conf 重载配置,使修改生效
- 打开日志
- log_file_mode = 0600 敏感保护
- Customizing the log files
- could not create shared memory segment
- 自身的Function
- chr(10) chr(13)
- position 获取字符的第一次出现的位置
- ~ 是否包括字符
- 拼接字符串
- string_agg
- array_agg
- 合并多行到一列
- case when
- case when && coalesce
- number 精度
- Limit 两种写法
- Top number
- 忽略大小寫
- 授權
- set path
- connect to database
- 查詢版本信息
- export dump file
- import dump file
- 根据column name查找table
- Business
- Function
- Q && A
pdadmin可以数据库分为两部分,Catalog部分是pgsql自身的Function,Schema是业务部分。 所有的业务部分都是基于Catalog,里面有很多功能,table,view,trigger 供你使用。

Case
Regex
去重内容中的数字部分
SELECT DISTINCT
REGEXP_REPLACE( vou_no, '[0-9]', '', 'g' ) AS vou_type
FROM
a_vouc
substring & replace
SELECT * FROM (
SELECT acc_voucher_date, REPLACE (SUBSTRING(to_char(acc_voher_date,'YYYY-MM-DD'),1,7),'-','') as period_month, acc_posting_period FROM her_hdr
) as tab
WHERE period_month != acc_posting_period
拼接换行符
UPDATE a_vou
SET acemark = acreark || chr( 10 ) ||'22513637'
Install DB
选择 Locale
这个至关重要,如果default 会产生locate 和 ctyle 编码问题。

DML
第一次登录
PostgreSQL 默认的用户是postgres,密码是install时设置的密码
D:\PostgreSQL94\bin> psql -U postgres
Password for user postgres:
初始化用户
–createdb:允许新角色创建数据库。
–createrole:允许新角色创建其他角色。
–superuser:赋予新角色超级用户权限。
–no-createdb:防止新角色创建数据库(默认)。
–no-createrole:防止新角色创建其他角色(默认)。
–no-superuser:确保新角色不是超级用户(默认)。
-P 或 --pwprompt:创建用户时提示输入密码。
-e 或 --echo:显示执行的 SQL 命令。
createuser test1
createuser --createdb test2
createuser --createrole test3
createuser --superuser test4
createuser --createdb --createrole --superuser admin
登录数据库
psql -U test_admin -d dbname
psql查看用户的权限
\du
角色清單
角色名稱 | 屬性 | 成員屬於
--------------+-----------------------------------+----------
mi.y | 超級用戶, 建立角色, 建立 DB, 複製 | {
}
test_admin | | {
}
test_user | | {
}
创建 User
CREATE USER test_user WITH PASSWORD '*abc123';
删除User
drop user admin1;
删除Role
postgres=# drop role pgrole;
赋值权限
ALTER USER test_admin CREATEDB;
ALTER USER user_name WITH SUPERUSER;
GRANT ALL PRIVILEGES ON DATABASE "EIL" to test_admin;
ALTER USER test_admin CREATEROLE;
set mi right to test_admin
grant "mi" to test_admin;
赋予登录权限
alter role admin login
创建数据库
CREATE DATABASE "DBNAME" WITH OWNER = "test_user" ENCODING = 'UTF8' TABLESPACE = pg_default CONNECTION LIMIT = -1 LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';
删除数据库
bin> dropdb --host="127.0.0.1" --username="t

该博客围绕PostgreSQL展开,涵盖安装数据库时选择Locale的重要性、DML操作(如用户管理、数据库创建与删除等)、日志配置与管理、自身功能函数使用、业务场景中重复行处理,以及类型转化等内容,还包含常见问题解答。
最低0.47元/天 解锁文章
1093






