环境:Ubuntu16.04
安装:
Ubuntu默认集成了pg,可以通过命令行直接安装
以下命令分别安装pg的客户端和服务端 :
$ sudo apt-get install postgresql-client
$ sudo apt-get install postgresql
安装完成后,通过以下命令即可启动pg
$ sudo service postgresql start
相应的,只要将这里的start改为stop和restart,就可以实现服务的停止和重启。
创建数据库
在初次安装完成后,pg默认已经进行了如下的操作:创建了一个名为postgres的数据库用户和一个名为postgres的数据库,同时还创建了一个名为postgres的Linux系统用户。实际上,这里创建的postgres数据库用户拥有超级管理员身份,可以访问我们后面所创建的所有数据库,同时可以进行创建新数据库用户和修改用户密码等操作。
(说明:linux 下的postgresql 这个用户不用管它,默认是没有密码的,也不需要设置密码)
登录控制台:
$ sudo -u postgres psql
这条命令表示Linux用户postgres以超级用户postgres的身份登录了名为postgres的数据库,因为是Ubuntu系统,所以默认这个时候是不需要输入密码的,直接进入了pg的控制台
设置postgres用户密码密码:
postgres=# ALTER USER postgres PASSWORD 'xxxxxxxxxx';
默认密码:postgres
创建数据库:
postgres=# create database mydb;
切换数据库:
postgres=# \c mydb
其他命令参考
\password 设置密码
\q 退出
\h 查看SQL命令的解释,比如\h select
\? 查看psql命令列表
\l 列出所有数据库
\c [database_name] 连接其他数据库
\d 列出当前数据库的所有表格
\d [table_name] 列出某一张表格的结构
\x 对数据做展开操作
\du 列出所有用户
\i 执行sql语句
常用的SQL语句
# 创建新表
CREATE TABLE table_name(name VARCHAR(20), birth DATE);
# 插入数据
INSERT INTO table_name(name, birth) VALUES('欧文', '1994-08-23');
# 查询记录
SELECT * FROM table_name;
# 更新数据
UPDATE table_name set name = '勒夫' WHERE name = '欧文';
# 删除记录
DELETE FROM table_name WHERE name = '欧文' ;
# 添加字段
ALTER TABLE table_name ADD email VARCHAR(40);
# 更改字段类型
ALTER TABLE table_name ALTER COLUMN birth SET NOT NULL;
# 设置字段默认值(注意字符串使用单引号)
ALTER TABLE table_name ALTER COLUMN email SET DEFAULT 'example@example.com';
# 去除字段默认值
ALTER TABLE table_name ALTER email DROP DEFAULT;
# 重命名字段
ALTER TABLE table_name RENAME COLUMN birth TO birthday;
# 删除字段
ALTER TABLE table_name DROP COLUMN email;
# 表重命名
ALTER TABLE table_name RENAME TO backup_table;
# 删除表
DROP TABLE IF EXISTS backup_table;
# 删除库
\c postgres;
DROP DATABASE IF EXISTS hello;
备份和恢复
$ pg_dump --format=t -d db_name -U user_name -h 127.0.0.1 -O -W > dump.sql
$ psql -h 127.0.0.1 -U user_name db_name < dump.sql
以URL形式连接数据库
psql postgresql://postgres:postgres@myhost:5432/mydb
NodeJs 配置postgres 如下:
"postgresserver": "postgres://postgres:postgres@localhost:5432/mydb"
完结~