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);
相关推荐
2401_8877245039 分钟前
CSS如何设置文字溢出显示省略号_利用text-overflowellipsis
jvm·数据库·python
m0_7478545241 分钟前
golang如何实现应用启动耗时分析_golang应用启动耗时分析实现思路
jvm·数据库·python
雪碧聊技术43 分钟前
下午题_试题二
数据库
雾岛听蓝44 分钟前
Qt操作指南:窗口组成与菜单栏
开发语言·经验分享·笔记·qt
解救女汉子1 小时前
如何截断SQL小数位数_使用TRUNCATE函数控制精度
jvm·数据库·python
2301_803875611 小时前
如何用 objectStore.get 根据主键 ID 获取数据库单条数据
jvm·数据库·python
weixin_458580121 小时前
如何修改AWR保留时间_将默认8天保留期延长至30天的设置
jvm·数据库·python
qq_654366982 小时前
C#怎么实现OAuth2.0授权_C#如何对接第三方快捷登录【核心】
jvm·数据库·python
justjinji2 小时前
如何用 CSS 变量配合 JS setProperty 实现动态换肤功能
jvm·数据库·python
2301_803875612 小时前
C#怎么使用TopLevel顶级语句 C#顶级语句怎么写如何省略Main方法简化控制台程序【语法】
jvm·数据库·python