首页 > 数据库 >postgresql 基本语法

postgresql 基本语法

时间:2024-06-04 14:12:34浏览次数:19  
标签:基本 postgresql name -- id 语法 pgccc table alter

模式

-- 创建模式
create schema myschema;

-- 设置当前模式
set search_path to myschema;

-- 查看当前数据库所有模式
select * from information_schema.schemata;

-- 删除模式
drop schema myschema;

-- 删除模式以及模式下的所有表
drop schema myschema cascade;

查询

-- 创建测试数据
create table pgccc(id int, name varchar(10));
insert into pgccc values (1, 'x');
insert into pgccc values (2, 'john');

-- with 语句
testdb=# with test as (select * from pgccc) select * from test where name = 'x';
 id | name
----+------
  1 | x
(1 row)

-- 递归查询
testdb=# with recursive test(x) as (select 2 union select id from pgccc) select sum(x) from test;
 sum
-----
   3
(1 row)

索引

-- 创建单列索引
create index idx_name on pgccc (name);

-- 创建组合索引
create index idx_id_name on pgccc (id, name);

-- 创建唯一索引
create unique index idx_unique_name on pgccc (name);

-- 查看索引
testdb=# select * from pg_indexes where tablename = 'pgccc';
 schemaname | tablename | indexname | tablespace |                          indexdef
------------+-----------+-----------+------------+------------------------------------------------------------
 myschema   | pgccc     | idx_name  |            | CREATE INDEX idx_name ON myschema.pgccc USING btree (name)
(1 row)


-- 删除索引
drop index idx_name;

表结构修改

-- 创建表
create table t1 (id int);

-- 添加列
alter table t1 add column name varchar(20);

-- 删除列
alter table t1 drop column name;

-- 修改列的数据类型
alter table t1 alter column id type int4;

-- 设置列非空
alter table t1 add name varchar(20);
alter table t1 alter name set not null;

-- 添加唯一索引
alter table t1 add constraint unique_id unique (id);

-- 给列设置检查
-- 注意在 check 中,涉及到 NULL 值的处理被视为 TRUE
alter table t1 add age int2;
alter table t1 add constraint age_check check (age > 0);

-- 添加主键
alter table t1 add constraint primarykey_id primary key (id);

-- 删除主键
alter table t1 drop constraint primarykey_id;

删除表

-- 清空数据但保留结构,立即释放空间
truncate table pgccc;

-- 删除表和数据,立即释放空间
drop table pgccc;

-- 删除数据,不会降低高水位,不会释放空间
delete from table pgccc;


--------------------------------------------------------------
-- 释放演示
--------------------------------------------------------------

-- 查看表大小
testdb=# select pg_size_pretty(pg_relation_size('pgccc'));
 pg_size_pretty
----------------
 8192 bytes
(1 row)

-- delete 删除数据
testdb=# delete from pgccc ;
DELETE 3

-- 再次查看表大小,空间未释放
testdb=# select pg_size_pretty(pg_relation_size('pgccc'));
 pg_size_pretty
----------------
 8192 bytes
(1 row)

-- truncate 删除数据
truncate table pgccc;

-- 再次查看表大小,已释放
testdb=# select pg_size_pretty(pg_relation_size('pgccc'));
 pg_size_pretty
----------------
 0 bytes
(1 row)

标签:基本,postgresql,name,--,id,语法,pgccc,table,alter
From: https://www.cnblogs.com/kingron/p/18230647

相关文章

  • postgresql fdw 常用操作
    fdw--安装外部服务扩展createextensionpostgres_fdw;--创建外部服务createserverpostgres_serverforeigndatawrapperpostgres_fdwoptions(host'192.168.10.188',port'1521',dbname'testdb');--修改外部服务器配置--主机、端口和database这几项连接设......
  • PostgreSQL的视图pg_namespace
    PostgreSQL的视图pg_namespace基础信息OS版本:RedHatEnterpriseLinuxServerrelease7.9(Maipo)DB版本:16.2pg软件目录:/home/pg16/softpg数据目录:/home/pg16/data端口:5777在PostgreSQL中,pg_namespace是一个系统表,用于存储所有命名空间(schema)的相关信息。命名......
  • Markdown语法整理
    说明发现网上的语法大多不全忘记了查找起来也麻烦,不如自己写一个记录一下,纯粹为了自己查找方便概述内联HTML语法HTML是一种发布格式,Markdown是一种创作格式。Markdown语法集合比较小,只是HTML标签的一小部分。特殊字符自动转义在HTML中,有两个字符需要特殊对待:<和......
  • python常用语法
    Python是一种非常流行的编程语言,因其简洁和易读性而备受欢迎。以下是一些Python的常用语法,涵盖基本语法、数据类型、控制流、函数、类和模块等内容。1.基本语法1.1打印输出print("Hello,world!")1.2变量赋值x=10y=20name="Alice"2.数据类型2.1数字inte......
  • 新零售闭环生态的三大基本要素与开源多商户AI智能名片商城小程序源码的应用
    一、引言随着互联网技术的快速发展和消费者购物习惯的不断变化,新零售概念应运而生,其特点在于将线上线下的购物体验进行深度整合,实现商品、数据、消费者的一体化运营。新零售闭环生态的构建需要三大基本要素的支持:基础系统底层服务设施、实体门店和线上商城、以及智能设备。为......
  • 操作系统基本特性:并发、共享、虚拟、异步
    目录一.并发1.并发的优势2.并发的实现3.并发的应用场景4.并发的挑战二.共享1.共享的优势2.共享资源的实现机制3.进程同步和互斥4.避免冲突和死锁5.实例分析文件共享内存共享设备共享三.虚拟1.虚拟技术的优势2.虚拟化技术的主要实现3.实例分析虚拟内存虚拟......
  • 【Linux】(一)——Linux基础和Linux命令基础语法
    目录Linux基础Linux发行版本Linux终端Linux命令Linux基础Linux,通常指的是GNU/Linux操作系统,这是一个开源且免费使用的类UNIX操作系统。它的核心组件——Linux内核,由林纳斯·托瓦兹(LinusTorvalds)在1991年10月5日首次发布。Linux内核的设计灵感来源于Minix和Unix,并......
  • OSPF协议基本原理:
    OSPF是OpenShortestPathFirst(开放最短路径优先)RIP协议存在的问题:存在最大15跳的限制,不能适用大规模组网的需求周期性发送全部路由信息,占用大量的带宽资源路由收敛速度慢以跳数作为度量值存在路由环路可能性OSPF协议特点:没有路由跳数的限制使用组播更新变化的路由和网......
  • 2021新书Python程序设计 人工智能案例实践 Python编程人工智能基本描述统计集中趋势和
    书:pan.baidu.com/s/1owku2NBxL7GdW59zEi20AA?pwd=suov​提取码:suov我的阅读笔记:图像识别:使用深度学习框架(如TensorFlow、PyTorch)创建图像分类模型。探索迁移学习,使用预训练模型进行定制。自然语言处理(NLP):构建一个情感分析模型,用于分析文本中的情感。实现一个文本生成模型,......
  • 揭秘PostgreSQL:如何查询表字段名称
    哈喽,大家好,我是木头左!PostgreSQL简介PostgreSQL是一个功能强大、开源的对象-关系型数据库管理系统(ORDBMS),它提供了许多高级功能,如事务支持、多版本并发控制(MVCC)、全文搜索等。PostgreSQL广泛应用于各种场景,如Web应用开发、企业级应用、数据仓库等。因此,掌握PostgreSQL的基本操......