PostgreSQL入门
常用命令
# 远程进入到psql命令行
psql -U pg_user -d pg_db -h pg_host -p 5432
#启动数据库
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
#日志路径
cat /usr/local/var/postgres/server.log
#查看数据库状态
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log status
#停止
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log stop -s -m fast
#查看数据库进程
ps -ef |grep postgres 或 ps auxwww | grep postgres
#创建数据库用户
createuser test_user -P
#创建数据库/密码
createdb db_name -O db_pwd -E UTF8 -e
#远程进入到psql命令行
psql -U pg_user -d pg_db -h pg_host -p 5432
数据库命令相关操作
\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c database_name:连接其他数据库。
\d:列出当前数据库的所有表格。
\d table_name:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。
数据库操作
# 创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入数据
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
# 选择记录
SELECT * FROM user_tbl;
# 更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';
# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新结构
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
# 更名栏位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
# 删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
# 表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 删除表格
DROP TABLE IF EXISTS backup_tbl;
对数组类型的支持
注意:
数组类型,索引从 1 开始
# 创建用户信息表
create table user_info (
id int4 PRIMARY KEY,
name VARCHAR(20),
hobbies int4[],
idols VARCHAR[][]
)
# 插入数据
insert into user_info
values(1, '张三', ARRAY[1], ARRAY[['Kobe', 'leBron'], ['Taylor', 'Bibber']]);