⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

PG表继承与数据分区

理解PostgreSQL表继承机制及其在数据建模中的应用 · 难度:入门 · +15XP

表继承概念

PostgreSQL支持表继承,子表继承父表的所有列,查询父表时可以同时返回所有子表的数据。

创建继承表

-- 创建父表
CREATE TABLE person (
    id SERIAL PRIMARY KEY,
    name TEXT,
    age INT
);

-- 创建子表 CREATE TABLE employee ( salary NUMERIC, department TEXT ) INHERITS (person);

CREATE TABLE student ( grade INT, school TEXT ) INHERITS (person);

插入与查询

-- 插入数据
INSERT INTO person (name, age) VALUES ('张三', 30);
INSERT INTO employee (name, age, salary, department) VALUES ('李四', 28, 50000, '技术部');
INSERT INTO student (name, age, grade, school) VALUES ('王五', 18, 12, '第一中学');

-- 查询父表返回所有数据 SELECT * FROM person;

-- 只查询子表 SELECT * FROM ONLY person; -- 只返回父表记录

继承特性

特性说明
列继承子表自动拥有父表所有列
约束继承CHECK约束会被继承
多继承子表可继承多个父表
查询包含查询父表包含所有子表数据

与分区表区别

继承更灵活(可添加额外列),但没有分区裁剪优化。分区表性能更好。

练习提示

创建一个车辆父表和汽车、卡车子表,插入数据并测试查询包含行为。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 131 篇
0 完成
🔥 0