安装PostgreSQL
sudo pacman -S postgresql
在PostgreSQL可以正确使用之前,数据库集群必须被初始化:
1 |
启动PostgreSQL,(可选),添加 PostgreSQL 到daemons列表里作为守护进程同时启动:
1 |
注意: 在本篇文章中需要以postgres用户运行的命令以[postgres]$
作为前置符号。你可以以root用户执行su - postgres
登陆postgres用户。如果你使用sudo,可以以普通用户执行sudo -i -u postgres
。
创建第一个数据库/用户
如果创建一个与你的 Arch 用户 ($USER) 同名的数据库用户,并允许其访问 PostgreSQL 数据库的 shell,那么在使用PostgreSQL 数据库 shell 的时候无需指定用户登录(这样做会比较方便)。
以 postgres 用户身份, 添加一个新的数据库用户使用 createuser 命令
1 | [postgres]$ createuser --interactive |
以具备读写权限的用户身份,创建一个新的数据库,使用createdb 命令。
从你的 shell (不是 以 postrgres 用户的身份)
1 | $ createdb myDatabaseName |
PostgreSQL 修改密码
1. 修改PostgreSQL数据库默认用户postgres的密码
PostgreSQL数据库创建一个postgres用户作为数据库的管理员,密码随机,所以需要修改密码,方式如下:
步骤一:登录PostgreSQL
1 | sudo` `-u postgres psql |
步骤二:修改登录PostgreSQL密码
1 | ALTER USER postgres WITH PASSWORD ``'postgres'``; |
注:
- 密码postgres要用引号引起来
- 命令最后有分号
步骤三:退出PostgreSQL客户端
1 | \q |
2. 修改linux系统postgres用户的密码
PostgreSQL会创建一个默认的linux用户postgres,修改该用户密码的方法如下:
步骤一:删除用户postgres的密码
1 | sudo` `passwd` `-d postgres |
步骤二:设置用户postgres的密码
1 | sudo` `-u postgres ``passwd |
系统提示输入新的密码
1 | Enter new UNIX password:``Retype new UNIX password:``passwd``: password updated successfully |
PostgreSQL命令
查看数据库
1 | psql -l |
查看数据库版本信息
1 | psql --version |
建立/删除数据库
1 | createdb database |
进入数据库
1 | psql database |
建一个叫cats的表:
1 | test=# create table posts(name varchar(255), content text); |
预览表:
1 | \dt |
查看表的详细信息:
1 | \d tablename |
查询:
1 | komablog=# select * from posts; |
插入数据:
1 | komablog=# insert into posts values('leopard', 90); |
导入sql语句:
1 | vim db.sql |
退出,帮助分别是:\h \q
PostgreSQL插件——pgcli
Quick Start
If you already know how to install python packages, then you can simply do:
1 | pip install -U pgcli |
Usage
1 | pgcli [database_name] |
Examples:
1 | pgcli local_database |
For more details:
1 | pgcli --help |
基础数据类型(常用)
数值型
名字 长度 描述 范围 integer 4 字节 常用的整数 -2147483648 到 +2147483647 real 4 字节 浮点型 6 位十进制数字精度 serial 4 字节 序列型 1 到 2147483647 文字型
名字 描述 char 定长,不足补空白 varchar 变长,有长度限制 text 变长,无长度限制 布尔型
名字 存储格式 描述 boolean 1 字节 true/false 日期型
名字 长度 描述 date 4 字节 年月日 time 8 字节 时分秒 timestamp 8 字节 年月日时分秒 特色型
名字 描述 Array 数组类型可以是任何基本类型或用户定义类型,枚举类型或复合类型。 网络地址型(inet) JSON型 用来存储 JSON数据 XML型 以存储由XML标准定义的格式良好的”文档”