如何获得列使用PostgreSQL的表名属性是行还是列查询

3939人阅读
数据库(5)
列出当前数据库所有表
SELECT & tablename & FROM & pg_
WHERE & tablename & NOT & LIKE & 'pg%'
AND tablename NOT LIKE 'sql_%'&
ORDER & BY &
列出数据库名
SELECT datname FROM pg_
切换数据库
\c 数据库名
以下转自:
1、通过命令行查询
& & \d 数据库 —— 得到所有表的名字
& & \d 表名 —— 得到表结构
2、通过SQL语句查询
& & &select * from pg_tables& —— 得到当前db中所有表的信息(这里pg_tables是系统视图)
& & &select tablename from pg_tables where schemaname='public'& —— 得到所有用户自定义表的名字(这里&tablename&字段是表的名字,&schemaname&是schema的名字。用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:16418次
排名:千里之外
原创:28篇
转载:56篇
(3)(15)(13)(11)(14)(19)(9)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'2008年5月 其他数据库开发大版内专家分月排行榜第一2008年4月 其他数据库开发大版内专家分月排行榜第一2008年3月 其他数据库开发大版内专家分月排行榜第一2008年2月 其他数据库开发大版内专家分月排行榜第一
2008年3月 扩充话题大版内专家分月排行榜第二
2007年10月 PHP大版内专家分月排行榜第一2007年12月 其他数据库开发大版内专家分月排行榜第一2007年10月 其他数据库开发大版内专家分月排行榜第一2007年9月 其他数据库开发大版内专家分月排行榜第一
2014年6月 其他数据库开发大版内专家分月排行榜第二2008年11月 其他数据库开发大版内专家分月排行榜第二2006年12月 PHP大版内专家分月排行榜第二2007年9月 PHP大版内专家分月排行榜第二2007年6月 PHP大版内专家分月排行榜第二2008年2月 其他数据库开发大版内专家分月排行榜第二2008年1月 其他数据库开发大版内专家分月排行榜第二2007年11月 其他数据库开发大版内专家分月排行榜第二
2007年10月 PHP大版内专家分月排行榜第一2007年12月 其他数据库开发大版内专家分月排行榜第一2007年10月 其他数据库开发大版内专家分月排行榜第一2007年9月 其他数据库开发大版内专家分月排行榜第一
2014年6月 其他数据库开发大版内专家分月排行榜第二2008年11月 其他数据库开发大版内专家分月排行榜第二2006年12月 PHP大版内专家分月排行榜第二2007年9月 PHP大版内专家分月排行榜第二2007年6月 PHP大版内专家分月排行榜第二2008年2月 其他数据库开发大版内专家分月排行榜第二2008年1月 其他数据库开发大版内专家分月排行榜第二2007年11月 其他数据库开发大版内专家分月排行榜第二
2007年10月 PHP大版内专家分月排行榜第一2007年12月 其他数据库开发大版内专家分月排行榜第一2007年10月 其他数据库开发大版内专家分月排行榜第一2007年9月 其他数据库开发大版内专家分月排行榜第一
2014年6月 其他数据库开发大版内专家分月排行榜第二2008年11月 其他数据库开发大版内专家分月排行榜第二2006年12月 PHP大版内专家分月排行榜第二2007年9月 PHP大版内专家分月排行榜第二2007年6月 PHP大版内专家分月排行榜第二2008年2月 其他数据库开发大版内专家分月排行榜第二2008年1月 其他数据库开发大版内专家分月排行榜第二2007年11月 其他数据库开发大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。PostgreSQL 列所有表结构的查询语句_数据库技术_Linux公社-Linux系统门户网站
你好,游客
PostgreSQL 列所有表结构的查询语句
来源:Linux社区&
作者:lvxing
PostgreSQL 列所有表结构的查询语句
tablename&
pg_tables&
tablename&
AND tablename NOT LIKE 'sql_%' ORDER&
查询表t_appointment_apply表的字段信息 SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a .atttypmod AS lengthvar,a.attnotnull AS notnull from pg_class c,pg_attribute a,pg_type t where c.relname='t_appointment_apply' and a.attnum&0 and a.attrelid=c.oid and a.atttypid=t.oid
相关资讯 & & &
& (01/20/:23)
& (11/20/:31)
& (07/10/:30)
& (12/08/:13)
& (09/12/:05)
& (07/09/:31)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款15个postgresql数据库实用命令分享
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了15个实用的postgresql数据库命令分享,都是一些技巧性的postgresql命令,需要的朋友可以参考下
最初是想找postgresql数据库占用空间命令发现的这篇blog,发现其中提供的几
条命令很有用(但也有几条感觉是充数的=。=),于是就把它翻译过来了。另外这篇文章是09年的,所以里面的内容可能有点过时,我收集了原文中有用的评论放在了最后面。
现在有不少开源软件都在使用postgreSQL作为它们的数据库系统。但公司可能不会招一些全职的postgreSQL DBA来维护它(piglei: 在国内基本也找不到)。而会让一些比如说Oracle DBA、Linux系统管理员或者程序员去 维护。在这篇文章中我们会介绍15个无论是对psql老鸟还是DBA都非常实用的postgresql数据库命令。
1. 如何找到postgreSQL数据库中占空间最大的表?
$ /usr/local/pgsql/bin/psql test
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
Type:& \copyright for distribution terms
&&&&&& \h for help with SQL commands
&&&&&& \? for help with psql commands
&&&&&& \g or terminate with semicolon to execute query
&&&&&& \q to quit
test=# SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;
&&&&&&&&&&&&& relname&&&&&&&&&&&&& | relpages
-----------------------------------+----------
&pg_proc&&&&&&&&&&&&&&&&&&&&&&&&&& |&&&&&& 50
&pg_proc_proname_args_nsp_index&&& |&&&&&& 40
&pg_depend&&&&&&&&&&&&&&&&&&&&&&&& |&&&&&& 37
&pg_attribute&&&&&&&&&&&&&&&&&&&&& |&&&&&& 30
如果你只想要最大的那个表,可以用limit参数来限制结果的数量,就像这样:
# SELECT relname, relpages FROM pg_class ORDER BY relpages DESC limit 1;
&relname | relpages
---------+----------
&pg_proc |&&&&&& 50
1.relname - 关系名/表名
2.relpages - 关系页数(默认情况下一个页大小是8kb)
3.pg_class - 系统表, 维护着所有relations的详细信息
4.limit 1 - 限制返回结果只显示一行
2. 如何计算postgreSQL数据库所占用的硬盘大小?
pg_database_size 这个方法是专门用来查询数据库大小的,它返回的结果单位是字节(bytes)。:
# SELECT pg_database_size('geekdb');
pg_database_size
------------------
如果你想要让结果更直观一点,那就使用**pg_size_pretty**方法,它可以把字节数转换成更友好易读的格式。
# SELECT pg_size_pretty(pg_database_size('geekdb'));
&pg_size_pretty
----------------
3. 如何计算postgreSQL表所占用的硬盘大小?
下面这个命令查出来的表大小是包含索引和toasted data的,如果你对除去索引外仅仅是表占的大小感兴趣,可以 使用后面提供的那个命令。
# SELECT pg_size_pretty(pg_total_relation_size('big_table'));
&pg_size_pretty
----------------
如何查询不含索引的postgreSQL表的大小?
使用**pg_relation_size**而不是**pg_total_relation_size**方法。
# SELECT pg_size_pretty(pg_relation_size('big_table'));
&pg_size_pretty
----------------
4. 如何查看postgreSQL表的索引?
代码如下:Syntax: # \d table_name
让我们看下面这个例子,注意如果你的表有索引的话,你会在命令输出内容的后面那部分找到一个标题 Indexes ,在这个例子中,pg_attribut表有两个btree类型的索引,默认情况下postgreSQL使用的索引类型都 是btree,因为它适用于绝大多数情况。
test=# \d pg_attribute
&& Table "pg_catalog.pg_attribute"
&&& Column&&&& |&& Type&& | Modifiers
---------------+----------+-----------
&attrelid&&&&& | oid&&&&& | not null
&attname&&&&&& | name&&&& | not null
&atttypid&&&&& | oid&&&&& | not null
&attstattarget | integer& | not null
&attlen&&&&&&& | smallint | not null
&attnum&&&&&&& | smallint | not null
&attndims&&&&& | integer& | not null
&attcacheoff&& | integer& | not null
&atttypmod&&&& | integer& | not null
&attbyval&&&&& | boolean& | not null
&attstorage&&& | "char"&& | not null
&attalign&&&&& | "char"&& | not null
&attnotnull&&& | boolean& | not null
&atthasdef&&&& | boolean& | not null
&attisdropped& | boolean& | not null
&attislocal&&& | boolean& | not null
&attinhcount&& | integer& | not null
&&& "pg_attribute_relid_attnam_index" UNIQUE, btree (attrelid, attname)
&&& "pg_attribute_relid_attnum_index" UNIQUE, btree (attrelid, attnum)
5. 如何创建一个指定类型的索引?
默认情况下的索引都是btree类型的,但是你可以用下面的方法来指定新索引的类型。
Syntax: CREATE INDEX name ON table USING index_type (column);
# CREATE INDEX test_index ON numbers using hash (num);
6. 如何在postgreSQL中使用事务?
如何开始一个事务?
# BEGIN -- 开始事务
如何提交或回滚一个事务?
只有当你调用COMMIT命令后,你在BEGIN命令后所做的所有操作才会真正的被提交到postgreSQL数据库。另外你还 可以使用ROLLBACK命令来回滚事务中做的所有操作。
# ROLLBACK -- 回滚当前事务
# COMMIT -- 提交当前事务
7. 如何查看postgreSQL数据库对某个SQL查询的执行计划?
代码如下:# EXPLAIN
8. 如何通过在服务端执行查询来显示执行计划?
下面这个命令会在服务器端执行查询,但是并不会把查询结果给用户,而是返回它实际的执行计划。
# EXPLAIN ANALYZE
9. 怎么生成一个序列的数字并把它们插入到一个表中?
下面这个命令将会生成1到1000这一千个数字并插入到numbers表中。
# INSERT INTO numbers (num) VALUES ( generate_series(1,1000));
10. 如何统计postgreSQL表里面的行数?
这个命令可以查询出表里所有记录的条数。
代码如下:# select count(*)
这个命令会查询出表中指定列的值不为空的所有行数.
代码如下:# select count(col_name)
这个命令会查询出表中按制定列的值去重后的总行数。
代码如下:# select count(distinct col_name)
11. 如何查询表中某列**第二大**的值?
查询某列最大的值
代码如下:# select max(col_name)
查询某列中第二大的值
# SELECT MAX(num) from number_table where num& & ( select MAX(num) from number_table );
12. 如何查询表中某列**第二小**的值?
查询某列最小的值
代码如下:# select min(col_name)
查询某列第二小的值
# SELECT MIN(num) from number_table where num & ( select MIN(num) from number_table );
13. 如何列出postgreSQL数据库中基本的数据类型?
下面截取了部分内容,这个命令可以展示可用的数据类型和它们所占用的字节数。
test=# SELECT typname,typlen from pg_type where typtype='b';
&&& typname&&&& | typlen
----------------+--------
&bool&&&&&&&&&& |&&&&& 1
&bytea&&&&&&&&& |&&&& -1
&char&&&&&&&&&& |&&&&& 1
&name&&&&&&&&&& |&&&& 64
&int8&&&&&&&&&& |&&&&& 8
&int2&&&&&&&&&& |&&&&& 2
&int2vector&&&& |&&&& -1
1.typname - 类型的名称
2.typlen - 类型的大小
14. 如何把某一次查询的结果保存为一个文件?
代码如下:# \o output_file
# SELECT * FROM pg_
上面这个查询的结果将会被保存到到"output_file"文件中。当重定向被激活后,之后的所有查询都不再会把结果 打印在屏幕上了。如果要再次打开屏幕输出,需要再执行一次不带任何参数的 o 命令。
15. 存储加密后的密码
PostgreSQL数据库可以使用下面的crypt命令来加密数据。这可以用来方便的用来保存你的用户名和密码。
# SELECT crypt ( 'sathiya', gen_salt('md5') );
PostgreSQL crypt方法可能存在的问题:
crypt在你的环境下可能会用不了,并提供下面这个报错信息。
ERROR:& function gen_salt("unknown") does not exist
HINT:& No function matches the given name and argument types.
&&&&&&&& You may need to add explicit type casts.
解决方法:
为了解决这个问题,你需要安装 postgresql-contrib-版本 这个包,然后在psql中执行下面这个命令。
# \i /usr/share/postgresql/8.1/contrib/pgcrypto.sql
原文后的评论
在第13个命令中,那个typtype='b'是什么意思?
typtype='b'表示basetype。b==basetype.
PostgreSQL有这么几种数据类型: composite types, domains, and pseudo-types.
http://developer.postgresql.org/pgdocs/postgres/extend-type-system.html
获取第二大/小的值效率问题
如果要查询一个表中某列第二小的值,这样查询要快得多:
代码如下:SELECT m FROM mytable ORDER BY m LIMIT 1 OFFSET 1;
如果m列有索引的话。
COUNT(*)效率问题
在大表上执行count(*)会有比较明显的效率问题
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 列是属性 的文章

 

随机推荐