PostGIS笔记:PostgreSQL中表、键和索引的基础操作

创建、查看与删除表

在数据库中创建一个表,使用如下代码:

sql 复制代码
create table streets (id serial not null primary key, name varchar(50));

这里的表名是streets,id是主键所以非空,采用serial数据类型,这个数据类型会自动编号填充上整数;另一个字段是name,类型为字符,长度50。如果要查看表的架构和表的内容,可以使用如下代码:

sql 复制代码
#查看架构
\d streets
#查看内容
SELECT * FROM streets;

删除表使用drop命令。

sql 复制代码
DROP TABLE 表名;

创建 键和索引

在创建一个shreets表后,我们还需要创建一个people 表。people 表包括ID、电话号码、家庭住址、姓名等字段,这个表中的家庭住址(street)依赖于streets 表,因此在 创建people表时需要添加外键约束。

sql 复制代码
CREATE TABLE people (id serial not null primary key,
	name varchar(50),
	house_no int not null,
	street_id int references streets(id) not null,
	phone_no varchar null);

\d people查看表结构,可以看到存在外键约束。

如果是先创建了people 表,那么可以通过alter table 方式添加外键约束。

sql 复制代码
ALTER TABLE people ADD CONSTRAINT people_streets_fk FOREIGN KEY (street_id) REFERENCES streets(id);

如果需要修改约束,可以使用先删除、后新建的方式进行。

sql 复制代码
ALTER TABLE 表名 DROP CONSTRAINT 约束名;

在上面的图中,可以看到已经存在一个主键btree索引,也可以在name属性新建索引。

sql 复制代码
CREATE INDEX people_name_idx ON  people(name);
相关推荐
隔窗听雨眠3 分钟前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle
青山是哪个青山13 分钟前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
刀客Doc18 分钟前
即时零售不只是多一个渠道,品牌开始重做终端生意
大数据·数据库
就叫飞六吧42 分钟前
防抖、幂等、唯一约束三件套 ;
数据库
神奇霸王龙1 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
鲸采云SRM采购管理系统1 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
cfm_29141 小时前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
Full Stack Developme1 小时前
SQL 注入 的历史及设计工作原理
数据库·sql
Tisfy1 小时前
Codex:通过编辑配置文件添加带Bearer的自定义MCP
数据库·大模型·agent·codex·mcp
哈__2 小时前
面向AI智能体的数据库专业技能包:将DBA工程经验封装为可调用能力
数据库·人工智能·dba