探码开发文档
  • 探码科技-发开日志
  • 代码规范
  • 前端
    • Bootstrap 模板
      • 图表类
      • Profile 类页面
    • JS Chart图表
    • 图片库
    • Icon图标库
    • Css3
      • 字体+背景混合搭配
      • tranform-origin + transform
      • flex
        • 布局左边自适应,右边固定宽度
    • 用Sass颜色函数控制颜色
    • Draggable组件库
  • Javascript
  • Ruby
    • Ruby on Rails
      • 数据库类
      • 日志类
      • 价格字段的单位转换
      • 部署
      • 根据设备类型自动渲染页面
      • 路由
    • Gems
    • Automating your API with JSON Schema
    • 深度冻结变量 Deep Freeze
    • 搭建私有Gem仓库
    • YAML语法
  • 数据库
    • PostgreSQL
      • 基础知识
        • PostgreSQL中插入数据
        • PostgreSQL中更新数据
        • PostgreSQL中删除数据
      • 数据库管理
      • select jsonb
    • PostgreSQL XL
      • Data Definition
      • 查询技巧
  • Docker
    • Docker日志收集最佳实践
    • Harbor搭建私有镜像服务
  • Kubernetes
    • 参考资源
    • Kubeadm方式安装Kubernetes
    • Rancher方式安装Kubernetes
      • RBAC集成
    • rke方式安装Kubernetes
    • RBAC用户管理
    • Traefik配置
    • 创建etcd集群
    • Kubeapps
    • 工具
    • 安装Helm
    • 亲和度配置
  • 文件系统
    • GlusterFS
  • 日志管理
    • Fluentd
  • VirtualBox
  • 工具软件
    • Alfred
    • 代码版本控制工具
    • Atom
    • Bash Shell
    • Vim
    • fzf(Fuzzy Finder)
    • Gitlab
  • Ubuntu
    • 安装 VPN服务
    • 安装DNSMasq
    • Keepalived
    • OpenSSL 使用技巧
  • Git
  • Nginx
    • 自动更新SSL证书
    • 使用stream模块实现负载均衡
  • 机器学习
Powered by GitBook
On this page
  • 对表的管理
  • 创建表
  • 删除表
  • 重命名表
  • 清空表
  • 复制表
  • 添加列
  1. 数据库
  2. PostgreSQL

数据库管理

对表的管理

创建表

这里有一个关于创建 "users" 表的例子:

create table users (
    id serial primary key, -- id 自动递增
    name character varying, -- 指定字符串输出长度大小
    preferences jsonb, -- 字段类型为JSON非常适合存储非结构化的数据
    created_at timestamp without time zone -- 始终以UTC格式存储时间
);

你也有机会指定非空约束和默认值:

create table users (
    id serial primary key,
    name character varying not null,
    active boolean default true
);

删除表

drop table funky_users;

重命名表

alter table events rename to events_backup;

清空表

要非常小心这段代码,它会清空 PosgreSQL 表中的所有内容,在开发中很有用处,但是它很少想在生产环境中应用。

truncate my_table;

如果你又一个序列ID列,并且你想重启它的序列(既重启ID重1开始)

truncate my_table restart identity;

复制表

有时候表的复制对你很有用:

create table dupe_users as (select * from users);

-- 这个 'with no data' 意思是只有结构,没有实际的行
create table dupe_users as (select * from users) with no data;

添加列

这里有一个例子关于在 users 表中添加 created_at 时间戳列:

alter table users add column created_at timestamp without time zone;

添加一个 String ( varchar ) 类型并且设置非空约束的列:

alter table users add column bio string character varying not null;

添加一个 Boolean 类型并且设置默认值的列:

alter table users add column active boolean default true;

PreviousPostgreSQL中删除数据Nextselect jsonb

Last updated 6 years ago