不同于Mysql,数据库Postgresql,在使用上语法还是有区别,以下记录常用的语法命令。

数据与字段类型

数据类型

分类 说明
基本数据类型 数据库内置数据类型,例如integer、char、varchar等
复合数据类型 需要用户自定义,所谓复合就是把多个基本类型融合在一起使用,复合类型的字段实际上就是一个特殊的数组
一种特殊的基本数据类型,由基本数据类型加上约束条件构成
伪类型 “伪”说明它不是真正的数据类型,这些数据类型不能作为表的列类型,只能作为函数的参数或返回值的数据类型

字段类型定义

PostgreSQL Java SE 8
numeric BigDecimal
DATE LocalDate
TIME [ WITHOUT TIMEZONE ] LocalTime
TIMESTAMP [ WITHOUT TIMEZONE ] LocalDateTime
TIMESTAMP WITH TIMEZONE OffsetDateTime

自定义数据类型

-- 看当前数据库里所有的自定义类型
\dT

数据库

查看所有数据库

SELECT datname FROM pg_database;

用户

查看所有用户

select * from pg_user;

查看用户所拥有权限

例如查看test用户的权限

select * from information_schema.table_privileges where grantee='test';

查看表结构

例如查询表tb_test的表结构

SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,b.description AS commentFROM pg_class c,pg_attribute aLEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,pg_type tWHERE c.relname = 'tb_test'and a.attnum > 0and a.attrelid = c.oidand a.atttypid = t.oidORDER BY a.attnum;

查看建表语句

\d+ table_name

授权表

 GRANT ALL PRIVILEGES ON TABLE 表名 TO 用户名

复制表结构

CREATE TABLE new_table_name ( like old_table_name including all)
CREATE TABLE new_table AS
TABLE existing_table
WITH NO DATA;

序列

查询所有序列

SELECT "c"."relname" FROM "pg_class" "c" WHERE "c"."relkind" = 'S';

\ds

创建序列

例如创建序列 tb_test_seq

create sequence tb_test_seq increment by 1 minvalue 1 no maxvalue start with 1;

查看序列权限

\dp 序列名称

授权序列

 grant all on sequence 表名 to 用户名

函数

授权函数

grant execute on function 完整函数名 to 用户名

视图

删除视图

drop view 视图名

授权视图

grant select on 视图名 to 用户名

索引

重建索引

-- 重建表上的索引:
REINDEX TABLE 表名;-- 重建单个索引:
REINDEX INDEX 索引名称;-- 重建全部索引
reindex database 数据库名称;

查询

数值字段搜索

That will select (by a regex) every book which has a title starting with a number, is that what you want?

SELECT * FROM books WHERE title ~ '^[0-9]'

if you want integers which start with specific digits, you could use:

SELECT * FROM books WHERE CAST(price AS TEXT) LIKE '123%'

or use (if all your numbers have the same number of digits (a constraint would be useful then))

SELECT * FROM books WHERE price BETWEEN 123000 AND 123999;

ILIKE

类似于like模糊查询。只不过是没有区分大小写搜索。

常见问题处理

表没权限

-- 查看一个表的授权情况
select FROM information_schema.role_table_grants  WHERE table_name ='表名';-- 赋予所有表的所有权限给用户
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 用户名; -- 赋予用户,指定表的所有权限
GRANT ALL PRIVILEGES ON 表名 TO 用户名;

导出数据库的所有表结构信息

select
table_catalog 数据库名称,
table_name 表名,
column_name 字段名,
ordinal_position ordinal_position,
column_default 字段默认值,
is_nullable 是否为空,
data_type 字段类型,
character_maximum_length 以字符为单位的最大长度,
character_octet_length 以字节为单位的最大长度,
numeric_precision 数字数据的精度,
numeric_precision_radix 数字数据的精度基数,
numeric_scale 数字数据的小数位数from
information_schema.columns
where table_schema = 'public'
-- 业务表都是以tb_开头,所以加了这个条件
and table_name like 'tb_%'
order by table_name;

PostgreSQL 数据库常用语法总结相关推荐

  1. postgreSQL数据库常用语法

    postgreSQL常用语法 1.CRUD增删改查 创建用户角色 create user ldc with password 'ldc-'; 创建数据库 create DATABASE school_ ...

  2. Oraclle数据库常用语法

    Oracle数据库常用语法 基本 --新建表: create table table1( id varchar(300) primary key, name varchar(200) not null ...

  3. MySQL和POSTGRESQL的常用语法区别

    不一样的地方用红色标记了出来,供大家参考. 转载于: MySQL和PostgreSQL的常用语法差异

  4. HANA数据库常用语法记录(不定期更新)

    HANA数据库常用语法记录(不定期更新) 增 -- 2021/06/24 -- Add column to a table ALTER TABLE TEPMLATE ADD (ID BIGINT); ...

  5. MySQL和PostgreSQL的常用语法差异

    背景 在去年的DBMS评比中,PostgreSQL夺冠,PostgreSQL一直保持上升姿态,越来越多的客户选择使用PostgreSQL,还有一部分客户从MySQL迁往PostgreSQL,那Post ...

  6. oracle数据库中常用语法,oracle数据库常用语法(中文注释版)

    -- 查看系统所有变量值 show all -- 显示当前连接用户 show user -- 显示表结构 desc 表名 -- 显示错误 show error -- 退出 exit; 表空间是数据库中 ...

  7. db2数据库常用语法及命令

    db2数据库 db2 导出表数据 db2 "export to t_user.del of del select * from t_user"; db2 导入数据 db2 &quo ...

  8. 数据库常用语法-查询和函数-附sql练习脚本

    致读者: 博主是一名数据科学与大数据专业大二的学生,真正的一个互联网萌新,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于困惑的读者.由于水平有限,博客中难免会有一些错误 ...

  9. mysql数据库名语法_mysql数据库常用语法

    1)登录mysql数据库. mysql –uroot –poldboy123 mysql 2) 查看当前登录的用户. selectuser(); 3) 创建数据库oldboy,并查看已建库完整语句. ...

最新文章

  1. 一图读懂《北京市数据中心统筹发展实施方案(2021-2023年)》
  2. C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)...
  3. 三次握手面试题java_java面试题三次握手和四次挥手-嗨客网
  4. 【程序设计】编程语言的抽象层次
  5. 支持向量机中到底什么是支持向量
  6. jQuery1.6性能评测
  7. win08跟linux,Win 8 PK Linux!八大优势助微软完胜
  8. C++---static关键字
  9. php 重写sessionid,PHP 重置 phpsessionid
  10. 浏览器同源策略及其规避方法
  11. Fiddler刚使用遇到的4大问题
  12. 微信小程序 教学质量问卷调查 小程序实现
  13. 如何录制自己手机视频
  14. 华为cor—al10_华为荣耀cor_al10是 什么型号的手机
  15. 苹果官方首曝iOS 15!这些经典iPhone都要被弃
  16. 树莓派 音频本地的录制与播放、远程音频直播
  17. CSS线性渐变和径向渐变详解
  18. Pyhton之异常处理
  19. #ffffff为什么是白色
  20. 电信运营商云计算战略和发展现状

热门文章

  1. 计算机毕业设计之java+ssm医院资产管理系统
  2. 智算之道——人工智能应用挑战赛(初赛)-baseline 0.844
  3. c++ 11 原子操作库 (std::atomic)(二)
  4. taobao.refund.get( 获取单笔退款详情 )
  5. STM32F4---PWM输出
  6. 提升机,升降机,绞车,气缸驱动机械手爪,隧道式清洗干燥机,十字滑台机械手,小型饲料粉碎机……3D模型
  7. Python基础总结(五) 组合数据类型
  8. 《小岛经济学》四、最成功的栽赃——通货紧缩
  9. 无监督聚类 -- Kmeans
  10. 【利用proteus建立8086最小系统】MASM32的安装下载问题