下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 技術(shù)開發(fā) > 數(shù)據(jù)庫 > PostgreSQL?數(shù)組類型操作使用及特點(diǎn)詳解

PostgreSQL?數(shù)組類型操作使用及特點(diǎn)詳解

時(shí)間:2024-03-09 11:50作者:下載吧人氣:27

PostgreSQL 數(shù)組類型使用詳解

可能大家對(duì) PostgreSQL這個(gè)關(guān)系型數(shù)據(jù)庫不太熟悉,因?yàn)榇蟛糠秩俗钍煜さ模居玫淖疃嗟氖?MySQL

我們先對(duì)PostgreSQL數(shù)據(jù)庫 (下面簡稱 PG)簡單的介紹一下,以后有機(jī)會(huì),再單獨(dú)寫一篇專門介紹pgSql的文章

The World's Most Advanced Open Source Relational Database

這是PG官網(wǎng)對(duì)自己的介紹,是的,你沒有看錯(cuò),“世界上最先進(jìn)的開源關(guān)系型數(shù)據(jù)庫”。一段嚴(yán)重違反我國廣告法的話,上一個(gè)敢那么叫囂的技術(shù)是PHP,“世界上最好的語言”,然后這句話就成了碼農(nóng)界最廣為人知的梗,存在于各種笑料中。

不過PG并沒有因?yàn)檫@樣明目張膽地自吹自擂而遭到什么抨擊或調(diào)侃,事實(shí)上,無論在務(wù)實(shí)的碼農(nóng)界,抑或是講究章法的學(xué)術(shù)界,人們對(duì)PG都是贊許有加,PG是完全當(dāng)?shù)闷疬@句話的。

下面列出一些PostgreSQL的特點(diǎn)

  • PostgreSQL是一種功能非常齊全關(guān)系型數(shù)據(jù)庫,由加州大學(xué)計(jì)算機(jī)系開發(fā)
  • PostgreSQL開源協(xié)議是類BSD的自有協(xié)議 ,這是一種非常友好的協(xié)議,不論是商用還是自用,或者修改代碼再起個(gè)名拿來賣錢,都沒有任何風(fēng)險(xiǎn)
  • PostgreSQL支持的數(shù)據(jù)類型非常多,除了常用的,還有枚舉類型, 幾何類型,UUID類型  , json類型 , 數(shù)組類型 等,其中數(shù)組類型 也是本篇文章的目的,介紹其中數(shù)組類型的使用
  • PostgreSQL 成立時(shí)對(duì)標(biāo)的數(shù)據(jù)庫是 Oracle數(shù)據(jù)庫,所有 PostgreSQL 的功能和性能是非常強(qiáng)的。
  • PostgreSQL 對(duì)復(fù)雜SQL的執(zhí)行,要好于MySql
  • ………………

還有很多的特性,這里只簡單的寫幾個(gè),上面的幾個(gè)特點(diǎn)也是我非常在意的,之所 www.helloworld.net 此次改版把Mysql換成了PostgreSQL ,就是有這些原因。

之前很多人問過,hellworld開發(fā)者社區(qū) 改版用到了哪些技術(shù)棧,其中之一,就是把 Mysql 換成了 PostgreSQL

在改版的過程中,所有的表全部重新設(shè)計(jì),這對(duì)于后端來說,是一個(gè)極其需要勇氣的決定,好在我們堅(jiān)持下來了

在改的過程中,其中有這樣一個(gè)場(chǎng)景:

一篇博客,有多個(gè)標(biāo)簽 ,比如 一個(gè)博客,有多線程, 并發(fā) , 線程池 這三個(gè)標(biāo)簽

對(duì)于這樣的需求,我們可以分析一下

  • 一篇博客,有多個(gè)標(biāo)簽
  • 一個(gè)標(biāo)簽,也可有對(duì)應(yīng)多篇博客

這樣就形成了 多對(duì)多 的關(guān)系,建表的話,就會(huì)有一張關(guān)聯(lián)表,大部分會(huì)想到這樣建表

博客表: blog

標(biāo)簽表: tag

標(biāo)簽博客表: tag_blog

其中各表的字段,如下(簡單起見,只列出最少的列):

blog 表:

  • id 數(shù)字類型,博客的 id, 自增長的主鍵
  • title 字符串類型,博客的標(biāo)題

tag表:

  • id 數(shù)字類型, 標(biāo)簽的 id , 自增長的主鍵
  • name 字符串類型,標(biāo)簽的名字

tag_blog

  • id 數(shù)字類型, 自增長的主鍵
  • tag_id 標(biāo)簽 id (對(duì)應(yīng) tag 表中的 id )
  • blog_id 博客id (對(duì)應(yīng) blog 表中的 id )

上面這個(gè)博客標(biāo)簽需求,需要 3 張表,我們知道,PostgreSQL 的列的類型是支持數(shù)組類型

我們是不是可以優(yōu)化一下上面的需求,把 3 張表變成 1 張表

只保留一張 blog 表,在 blog 表中增加一列 tags , 類似就是 text[ ]

新的博客表字段如下:

blog表:

  • id 數(shù)字類型(bigint),博客的 id, 自增長的主鍵
  • title 字符串類型(text ),博客的標(biāo)題
  • tags 字符串?dāng)?shù)組類型(text[ ] )

為了方便大家測(cè)試,建表SQL 如下

CREATE TABLE IF NOT EXISTS public.blog
(
id bigint NOT NULL DEFAULT nextval(‘blog_id_seq’::regclass),
title text COLLATE pg_catalog.”default”,
tags text[] COLLATE pg_catalog.”default”,
CONSTRAINT blog_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;
ALTER TABLE IF EXISTS public.blog
OWNER to postgres;
標(biāo)簽[db:關(guān)鍵字]

相關(guān)下載

查看所有評(píng)論+

網(wǎng)友評(píng)論

網(wǎng)友
您的評(píng)論需要經(jīng)過審核才能顯示

熱門閱覽

最新排行

公眾號(hào)

主站蜘蛛池模板: xxxx日本性| 久草福利资源网站免费| 香蕉精品视频在线观看| 性欧美成人免费观看视| 亚洲第一综合色| 高潮毛片无遮挡高清免费| 好男人在线社区www| 亚洲av人无码综合在线观看| 综合网在线视频| 国产精品多p对白交换绿帽| 中文字幕日韩一区二区不卡| 欧美老熟妇欲乱高清视频| 国产三级精品三级在专区中文 | 国产精品国产三级国产在线观看| 久久九九国产精品怡红院| 泰国午夜理伦三级| 国产免费资源高清小视频在线观看| a在线视频免费观看| 日韩无人区电影| 亚洲黄色网站视频| 视频一区视频二区制服丝袜| 国产麻豆一精品一av一免费| 久久91精品国产91久久小草| 欧美日韩一区二区成人午夜电影| 国产v在线播放| 自拍偷拍校园春色| 小泽玛利亚国产在线视频| 久青草中文字幕精品视频| 特级毛片A级毛片免费播放| 国产亚洲精品欧洲在线观看| 91欧美激情一区二区三区成人| 扁豆传媒在线入口| 亚洲a∨精品一区二区三区下载| 直接进入免费看黄的网站| 国产另类ts人妖一区二区| 91亚洲国产成人精品下载| 成人免费无码大片a毛片软件| 亚欧人成精品免费观看| 激情小说在线播放| 四虎永久免费地址ww484e5566| 私人影院在线观看|