访问数据库postgresql

本文介绍了如何使用PostgreSQL的交互终端psql进行数据库管理和查询。包括启动psql、执行基本SQL命令、获取帮助以及退出程序的方法。

一旦你创建了数据库,你就可以访问它:

 

 

  • 运行 PostgreSQL 交互的终端程序, 叫 psql, 它允许你交互地输入,编辑,和执行 SQL 命令。

  • 使用我们现有的图形前端工具,比如 PgAccess 或者带 ODBC 支持的办公套件来创建和管理数据库。 这种方法在这份教程中没有介绍。

  • 写一个客户应用,使用多种语言绑定中的一种。 这些可能性在 Part IV 中有更深入的讨论。

你可能需要启动 psql,试验本教程中的例子。 你可以用下面的命令为 mydb 数据库激活它:

$ psql mydb

如果你省略了数据库名字,那么它缺省就是你的用户账号名字。 你已经在前面的小节里知道这个大纲了。

psql 里,你会看到下面的欢迎信息:

Welcome to psql 8.1, 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

mydb=>

最后一行也可能是

mydb=#

这个提示符意味着你是数据库超级用户,最可能出现在你自己安装了 PostgreSQL 的情况下。作为超级用户意味着你不受访问控制的限制。 对于本教程的目的而言,是否超级用户并不重要。

如果你启动 psql 时碰到了问题,那么回到前面的小节。 诊断 createdb 的方法和诊断 psql 的方法很类似, 如果前者能运行那么后者也应该能运行。

psql 打印出的最后一行是提示符,它表示 psql 正听着你说话,这个时候你就可以敲入 SQL 查询到一个 psql 维护的工作区中。试验一下下面的命令:

mydb=> SELECT version();
                            version
----------------------------------------------------------------
 PostgreSQL 8.1 on i586-pc-linux-gnu, compiled by GCC 2.96
(1 row)
mydb=> SELECT current_date;
    date
------------
 2002-08-31
(1 row)

mydb=> SELECT 2 + 2;
 ?column?
----------
        4
(1 row)

 

psql 程序有一些不属于 SQL 命令的内部命令。 它们以反斜杠开头,"\"。 有些这种命令在欢迎信息中列出。比如,你可以用下面的命令获取各种PostgreSQL SQL 命令的帮助语法:

mydb=> \h

 

要退出 psql,键入

mydb=> \q

然后 psql 就会退出并且给你返回到命令行 shell。 (要获取更多有关内部命令的信息,你可以在 psql 提示符上键入 \?。) psql 的完整功能在 Part VI 中有文档。如果 PostgreSQL 安装正确,那么你还可以在操作系统的 shell 提示符上键入 man psql 来阅读该文档。在这份文档里,我们将不会明确使用这些特性,但是你自己可以在合适的时候使用它们。

笔者实际操作如下:

mydb=# select version();
                           version
-------------------------------------------------------------
 PostgreSQL 8.4.2, compiled by Visual C++ build 1400, 32-bit
(1 row)


mydb=# SELECT current_date;
    date
------------
 2010-02-04
(1 row)


mydb=# SELECT 2 + 2;
 ?column?
----------
        4
(1 row)


mydb=# \h
Available help:
  ABORT                            DELETE
  ALTER AGGREGATE                  DISCARD
  ALTER CONVERSION                 DROP AGGREGATE
  ALTER DATABASE                   DROP CAST
  ALTER DOMAIN                     DROP CONVERSION
  ALTER FOREIGN DATA WRAPPER       DROP DATABASE
  ALTER FUNCTION                   DROP DOMAIN
  ALTER GROUP                      DROP FOREIGN DATA WRAPPER
  ALTER INDEX                      DROP FUNCTION
  ALTER LANGUAGE                   DROP GROUP
  ALTER OPERATOR                   DROP INDEX
  ALTER OPERATOR CLASS             DROP LANGUAGE
  ALTER OPERATOR FAMILY            DROP OPERATOR
  ALTER ROLE                       DROP OPERATOR CLASS
  ALTER SCHEMA                     DROP OPERATOR FAMILY
  ALTER SEQUENCE                   DROP OWNED
  ALTER SERVER                     DROP ROLE
  ALTER TABLE                      DROP RULE
  ALTER TABLESPACE                 DROP SCHEMA
  ALTER TEXT SEARCH CONFIGURATION  DROP SEQUENCE
  ALTER TEXT SEARCH DICTIONARY     DROP SERVER
  ALTER TEXT SEARCH PARSER         DROP TABLE
  ALTER TEXT SEARCH TEMPLATE       DROP TABLESPACE
  ALTER TRIGGER                    DROP TEXT SEARCH CONFIGURATION
  ALTER TYPE                       DROP TEXT SEARCH DICTIONARY
  ALTER USER                       DROP TEXT SEARCH PARSER
  ALTER USER MAPPING               DROP TEXT SEARCH TEMPLATE
  ALTER VIEW                       DROP TRIGGER
  ANALYZE                          DROP TYPE
  BEGIN                            DROP USER
  CHECKPOINT                       DROP USER MAPPING
  CLOSE                            DROP VIEW
  CLUSTER                          END
  COMMENT                          EXECUTE
  COMMIT                           EXPLAIN
  COMMIT PREPARED                  FETCH
  COPY                             GRANT
  CREATE AGGREGATE                 INSERT
  CREATE CAST                      LISTEN
  CREATE CONSTRAINT TRIGGER        LOAD
  CREATE CONVERSION                LOCK
  CREATE DATABASE                  MOVE
  CREATE DOMAIN                    NOTIFY
  CREATE FOREIGN DATA WRAPPER      PREPARE
  CREATE FUNCTION                  PREPARE TRANSACTION
  CREATE GROUP                     REASSIGN OWNED
  CREATE INDEX                     REINDEX
  CREATE LANGUAGE                  RELEASE SAVEPOINT
  CREATE OPERATOR                  RESET
  CREATE OPERATOR CLASS            REVOKE
  CREATE OPERATOR FAMILY           ROLLBACK
  CREATE ROLE                      ROLLBACK PREPARED
  CREATE RULE                      ROLLBACK TO SAVEPOINT
  CREATE SCHEMA                    SAVEPOINT
  CREATE SEQUENCE                  SELECT
  CREATE SERVER                    SELECT INTO
  CREATE TABLE                     SET
  CREATE TABLE AS                  SET CONSTRAINTS
  CREATE TABLESPACE                SET ROLE
  CREATE TEXT SEARCH CONFIGURATION SET SESSION AUTHORIZATION
  CREATE TEXT SEARCH DICTIONARY    SET TRANSACTION
  CREATE TEXT SEARCH PARSER        SHOW
  CREATE TEXT SEARCH TEMPLATE      START TRANSACTION
  CREATE TRIGGER                   TABLE
  CREATE TYPE                      TRUNCATE
  CREATE USER                      UNLISTEN
  CREATE USER MAPPING              UPDATE
  CREATE VIEW                      VACUUM
  DEALLOCATE                       VALUES
  DECLARE                          WITH

mydb=# \q

D:\pgsql>

PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据库管理一,主要讲解以下内容:1.     PostgreSQL安装和环境准备2.     PostgreSQL数据查询3.     PostgreSQL 数据过滤4.     PostgreSQL 多表的联接5.     PostgreSQL数据的分组6.     PostgreSQL合集的操作7.   PostgreSQL 合集的分组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值