博客
关于我
PostgreSQL学习总结(2)—— PostgreSQL 语法
阅读量:795 次
发布时间:2023-03-03

本文共 3659 字,大约阅读时间需要 12 分钟。

PostgreSQL 是一个强大的开源数据库系统,它支持丰富的 SQL 语法和多种数据库操作。以下是对 PostgreSQL 命令和 SQL 语法的详细说明,帮助您更好地理解和使用它。

PostgreSQL 命令

PostgreSQL 提供了许多命令用于数据库管理和数据操作。以下是一些常用的命令:

事务控制

  • ABORT: 退出当前事务。
    ABORT [ WORK | TRANSACTION ]
  • BEGIN: 开始一个事务。
    BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
  • COMMIT: 提交当前事务。
    COMMIT [ WORK | TRANSACTION ]
  • ROLLBACK: 退出当前事务。
    ROLLBACK [ WORK | TRANSACTION ]
  • SAVEPOINT: 在当前事务中定义一个新的保存点。
    SAVEPOINT savepoint_name

数据库操作

  • CREATE DATABASE: 创建新数据库。
    CREATE DATABASE name [ WITH [ OWNER [=] db_owner ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ TABLESPACE [=] tablespace ] ]
  • ALTER DATABASE: 修改数据库属性。
    ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }ALTER DATABASE name RESET parameterALTER DATABASE name RENAME TO new_nameALTER DATABASE name OWNER TO new_owner
  • DROP DATABASE: 删除数据库。
    DROP DATABASE name

表操作

  • CREATE TABLE: 定义一个新表。

    CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( { column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ] | table_constraint | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] } [, ... ])[ INHERITS ( parent_table [, ... ] ) ][ WITH OIDS | WITHOUT OIDS ][ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ][ TABLESPACE tablespace ]
  • ALTER TABLE: 修改表的定义。

    ALTER TABLE [ ONLY ] name [ * ]action [, ... ]ALTER TABLE [ ONLY ] name [ * ]RENAME [ COLUMN ] column TO new_columnALTER TABLE nameRENAME TO new_name

    其中 action 可以是以下选项之一:

    ADD [ COLUMN ] column_type [ column_constraint [ ... ] ]DROP [ COLUMN ] column [ RESTRICT | CASCADE ]ALTER [ COLUMN ] column TYPE type [ USING expression ]ALTER [ COLUMN ] column SET DEFAULT expressionALTER [ COLUMN ] column DROP DEFAULTALTER [ COLUMN ] column { SET | DROP } NOT NULLALTER [ COLUMN ] column SET STATISTICS integerALTER [ COLUMN ] column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }ADD table_constraintDROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]CLUSTER ON index_nameSET WITHOUT CLUSTERSET WITHOUT OIDSOWNER TO new_ownerSET TABLESPACE tablespace_name
  • DELETE: 删除表中的行。

    DELETE FROM [ ONLY ] table [ WHERE condition ]
  • INSERT: 插入新行数据。

    INSERT INTO table [ ( column [, ...] ) ]{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | query }
  • UPDATE: 更新表中的行。

    UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...][ FROM from_list ][ WHERE condition ]

视图和索引

  • CREATE VIEW: 定义一个视图。
    CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query
  • CREATE INDEX: 定义一个索引。
    CREATE [ UNIQUE ] INDEX name ON table [ USING method ]( { column | ( expression ) } [ opclass ] [, ...] )[ TABLESPACE tablespace ][ WHERE predicate ]

SQL 语句

SQL 语句是数据库查询语言的核心。以下是 SELECT 语句的示例:

SELECT id, name FROM runoob

SELECT 语句详解

  • 基本语法
    SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]* | expression [ AS output_name ] [, ...][ FROM from_item [, ...] ][ WHERE condition ][ GROUP BY expression [, ...] ][ HAVING condition [, ...] ][ { UNION | INTERSECT | EXCEPT } [ ALL ] select ][ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ][ LIMIT { count | ALL } ][ OFFSET start ][ FOR UPDATE [ OF table_name [, ...] ] ]
  • from_item 可以是以下选项之一:
    [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]

PostgreSQL 的优势

PostgreSQL 拥有许多独特的特性,包括:

  • ACID 支持:确保数据一致性。
  • 事务管理:支持复杂的事务和回滚。
  • 高可用性:支持主从复制和负载均衡。
  • 文档存储:支持文档类型和 JSON 数据。
  • 扩展性:支持多种存储引擎和优化扩展。

常见问题

  • 如何连接 PostgreSQL 数据库?

    • Linux:使用 sudo -i -u postgres 进入 PostgreSQL 用户。
    • Windows:找到安装目录下的 psql 工具。
    • MacOS:搜索 psql 并打开。
  • 如何查看 SQL 语句的语法?

    • 使用 \help 命令查看帮助。
    postgres=# \help SELECT
  • 如何优化数据库性能?

    • 使用 EXPLAIN 命令分析查询。
    EXPLAIN [ ANALYZE ] [ VERBOSE ] statement
    • 定期执行 VACUUM 操作清理空间。
  • 如何处理事务?

    • 使用 BEGINCOMMITROLLBACKSAVEPOINT 命令管理事务。
  • 通过以上命令和语法,您可以高效地管理和操作 PostgreSQL 数据库。

    转载地址:http://asxfk.baihongyu.com/

    你可能感兴趣的文章
    POSIX标准和XSI扩展
    查看>>
    post install error,please remove node_moules before retry
    查看>>
    postcss-pxtorem 参数之selectorBlackList、exclude的用法
    查看>>
    Postek博思得标签打印机更换电脑,打印出来标签空白
    查看>>
    postfix+ dovecot搭建邮件服务器
    查看>>
    postfix在邮件服务器中的使用
    查看>>
    PostGIS 3.1.2软件安装详细教程(地图工具篇.8)
    查看>>
    PostGIS中获取所有EPSG的编码以及对应Proj4字符串
    查看>>
    SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)
    查看>>
    PostGIS在Windows上的下载与安装
    查看>>
    Qt开发——网络编程之UDP客户端
    查看>>
    postgis数据库优化_postgresql 性能优化
    查看>>
    postgis求面积、交集等相关函数
    查看>>
    postgis相关函数
    查看>>
    Postgres Docker版本安装mysql_fdw 插件
    查看>>
    Postgres invalid command \N数据恢复处理
    查看>>
    Postgres like 模糊查询匹配集合
    查看>>
    Postgres 自定义函数内实现 in 操作符的递归查询
    查看>>
    Postgres 返回当前时间前后指定天数的集合
    查看>>
    postgres--vacuum
    查看>>