Debian下启动postgresql服务
/usr/lib/postgresql/8.4/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
登录数据库
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
使用homebrew安装后使用下面用户登录
psql postgres
创建数据库用户dbuser
CREATE USER dbuser WITH PASSWORD 'password';
在shell命令行下,直接创建数据库
sudo -u postgres createdb -O dbuser exampledb
创建用户数据库
CREATE DATABASE exampledb OWNER dbuser;
删除数据库
DROP DATABASE dbname;
授权
GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;
备份数据库
备份单独数据库: pg_dump -U user_name -h remote_host -p remote_port name_of_database > name_of_backup_file
恢复备份的数据库: psql empty_database < backup_file
格式化输出查询结果, 相当于mysql的\G
\x on
\x auto
\x off
其它控制命令
- \h:查看SQL命令的解释,比如\h select。
- ?:查看psql命令列表。
- \l:列出所有数据库。
- \c [database_name]:连接其他数据库。
- \d:列出当前数据库的所有表格。
- \d [table_name]:列出某一张表格的结构。
- \du:列出所有用户。
- \e:打开文本编辑器。
- \conninfo:列出当前数据库和连接的信息。
数据库操作
创建新表
CREATE TABLE usertbl(name VARCHAR(20), signupdate DATE);
插入数据
INSERT INTO usertbl(name, signupdate) 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 usertbl ALTER COLUMN signupdate SET NOT NULL;
更名栏位
ALTER TABLE usertbl RENAME COLUMN signupdate TO signup;
删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
表格更名
ALTER TABLE usertbl RENAME TO backuptbl;
删除表格
DROP TABLE IF EXISTS backup_tbl;