命令行
\l : 显示数据库 \du : 显示用户列表 \conninfo : 显示现在的连接、数据库、用户名,或者用 【SELECT current_database();】 \c 数据库名 : 切换到某数据库 \d 数据表名 : 显示数据表的结构和数据类型
创建新的用户
CREATE USER 用户名 WITH PASSWORD '密码'; ALTER USER 用户名WITH SUPERUSER CREATEDB CREATEROLE; ALTER ROLE 用户名 SET client_encoding TO 'utf8'; ALTER ROLE 用户名 SET default_transaction_isolation TO 'read committed'; ALTER ROLE 用户名 SET timezone TO 'UTC';
创建新的数据库
CREATE DATABASE 数据库名 OWNER 用户名; GRANT ALL PRIVILEGES ON DATABASE 数据库名TO 用户名;
更改数据库 owner 和 权限主
ALTER DATABASE uncomtrade OWNER TO uncomtrade; GRANT ALL PRIVILEGES ON DATABASE uncomtrade TO uncomtrade;
删除数据库
DROP DATABASE IF EXISTS database_name;
创建新的数据表
CREATE TABLE IF NOT EXISTS comtrade_annual ( column1 datatype(length) column_contraint, column2 datatype(length) column_contraint, column3 datatype(length) column_contraint, table_constraints );
举例如下:
CREATE TABLE IF NOT EXISTS trade_annual ( year SMALLINT NOT NULL, reporter_code VARCHAR ( 10 ) NOT NULL, reporter_name VARCHAR ( 50 ) NOT NULL, partner_code VARCHAR ( 10 ) NOT NULL, partner_name VARCHAR ( 50 ) NOT NULL, hs_code VARCHAR ( 10 ) NOT NULL, hs_desc VARCHAR ( 100 ) NOT NULL, num_item SMALLINT NOT NULL, trade_quantity INT NOT NULL, net_weight real NOT NULL, trade_value real NOT NULL );
在同一个数据库中将一个数据表数据插入到另一个数据表中
INSERT INTO trade_annual_china(year ,trade_flow ,reporter_code ,partner_code ,hs_code ,trade_quantity ,net_weight ,trade_value )
SELECT year ,trade_flow ,reporter_code ,partner_code ,hs_code ,trade_quantity ,net_weight ,trade_value
FROM trade_annual
where not (partner_code = '4' and year = 2002);
上面的例子中,将 trade_annual 中的数据复制到 trade_annual_china 数据表中
将数据表输出成有header的csv文件(psql 命令行中)
\copy trade_annual_china to '/home/scrapy/uncomtrade/uncomtrade_China/trade_annual_china.csv' csv header
上面的命令将 trade_annual_china 数据表输出到 /home/scrapy/uncomtrade/uncomtrade_China/trade_annual_china.csv 文件中,并且带 header,csv格式
|