发表时间:2010-02-06
最后修改:2010-06-28
声明:本PostgreSQL系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载
继承有用,但没有集成唯一约束或者外键。
以student(学生)和student_union_manager(学生会干部)为例
创建学生会干部数据表继承自student。
mydb=# create table student_union_manager(
mydb(# department varchar(20),
mydb(# excellences varchar(200),
mydb(# duty varchar(100)
mydb(# ) inherits(student);
CREATE TABLE
增加数据
mydb=# insert into student_union_manager values('王五',25,3,'man','体育部','组织
能力,跳高','组织日常体育活动,副部长');
INSERT 0 1
mydb=# insert into student_union_manager values('李白',23,2,'man','体育部','程序
设计,协调能力强,唱歌','组织日常团活动,部长');
INSERT 0 1
mydb=# insert into student_union_manager values('李国',24,1,'woman','宣传部','组
织能力','进行宣传,副部长');
INSERT 0 1
显示学生会干部所有数据
mydb=# select * from student_union_manager
mydb-# ;
name | age | city | sex | department | excellences |
duty
------+-----+------+-------+------------+----------------------------+----------
---------------
王五 | 25 | 3 | man | 体育部 | 组织能力,跳高 | 组织日常
体育活动,副部
李白 | 23 | 2 | man | 体育部 | 程序设计,协调能力强,唱歌 | 组织日常
团活动,部
李国 | 24 | 1 | woman | 宣传部 | 组织能力 | 进行宣传,
副部长
(3 rows)
显示所有学生及其干部
mydb=# select * from student;
name | age | city | sex
------------+-----+------+-------
艾丝凡 | 18 | 3 |
萨芬 | 19 | 3 |
未来 | 20 | 2 | man
干哈 | 18 | 2 | man
deepfuture | 20 | 1 | woman
张三 | 21 | 1 | woman
王五 | 25 | 3 | man
李白 | 23 | 2 | man
李国 | 24 | 1 | woman
(9 rows)
仅显示学生student
mydb=# select * from only student
mydb-# ;
name | age | city | sex
------------+-----+------+-------
艾丝凡 | 18 | 3 |
萨芬 | 19 | 3 |
未来 | 20 | 2 | man
干哈 | 18 | 2 | man
deepfuture | 20 | 1 | woman
张三 | 21 | 1 | woman
(6 rows)
mydb=#