PostgreSQL入门
简介
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES, 版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)
支持大部分SQL标准并且提供了许多现代特性
- 复杂查询
- 外键
- 触发器
- 可更新视图
- 事务完整性
- 多版本并发控制
同时也有许多扩展方法
- 数据类型
- 函数
- 操作符
- 聚集函数
- 索引方法
- 过程语言
并且,是开源免费的数据库。同mysql 一样都是采用SQL语句进行查询等操作。
约定
下面的约定被用于命令的大纲:方括弧([
和]
)表示可选的部分(在 Tcl 命令里,使用的是问号 (?
),就像通常的 Tcl 一样)。 花括弧({
和}
)和竖线(|
)表示你必须选取一个候选。 点(...
)表示它前面的元素可以被重复。
如果能提高清晰度,那么 SQL 命令前面会放上提示符=>
, 而 shell 命令前面会放上提示符 $
。不过,提示符通常不被显示。
下载
我用的mac os系统,用 brew 命令行方式进行下载
brew install postgresql
下载时出现 包错误问题,由于我最近更新了 mac 系统版本导致的。简单方案就是一个个下载第三方包就行
Error: No such file or directory @ rb_sysopen - /Users/yuxihan/Library/Caches/Homebrew/downloads/7f1701b7e27fc959d2584e1dc5e9fc5e795840a12f34b0b6d96fdaaf23cdd073--openssl@1.1-1.1.1q.arm64_monterey.bottle.tar.gz
把第三方包下载完了,就再执行一次 下载命令即可
等待运行完后,就安装在了如下目录
数据库配置
配置系统环境变量和编译器环境变量
初始化数据库
initdb postgres
启动和关闭****postgresql****
- 设置成开机自启动
ln -sfv /opt/homebrew/opt/postgresql@10/*.plist ~/Library/LaunchAgents
- 启动 PostgreSQL
pg_ctl -D /opt/homebrew/var/postgresql@10 -l /opt/homebrew/var/postgresql@10/server.log start
- 关闭 PostgreSQL
pg_ctl -D /opt/homebrew/var/postgresql@10 stop -s -m fast
创建数据库和账户
mac安装PostgreSQL后不会创建用户名数据库,执行命令:
createdb
如果不执行 createdb,会报错:psql: error: could not connect to server: FATAL: database “用户名” does not exist
然后登录PostgreSQL控制台:
yuxihan@yuxihandeMacBook-Pro postgresql@10 % psql
psql (10.22)
Type "help" for help.
yuxihan=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+---------+----------+---------+-------+---------------------
postgres | yuxihan | UTF8 | C | C |
template0 | yuxihan | UTF8 | C | C | =c/yuxihan +
| | | | | yuxihan=CTc/yuxihan
template1 | yuxihan | UTF8 | C | C | =c/yuxihan +
| | | | | yuxihan=CTc/yuxihan
yuxihan | yuxihan | UTF8 | C | C |
(4 rows)
yuxihan=# /q # 退出
- 常用命令
\password:设置当前登录用户的密码
\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。
\password [user]: 修改用户密码
\q:退出