当前位置: 首页 > news >正文

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

创建、查看与删除表

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

create table streets (id serial not null primary key, name varchar(50));

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

#查看架构
\d streets
#查看内容
SELECT * FROM streets;

删除表使用drop命令。

DROP TABLE 表名;

创建 键和索引

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

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 方式添加外键约束。

ALTER TABLE people ADD CONSTRAINT people_streets_fk FOREIGN KEY (street_id) REFERENCES streets(id);

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

ALTER TABLE 表名 DROP CONSTRAINT 约束名;

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

CREATE INDEX people_name_idx ON  people(name);
http://www.lryc.cn/news/528049.html

相关文章:

  • 蓝桥杯python语言基础(3)——循环结构
  • 微服务网关鉴权之sa-token
  • 23【进制的理解】
  • jemalloc 5.3.0的tsd模块的源码分析
  • 【Convex Optimization Stanford】Lec3 Function
  • 深入 Rollup:从入门到精通(三)Rollup CLI命令行实战
  • wangEditor富文本编辑器,Laravel上传图片配置和使用
  • chrome源码剖析—进程通信
  • JJJ:linux时间子系统相关术语
  • 0 基础学运维:解锁 K8s 云计算运维工程师成长密码
  • 大一计算机的自学总结:位运算的应用及位图
  • 计算机毕业设计Django+Tensorflow音乐推荐系统 机器学习 深度学习 音乐可视化 音乐爬虫 知识图谱 混合神经网络推荐算法 大数据毕设
  • AI 图片涌入百度图库
  • 可爱狗狗的404动画页面HTML源码
  • 【微服务与分布式实践】探索 Dubbo
  • OpenCSG月度更新2025.1
  • C++封装红黑树实现mymap和myset和模拟实现详解
  • 二次封装的方法
  • 消息队列篇--通信协议篇--网络通信模型(OSI7层参考模型,TCP/IP分层模型)
  • Python实现U盘数据自动拷贝
  • 汇编的使用总结
  • DeepSeek理解概率的能力
  • AI 浪潮席卷中国年,开启科技新春新纪元
  • AI时代的网络安全:传统技术的落寞与新机遇
  • 可以称之为“yyds”的物联网开源框架有哪几个?
  • 线程局部存储tls的原理和使用
  • RK3588平台开发系列讲解(ARM篇)ARM64底层中断处理
  • CAN总线
  • qwen2.5-vl:阿里开源超强多模态大模型(包含使用方法、微调方法介绍)
  • python实现dbscan