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

          軟件下載吧

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

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

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

          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:關鍵字]

          相關下載

          查看所有評論+

          網友評論

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

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 亚洲乱码av中文一区二区| 国产一区二区三区美女 | 久久人做人爽一区二区三区| 中文字幕AV无码一区二区三区| 久久精品国产亚洲一区二区| www一区二区三区| 成人精品一区二区不卡视频| 亚洲一区二区三区播放在线| 日本在线一区二区| 亚洲啪啪综合AV一区| 小泽玛丽无码视频一区| 99国产精品欧美一区二区三区| 日韩免费一区二区三区在线播放| 亚洲人成网站18禁止一区| 在线视频亚洲一区| 国产拳头交一区二区| 国语对白一区二区三区| 少妇一晚三次一区二区三区| 久久精品一区二区东京热| 国产凹凸在线一区二区| 国产精品亚洲综合一区| 中文字幕一区在线观看| 一区视频免费观看| 91福利国产在线观看一区二区| 一区二区三区高清在线| 中文字幕在线观看一区 | 精品无码AV一区二区三区不卡 | 亚洲一区在线观看视频| 亚洲一区二区三区免费视频| 国产福利一区二区三区在线视频| 麻豆aⅴ精品无码一区二区| 人妖在线精品一区二区三区| 极品尤物一区二区三区| 日韩在线一区高清在线| 精品一区二区AV天堂| chinese国产一区二区| 国产一区在线视频| 精品深夜AV无码一区二区| 性色AV一区二区三区无码| 女人和拘做受全程看视频日本综合a一区二区视频 | 欧美成人aaa片一区国产精品|