码迷,mamicode.com
首页 > 数据库 > 详细

PostgreSQL-用户、库、模式、表

时间:2015-09-21 17:39:49      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

  由于不了解postgresql的psql工具,安装完数据库后就直接用pgadmin或navicat来连接操作,在确认初始化后的库中默认有些什么东西后竟然一直无处下手,在还没有了解pg大致体系的情况下搞得一头雾水,先不说数据库角色(role)的那个既可以是用户又可以是组的概念,总是苦于无法查询当前操作的是哪个库哪个表,哪个模式的状态,甚至连表结构都不知道怎么看。然后还是再花时间去学pg的基本要素,主要还是因为mysql的代入关系,两者有相似的地方,但在管理体系上是不一样的。最终还是先回归到服务器端上,直接用psql来操作先,了解一下psql定义好的元命令,方便操作学习了解。

建新角色和库

postgres=# create role chen createdb createrole login password 111111;
CREATE ROLE

postgres=# create database yun owner chen;
CREATE DATABASE

切换角色,切换后提示符也从#变成了>,因为不是superuser

postgres=# \c - chen;
SSL连接 (加密:DHE-RSA-AES256-SHA,二进制位: 256)
您现在已经连线到数据库 "postgres",用户 "chen".

postgres=>                      

切换库

postgres=> \c yun;
SSL连接 (加密:DHE-RSA-AES256-SHA,二进制位: 256)
您现在已经连线到数据库 "yun",用户 "chen".

yun=>

新建模式

yun=> create schema yun;
CREATE SCHEMA

这里有一个新建表若不指定模式则默认放在哪一个模式的问题,不同模式下不同的表可以重名,\d 命令也是从这里面的模式名来获取有哪些表

yun=>show search_path;
  search_path   
----------------
 "$user",public
yun=> set search_path to yun,"$user",public; SET
yun=> show search_path; search_path ---------------------- yun, "$user", public (1 行记录)

 set好后,新表就会自动归在yun模式里,建个新表

yun=> create table website(
yun(> fid int primary key,
yun(> name varchar(255) not null,
yun(> url varchar(255) not null,
yun(> style smallint not null)
yun-> ;

 再用已经提前从mysql导出好的文件导入数据,copy命令需要superuser,但是psql提供了另外的方法来导数据

yun=> \copy website from /var/lib/mysql/yun/src_data/allwebsite.dat delimiter ,;

 修改一下,新加一个字段

yun=> alter table website add column tm_update timestamp(0) without time zone not null default now();
ALTER TABLE

 

PostgreSQL-用户、库、模式、表

标签:

原文地址:http://www.cnblogs.com/right-dress/p/4826610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!