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

          軟件下載吧

          當前位置:軟件下載吧 > 技術開發 > 數據庫 > PostgreSQL?數組類型操作使用及特點詳解

          PostgreSQL?數組類型操作使用及特點詳解

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

          PostgreSQL 數組類型使用詳解

          可能大家對 PostgreSQL這個關系型數據庫不太熟悉,因為大部分人最熟悉的,公司用的最多的是 MySQL

          我們先對PostgreSQL數據庫 (下面簡稱 PG)簡單的介紹一下,以后有機會,再單獨寫一篇專門介紹pgSql的文章

          The World's Most Advanced Open Source Relational Database

          這是PG官網對自己的介紹,是的,你沒有看錯,“世界上最先進的開源關系型數據庫”。一段嚴重違反我國廣告法的話,上一個敢那么叫囂的技術是PHP,“世界上最好的語言”,然后這句話就成了碼農界最廣為人知的梗,存在于各種笑料中。

          不過PG并沒有因為這樣明目張膽地自吹自擂而遭到什么抨擊或調侃,事實上,無論在務實的碼農界,抑或是講究章法的學術界,人們對PG都是贊許有加,PG是完全當得起這句話的。

          下面列出一些PostgreSQL的特點

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

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

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

          在改版的過程中,所有的表全部重新設計,這對于后端來說,是一個極其需要勇氣的決定,好在我們堅持下來了

          在改的過程中,其中有這樣一個場景:

          一篇博客,有多個標簽 ,比如 一個博客,有多線程, 并發 , 線程池 這三個標簽

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

          • 一篇博客,有多個標簽
          • 一個標簽,也可有對應多篇博客

          這樣就形成了 多對多 的關系,建表的話,就會有一張關聯表,大部分會想到這樣建表

          博客表: blog

          標簽表: tag

          標簽博客表: tag_blog

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

          blog 表:

          • id 數字類型,博客的 id, 自增長的主鍵
          • title 字符串類型,博客的標題

          tag表:

          • id 數字類型, 標簽的 id , 自增長的主鍵
          • name 字符串類型,標簽的名字

          tag_blog

          • id 數字類型, 自增長的主鍵
          • tag_id 標簽 id (對應 tag 表中的 id )
          • blog_id 博客id (對應 blog 表中的 id )

          上面這個博客標簽需求,需要 3 張表,我們知道,PostgreSQL 的列的類型是支持數組類型

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

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

          新的博客表字段如下:

          blog表:

          • id 數字類型(bigint),博客的 id, 自增長的主鍵
          • title 字符串類型(text ),博客的標題
          • tags 字符串數組類型(text[ ] )

          為了方便大家測試,建表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;
          標簽[db:關鍵字]
          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          盖楼回复X

          (您的评论需要经过审核才能显示)

          主站蜘蛛池模板: 卡通动漫中文字幕第一区| 99久久人妻精品免费一区| 色综合视频一区二区三区| 国产av一区二区精品久久凹凸| 国产成人一区二区三区视频免费 | 精品人妻码一区二区三区| 国产伦精品一区二区三区免.费| 亚洲一区二区三区播放在线| 亚洲日韩精品无码一区二区三区| 久久蜜桃精品一区二区三区| 精品一区二区久久久久久久网站| 四虎在线观看一区二区| 日本高清不卡一区| 黑人一区二区三区中文字幕| 国产精品一区二区三区久久| 在线日产精品一区| 亚洲AV无码一区二区三区人| 性色AV一区二区三区| 久久一区二区免费播放| 亚洲日本一区二区一本一道 | 日本一区二区三区不卡在线视频| 一区二区三区日韩| 一区二区三区观看免费中文视频在线播放| 日韩人妻无码一区二区三区综合部 | 无码国产精品一区二区免费式影视| 另类免费视频一区二区在线观看| 亚洲国产一区二区三区| 国产精久久一区二区三区| 一区二区三区在线免费观看视频| 国产一区二区三区国产精品| 香蕉久久AⅤ一区二区三区 | 国产内射在线激情一区| 国内国外日产一区二区| 亚洲国产精品乱码一区二区| 亚洲国产一区二区a毛片| 久久久综合亚洲色一区二区三区| 韩国福利一区二区三区高清视频| 亚洲av无码一区二区三区乱子伦| 久久精品视频一区二区三区| 亚洲宅男精品一区在线观看| 亚洲一区二区三区久久久久|