日期:2019-2-12
新年快乐,开工大吉!
|
表名
|
用途
|
|
pg_attribute
|
列信息
|
|
pg_class
|
表信息
|
|
pg_type
|
数据类型
|
|
pg_constraint
|
约束,如主键
|
-----------------------------------------------------
# pg_attribute 列信息
## attrelid 表名,关联 pg_class.oid
## atttypid 数据类型,关联 pg_type.oid
## attlen 数据长度,同 pg_type.typlen
## attname 列名
## attnum 列序号
## attnotnull 列是否空,true:not null;false:null
# pg_class 表信息
## relname 表名
# pg_type 数据类型
## typename 数据类型名
# pg_constraint 约束
## contype 'p'主键
## conkey 是一个数组,如{1}或者{1,2},可以用unnest(conkey)函数将数组分开,然后关联pg_attribute.attnum 获取键对应的列
## conrelid 关联 pg_class.oid
样例sql(未测试),
如查询某表的表名、列、序号、是否主键、是否非空以及数据类型,数据类型长度
select c.relname,a.attname,a.attnum,case when conkey is not null then 'PK' else '' end,case a.attnotnull when TRUE then 'not null' ELSE '' END, d.typename, pg_catalog.format_type(a.atttypeid,a.atttypmod) from pg_attribute a inner join pg_class c on a.attrelid=c.oid left join pg_type d on a.atttypid=d.oid left join (select conrelid, UNNEST(conkey) conkey from pg_constraint where contype='p') b on c.oid=b.conrelid and a.attnum=b.conkey where c.relname='xx' and a.attnum>0
order by a.attnum;
select ns.nspname,
cl.relname as table_name,
cast(obj_description(cl.relfilenode,'pg_class') as varchar) as "
表
注释",
a.attname as column_name,
format_type(a.atttypid,a.atttypmod) as data_type,
文章目录第一次登陆PG
查看
数据库版本
查看
所有PG库创建数据库使用数据库删除数据库Table 数据
表
创建Table
查看
当前库中所有
表
查看
表
结构修改
表
名删除
表
引用操作系统文件脚本 \i
第一次登陆PG
像oracle一样, 虽然我们安装数据库的时候使用的是root超级用户, 但是一切的数据库操作都是受用
post
gres 这个系统普通用户:
su -
post
gres
查看
数据库版本
[
post
gres@pg01 ~]$ psql --version
psql (
PostgreSQL
) 12.0
查看
所有PG库
这点很像myql的结构, 一共有三个数据库
post
gres 系统库
剩下的两个
B树索引类型可以说是使用的最广泛的索引了,在
PostgreSQL
中可以在任何数据类型上使用btree索引,支持排序,支持大于、小于、等于、大于或等于、小于或等于的搜索。
B树具有一些重要的特征:
B树是平衡的,也就是说,每个叶页面与根都由相同数量的内部页面分隔开。因此,搜索任何值都需要花费相同的时间。
B树是多分支的,即每个页面(通常为8 KB)包含许多(数百个)ctid。因此,B树的深度很小,对于非常大的
表
,实际上可以达到4–5的深度。
索引中的数据按非递减顺序排序(在页面之间和每个页面内部),并且同一级别的页面通过双向
列
表
相互连接。因此,我们可以仅通过
列
表
的一个方向或另一个方向获
数据聚类在实际生活中应用场景还是挺多的,例如一个公司可以将客户进行分类,指定不同的销售策略等。
K-Means算法主要就是解决这类问题。在数据挖掘中, k-Means 算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。
介绍K-Means算法前,我们需要先弄清楚分类和聚类这两个概念:
分类:类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类。属于监督学习。
聚类:事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群体。聚类不需要对数据进行训练和学习。属于无监督学习。
查询
数据库
表
中字段及类型
SELECT table_catalog,table_schema,table_name,column_name,ordinal_position,is_nullable,data_type,character_maximum_length,numeric_precision,udt_name
FROM information_schema.columns As ...
要查pg的
表
结构,除了登陆psql客户端执行\dtable_name,另一种方法就是通关SQL
查询
,
如下:看起来好像很复杂。
SELECTb.table_name,a.attname,pg_catalog.fo...
得到所有
表
信息
select * from information_schema.columns
where table_schema='basisdata' and table_name<>'pg_stat_statements';
得到所有
表
的
列
名
select column_name from information_schema.columns
where table_s...