PostgreSQL 查找当前数据库的所有表操作

实现的功能类似MySQL:

show tables;

在 PostgreSQL 中需要写:

select * from pg_tables where schemaname = 'public';

返回结果类似如下:

schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity
------------+-----------+------------+------------+------------+----------+-------------+-------------
 public  | deploy | postgres |   | t   | f  | f   | f
 public  | deploy2 | postgres |   | f   | f  | f   | f
(2 rows)

补充:PostgreSql 获取所有的表、视图、字段、 主键

PostgreSQL获取数据库中所有view名 视图:

SELECT viewname FROM pg_views
WHERE  schemaname ='public' 

postgreSQL获取数据库中所有table名 表:

SELECT tablename FROM pg_tables
WHERE tablename NOT LIKE 'pg%'
AND tablename NOT LIKE 'sql_%'
ORDER BY tablename;

postgreSQL获取某个表tablename 所有字段名称 , 类型,备注,是否为空 等

SELECT col_description(a.attrelid,a.attnum) as comment,pg_type.typname as typename,a.attname as name, a.attnotnull as notnull
FROM pg_class as c,pg_attribute as a inner join pg_type on pg_type.oid = a.atttypid
where c.relname = 'tablename' and a.attrelid = c.oid and a.attnum>0

postgreSQL获取某个表tablename 的主键信息

select pg_attribute.attname as colname,pg_type.typname as typename,pg_constraint.conname as pk_name from
pg_constraint inner join pg_class
on pg_constraint.conrelid = pg_class.oid
inner join pg_attribute on pg_attribute.attrelid = pg_class.oid
and pg_attribute.attnum = pg_constraint.conkey[1]
inner join pg_type on pg_type.oid = pg_attribute.atttypid
where pg_class.relname = 'tablename'
and pg_constraint.contype='p'

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • PostgreSQL基础知识之SQL操作符实践指南

    前言 操作符是数据库具有的运算特性,对文本字符和一些标签字符的处理,使用操作符可以简化SQL代码,同时也可以节省开发时间和提高开发效率. 比较操作符 在PostgreSQL中,所有的数据类型都可以使用比较操作符,比较操作符运算结果返回一个布尔值.即 TRUE 或者 FALSE.比较操作符为双目操作符,因此被比较的两个值的数据类型必须是相同的数据类型或者在彼此之间可以进行隐式类型转换.在PostgreSQL中,提供的比较操作符有 > .< .<= .>= .= .<> 或

  • Postgresql 实现查询一个表/所有表的所有列名

    假设postgres有数据库testdb 在testdb下执行下列sql语句,得到所有表的信息 select * from information_schema.columns where table_schema='public' and table_name<>'pg_stat_statements'; 在testdb下执行下列sql语句,得到所有表的列名 select column_name from information_schema.columns where table_sche

  • postgresql数据库根据年月查询出本月的所有数据操作

    表里的所有数据: 现在我要根据创建时间的 年月查询 当月所有的数据 比如前台传给我一个年月的字段planTimeMonth,值为2018-06 那么我们需要查询创建时间为6月份的所有数据 sql: java代码中sql拼接: criteria.andCondition("to_char(crt_time, 'yyyy-mm')='"+query.get("planTimeMonth").toString()+"'"); 补充:postgresql

  • PostgreSQL COALESCE使用方法代码解析

    有这种要求,更新自己本身的字段的某个值进行加或者减 常规方法: UPDATE tbl_kintai_print_his SET print_time = now(), print_emp_cd = '000000', times = (select times from tbl_kintai_print_his where kokyaku_cd = '000002' AND sagyo_ymd = '2015-01-30' ) + 1, pattern = '055' , ko_item_1 =

  • PostgreSQL 查找当前数据库的所有表操作

    实现的功能类似MySQL: show tables; 在 PostgreSQL 中需要写: select * from pg_tables where schemaname = 'public'; 返回结果类似如下: schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity ------------+-----------+------------+--

  • django连接mysql数据库及建表操作实例详解

    本文实例讲述了django连接mysql数据库及建表操作.分享给大家供大家参考,具体如下: django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找到settIngs里面的database设置如下 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 's22',

  • 使用Mybatis对数据库进行单表操作的实现示例

    简介 该篇文章主要是介绍如何使用MyBatis对Mysql数据库进行单表操作(对于mybatis的下载以及配置文件的作用和具体信息,我在上一篇文章中也已经提到了),使用的环境如下: JDK版本:1.8 编译器:IDEA2019 JDBC版本:8.0.18 mybatis版本:3.5.3 配置文件 首先需要有两个配置文件,一个是configuration.xml文件,配置的是连接数据库的环境以及对于mapper.xml文件的映射,还有另一个文件就是mapper.xml,这个文件主要是用来写sql语

  • MySQL数据库之数据表操作

    目录 一.创建数据表 1.基本语法 2.创建方式一 3.创建方式二 4.表选项 5.复制已有表结构 二.显示数据表 三.显示表结构 四.显示表创建语句 五.设置表属性 六.修改表结构 1.修改表名 2.新增字段 3.修改字段名 4.修改字段属性 5.删除字段 七.删除表结构 一.创建数据表 1.基本语法 create table 表名 ( 字段名 字段类型 [字段属性], 字段名 字段类型 [字段属性], ... ) [表选项]; 需要注意:表需要放在对应的数据库下面 2.创建方式一 -- 先选

  • MySQL数据库的多表操作

    目录 一. 数据库的多表操作 二,操作 一对一 一对多 一. 数据库的多表操作 数据库的多表关系: 一对一 一对多 多对一 多对多 二,操作 一对一 建立数据表person和card,设置person数据表id为主键且自增,设置card的id为外键 // 创建person表 CREATE TABLE person ( id INT PRIMARY KEY AUTO_INCREMENT, // 主键 自增 NAME VARCHAR(20) ); // 创建card表 CREATE TABLE ca

  • MySQL数据库之数据表操作DDL数据定义语言

    目录 一.创建数据表 二.查询数据表 三. 删除数据表 四.修改数据表以及字段 一.创建数据表 数据表:一个二维的表格,一个表格是由多列组成,表格中的每一类称之为表格的字段 以上述学生信息表格为例在MySQL数据库中创建一张表格,语句如下(注:创建前应选择相应的数据库): create table students( stu_num char(8) not null unique, stu_name varchar(20) not null, stu_gender char(2) not nul

  • MyBatis实现Mysql数据库分库分表操作和总结(推荐)

    前言 作为一个数据库,作为数据库中的一张表,随着用户的增多随着时间的推移,总有一天,数据量会大到一个难以处理的地步.这时仅仅一张表的数据就已经超过了千万,无论是查询还是修改,对于它的操作都会很耗时,这时就需要进行数据库切分的操作了. MyBatis实现分表最简单步骤 既然文章的标题都这么写了,不如直接上干货来的比较实际,我们就先来看看如何实现最简单的分表. 1.我们模拟用户表数据量超过千万(虽然实际不太可能) 2.用户表原来的名字叫做user_tab,我们切分为user_tab_0和user_t

  • PostgreSQL用户、数据库及表的管理、操作与授权方式

    摘要 PostgreSQL的常用命令 1.登录数据库 /* 切换到数据库用户 */ su - postgres /* 登录 */ psql 登录成功显示如下: bash-4.2$ psql psql (9.3.17) Type "help" for help. postgres=> 2.切换数据库 /* 登录指定数据库 */ psql -U user -d dbname /* 列举数据库 */ \l /* 切换数据库 */ \c dbname 3.用户管理 /* 创建用户 */

  • PHP数据库表操作的封装类及用法实例详解

    本文实例讲述了PHP数据库表操作的封装类及用法.分享给大家供大家参考,具体如下: 数据库表结构: CREATE TABLE `test_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(45) NOT NULL, `password` varchar(45) NOT NULL, `nickname` varchar(45) NOT NULL, `r` tinyint(4) NOT NULL, PRIMARY KEY

  • PostgreSQL数据库的基本查询操作

    目录 查询列 去除重复数据DISTINCT WHERE子句 注释 算术运算符 比较运算符 逻辑运算符 查询列 SELECT语句,用于从表中选取数据.格式: SELECT <列名>,... FROM <表名>; 从Product表中,查询三列. SELECT product_id, product_name, purchase_price FROM Product; 查询所有列,格式: SELECT *FROM <表名>; 星号代表全部列. SELECT *FROM Pr

随机推荐