- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章15个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参数来限制结果的数量,就像这样:
。
1.relname - 关系名/表名 2.relpages - 关系页数(默认情况下一个页大小是8kb) 3.pg_class - 系统表, 维护着所有relations的详细信息 4.limit 1 - 限制返回结果只显示一行 。
2. 如何计算postgreSQL数据库所占用的硬盘大小? pg_database_size 这个方法是专门用来查询数据库大小的,它返回的结果单位是字节(bytes)。
如果你想要让结果更直观一点,那就使用**pg_size_pretty**方法,它可以把字节数转换成更友好易读的格式.
。
3. 如何计算postgreSQL表所占用的硬盘大小? 下面这个命令查出来的表大小是包含索引和toasted data的,如果你对除去索引外仅仅是表占的大小感兴趣,可以 使用后面提供的那个命令.
如何查询不含索引的postgreSQL表的大小?
。
使用**pg_relation_size**而不是**pg_total_relation_size**方法.
。
4. 如何查看postgreSQL表的索引? 。
让我们看下面这个例子,注意如果你的表有索引的话,你会在命令输出内容的后面那部分找到一个标题 Indexes ,在这个例子中,pg_attribut表有两个btree类型的索引,默认情况下postgreSQL使用的索引类型都 是btree,因为它适用于绝大多数情况.
。
5. 如何创建一个指定类型的索引? 默认情况下的索引都是btree类型的,但是你可以用下面的方法来指定新索引的类型.
Syntax: CREATE INDEX name ON table USING index_type (column),
。
# CREATE INDEX test_index ON numbers using hash (num),
。
6. 如何在postgreSQL中使用事务? 如何开始一个事务?
如何提交或回滚一个事务?
。
只有当你调用COMMIT命令后,你在BEGIN命令后所做的所有操作才会真正的被提交到postgreSQL数据库。另外你还 可以使用ROLLBACK命令来回滚事务中做的所有操作.
。
7. 如何查看postgreSQL数据库对某个SQL查询的执行计划? 。
8. 如何通过在服务端执行查询来显示执行计划? 下面这个命令会在服务器端执行查询,但是并不会把查询结果给用户,而是返回它实际的执行计划.
9. 怎么生成一个序列的数字并把它们插入到一个表中? 下面这个命令将会生成1到1000这一千个数字并插入到numbers表中.
。
10. 如何统计postgreSQL表里面的行数? 这个命令可以查询出表里所有记录的条数.
这个命令会查询出表中指定列的值不为空的所有行数. 。
这个命令会查询出表中按制定列的值去重后的总行数.
。
11. 如何查询表中某列**第二大**的值? 查询某列最大的值 。
查询某列中第二大的值 。
。
12. 如何查询表中某列**第二小**的值? 查询某列最小的值 。
查询某列第二小的值 。
。
13. 如何列出postgreSQL数据库中基本的数据类型? 下面截取了部分内容,这个命令可以展示可用的数据类型和它们所占用的字节数.
。
1.typname - 类型的名称 2.typlen - 类型的大小 。
14. 如何把某一次查询的结果保存为一个文件? 。
上面这个查询的结果将会被保存到到"output_file"文件中。当重定向被激活后,之后的所有查询都不再会把结果 打印在屏幕上了。如果要再次打开屏幕输出,需要再执行一次不带任何参数的 o 命令.
。
15. 存储加密后的密码 PostgreSQL数据库可以使用下面的crypt命令来加密数据。这可以用来方便的用来保存你的用户名和密码.
PostgreSQL crypt方法可能存在的问题:
。
crypt在你的环境下可能会用不了,并提供下面这个报错信息.
解决方法:
。
为了解决这个问题,你需要安装 postgresql-contrib-版本 这个包,然后在psql中执行下面这个命令.
。
原文后的评论 。
在第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 。
获取第二大/小的值效率问题 。
如果要查询一个表中某列第二小的值,这样查询要快得多:
如果m列有索引的话.
。
COUNT(*)效率问题 。
在大表上执行count(*)会有比较明显的效率问题 。
最后此篇关于15个postgresql数据库实用命令分享的文章就讲到这里了,如果你想了解更多关于15个postgresql数据库实用命令分享的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我的问题是如何在 python 中创建一个简单的数据库。我的例子是: User = { 'Name' : {'Firstname', 'Lastname'}, 'Address' : {'Street
我需要创建一个与远程数据库链接的应用程序! mysql 是最好的解决方案吗? Sqlite 是唯一的本地解决方案吗? 我使用下面的方法,我想知道它是否是最好的方法! NSString *evento
给定两台 MySQL 服务器,一台本地,一台远程。两者都有一个包含表 bohica 的数据库 foobar。本地服务器定义了用户 'myadmin'@'%' 和 'myadmin'@'localhos
我有以下灵活的搜索查询 Select {vt:code},{vt:productcode},{vw:code},{vw:productcode} from {abcd AS vt JOIN wxyz
好吧,我的电脑开始运行有点缓慢,所以我重置了 Windows,保留了我的文件。因为我的大脑还没有打开,所以我忘记事先备份我的 MySQL 数据库。我仍然拥有所有原始文件,因此我实际上仍然拥有数据库,但
如何将我的 Access 数据库 (.accdb) 转换为 SQLite 数据库 (.sqlite)? 请,任何帮助将不胜感激。 最佳答案 1)如果要转换 db 的结构,则应使用任何 DB 建模工具:
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
我想在相同的 phonegap 应用程序中使用 android 数据库。 更多说明: 我创建了 phonegap 应用程序,但 phonegap 应用程序不支持服务,所以我们已经在 java 中为 a
Time Tracker function clock() { var mytime = new Date(); var seconds
我需要在现有项目上实现一些事件的显示。我无法更改数据库结构。 在我的 Controller 中,我(从 ajax 请求)传递了一个时间戳,并且我需要显示之前的 8 个事件。因此,如果时间戳是(转换后)
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
我们将 SQL Server 从 Azure VM 迁移到 Azure SQL 数据库。 Azure VM 为 DS2_V2、2 核、7GB RAM、最大 6400 IOPS Azure SQL 数据
我正在开发一个使用 MongoDB 数据库的程序,但我想问在通过 Java 执行 SQL 时是否可以使用内部数据库进行测试,例如 H2? 最佳答案 你可以尝试使用Testcontainers Test
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 此问题似乎与 a specific programming problem, a sof
我正在尝试使用 MSI 身份验证(无需用户名和密码)从 Azure 机器学习服务连接 Azure SQL 数据库。 我正在尝试在 Azure 机器学习服务上建立机器学习模型,目的是我需要数据,这就是我
我在我的 MySQL 数据库中使用这个查询来查找 my_column 不为空的所有行: SELECT * FROM my_table WHERE my_column != ""; 不幸的是,许多行在
我有那个基地:http://sqlfiddle.com/#!2/e5a24/2这是 WordPress 默认模式的简写。我已经删除了该示例不需要的字段。 如您所见,我的结果是“类别 1”的两倍。我喜欢
我有一张这样的 table : mysql> select * from users; +--------+----------+------------+-----------+ | userid
我有表: CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL
我是一名优秀的程序员,十分优秀!