之前的介绍内容其实有介绍,但是不是很完整,下面把相关的数据准备操作集中在一起,保证后续查询数据的一致性。

注意: 部分数据之前就已经存在,如果存在相同的数据,就不用执行下面的操作。

创建库

CREATE DATABASE shop;

# 查看库列表
shop=# \l
                                           数据库列表
   名称    |  拥有者  | 字元编码 |     校对规则      |       Ctype       |       存取权限
-----------+----------+----------+-------------------+-------------------+-----------------------
 postgres  | niefajun | UTF8     | Chinese_China.936 | Chinese_China.936 |
 shop      | postgres | UTF8     | Chinese_China.936 | Chinese_China.936 |

创建表

# 创建表
create table product(
	product_id char(4) not null,
    product_name varchar(100) not null,
    product_type varchar(32) not null,
    sale_price integer,
    purchase_price integer,
    regist_date date,
    primary key(product_id)
);

# 表添加注释
comment on table product is '商品表';
comment on column product.product_id is '产品id,主键';

# 查看表
shop=# \dt
                    关联列表
 架构模式 |       名称       |  类型  |  拥有者
----------+------------------+--------+----------
 public   | product          | 数据表 | postgres

插入数据

BEGIN TRANSACTION;

INSERT INTO Product VALUES ('0001', 'T恤衫', '衣服',1000, 500, '2009-09-20');
INSERT INTO Product VALUES ('0002', '打孔器', '办公用品',500, 320, '2009-09-11');
INSERT INTO Product VALUES ('0003', '运动T恤', '衣服',4000, 2800, NULL);
INSERT INTO Product VALUES ('0004', '菜刀', '厨房用具',3000, 2800, '2009-09-20');
INSERT INTO Product VALUES ('0005', '高压锅', '厨房用具',6800, 5000, '2009-01-15');
INSERT INTO Product VALUES ('0006', '叉子', '厨房用具',500, NULL, '2009-09-20');
INSERT INTO Product VALUES ('0007', '擦菜板', '厨房用具',880, 790, '2008-04-28');
INSERT INTO Product VALUES ('0008', '圆珠笔', '办公用品',100, NULL,'2009-11-11');

COMMIT;

PostgreSQL相关系列文章,主要参考PostgreSQL官方文档(14)和SQL基础教程(第二版),基础案例借鉴SQL基础教程,非常不错的SQL书籍,可以在图灵社区购买阅读。

参考资料:

  1. SQL基础教程第二版-图灵社区