合 PostgreSQL常用基本初级开发SQL
Tags: PGPostgreSQL常用SQL
数据库
创建数据库
PostgreSQL 创建数据库可以用以下三种方式:
- 1、使用 CREATE DATABASE SQL 语句来创建。
- 2、使用 createdb 命令来创建。
- 3、使用 pgAdmin 工具。
CREATE DATABASE 创建数据库
CREATE DATABASE 命令需要在 PostgreSQL 命令窗口来执行,语法格式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | postgres=# \h create database; Command: CREATE DATABASE Description: create a new database Syntax: CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LOCALE [=] locale ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace_name ] [ ALLOW_CONNECTIONS [=] allowconn ] [ CONNECTION LIMIT [=] connlimit ] [ IS_TEMPLATE [=] istemplate ] ] URL: https://www.postgresql.org/docs/13/sql-createdatabase.html |
例如,我们创建一个 lhrpgdb 的数据库:
1 2 3 4 5 6 7 8 9 | postgres=# CREATE DATABASE lhrpgdb; CREATE DATABASE db1 WITH OWNER = lhr ENCODING = 'UTF8' TABLESPACE = ts_test1 CONNECTION LIMIT = -1; |
createdb 命令创建数据库
createdb 是一个 SQL 命令 CREATE DATABASE 的封装。
createdb 命令语法格式如下:
1 | createdb [option...] [dbname [description]] |
参数说明:
dbname:要创建的数据库名。
description:关于新创建的数据库相关的说明。
options:参数可选项,可以是以下值:
序号 | 选项 & 描述 |
---|---|
1 | -D tablespace指定数据库默认表空间。 |
2 | -e将 createdb 生成的命令发送到服务端。 |
3 | -E encoding指定数据库的编码。 |
4 | -l locale指定数据库的语言环境。 |
5 | -T template指定创建此数据库的模板。 |
6 | --help显示 createdb 命令的帮助信息。 |
7 | -h host指定服务器的主机名。 |
8 | -p port指定服务器监听的端口,或者 socket 文件。 |
9 | -U username连接数据库的用户名。 |
10 | -w忽略输入密码。 |
11 | -W连接时强制要求输入密码。 |
接下来我们打开一个命令窗口,进入到 PostgreSQL 的安装目录,并进入到 bin 目录,createdb 命令位于 PostgreSQL安装目录/bin 下,执行创建数据库的命令:
1 2 3 | $ cd /Library/PostgreSQL/11/bin/ $ createdb -h localhost -p 5432 -U postgres lhrpgdb password ****** |
以上命令我们使用了超级用户 postgres 登录到主机地址为 localhost,端口号为 5432 的 PostgreSQL 数据库中并创建 lhrpgdb 数据库。
pgAdmin 工具创建数据库
pgAdmin 工具提供了完整操作数据库的功能:
选择数据库
上一章节我们讲了如何创建数据库,接下来我们来讨论如何去选择我们创建的数据库。
数据库的命令窗口
PostgreSQL 命令窗口中,我们可以命令提示符后面输入 SQL 语句:
1 | postgres=# |
使用 \l 用于查看已经存在的数据库:
1 2 3 4 5 6 7 8 9 10 11 | postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+-------+----------------------- postgres | postgres | UTF8 | C | C | lhrpgdb | postgres | UTF8 | C | C | template0 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) |
接下来我们可以使用 \c + 数据库名 来进入数据库:
1 2 3 4 5 6 7 8 | postgres=# \c lhrpgdb You are now connected to database "lhrpgdb" as user "postgres". lhrpgdb=# lhrpgdb=# select current_user,current_database(),pg_backend_pid(); current_user | current_database | pg_backend_pid --------------+------------------+---------------- postgres | lhrpgdb | 2715 (1 row) |
系统命令行窗口
在系统的命令行查看,我么可以在连接数据库后面添加数据库名来选择数据库:
1 2 3 4 5 6 | $ psql -h localhost -p 5432 -U postgress lhrpgdb Password for user postgress: **** psql (11.3) Type "help" for help. You are now connected to database "lhrpgdb" as user "postgres". lhrpgdb=# |
pgAdmin 工具
pgAdmin 工具更简单了,直接点击数据库选择就好了,还可以查看一些数据库额外的信息:
删除数据库
PostgreSQL 删除数据库可以用以下三种方式:
- 1、使用 DROP DATABASE SQL 语句来删除。
- 2、使用 dropdb 命令来删除。
- 3、使用 pgAdmin 工具。
注意:删除数据库要谨慎操作,一旦删除,所有信息都会消失。
DROP DATABASE 删除数据库
DROP DATABASE 会删除数据库的系统目录项并且删除包含数据的文件目录。
DROP DATABASE 只能由超级管理员或数据库拥有者执行。
DROP DATABASE 命令需要在 PostgreSQL 命令窗口来执行,语法格式如下:
1 | DROP DATABASE [ IF EXISTS ] name |
参数说明:
- IF EXISTS:如果数据库不存在则发出提示信息,而不是错误信息。
- name:要删除的数据库的名称。
例如,我们删除一个 lhrpgdb 的数据库:
1 | postgres=# DROP DATABASE lhrpgdb; |
dropdb 命令删除数据库
dropdb 是 DROP DATABASE 的包装器。
dropdb 用于删除 PostgreSQL 数据库。
dropdb 命令只能由超级管理员或数据库拥有者执行。
dropdb 命令语法格式如下:
1 | dropdb [connection-option...] [option...] dbname |
参数说明:
dbname:要删除的数据库名。
options:参数可选项,可以是以下值: