【PostgreSQL】PostgreSQL hstore類型數據增刪改查

一、登錄數據庫html

psql -U postgres -d postgressql


二、建立數據庫hstore,並安裝extension數據庫

create database hstore;
create extension hstore;json


三、建表post

create table users(
    id serial,
    info hstore
);spa


四、插入數據postgresql

insert into users values(1,'"name"=>"zhangsan","age"=>"20"');code


五、查詢數據htm

select info from users;教程


六、增長數據

update users set info = info || '"company"=>"Qunar"' :: hstore;


七、刪除數據

update users set info = delete(info, 'company');


八、將key值轉爲set輸出。

select skeys(info) from users;


九、將key值轉爲array輸出。

select akeys(info) from users;


十、將value值轉爲set輸出。

select svals(info) from users;


十一、將value值轉爲array輸出。

select avals(info) from users;


十二、將hstore值轉爲array輸出。

select avals(info) from users;


1三、查詢age爲20的全部記錄。

查詢以前再入兩條數據

insert into users values(1,'"name"=>"lisi","age"=>"20"');
insert into users values(1,'"name"=>"wangwu","age"=>"21"');
查詢
select * from users where info@'age=>20';
 

文檔參考:http://www.postgresql.org/docs/current/static/hstore.html

 

 

PostgreSQL HSTORE類型

提要:在本教程中,咱們將向您展現如何使用 PostgreSQL HSTORE 數據類型。

hstore 模塊實現了將鍵/值對存儲到單個值的 HSTORE 數據類型。注意,HSTORE 中的  和  都只能是字符串。

啓用 hstore 模塊

使用 HSTORE 數據類型以前,須要先啓用 hstore 模塊:

CREATE EXTENSION hstore;

建立包含 HSTORE 數據類型的表

CREATE TABLE books (
 id serial primary key,
 title VARCHAR (255),
 attr hstore
);

插入數據

INSERT INTO books (title, attr)
VALUES
 (
 'PostgreSQL 輕鬆學',
 '"paperback" => "685",
    "publisher" => "sjk66.com",
    "language"  => "簡體中文",
    "ISBN-13"   => "1234567890123",
 "weight"    => "412 克"'
 );

查詢指定鍵的數據

SELECT
 attr -> 'ISBN-13' AS isbn
FROM
 books;

在 WHERE 中使用鍵

SELECT
 attr -> 'weight' AS weight
FROM
 books
WHERE
 attr -> 'ISBN-13' = '1234567890123'

給已存在的數據添加鍵值對

UPDATE books
SET attr = attr || '"freeshipping"=>"yes"' :: hstore;

更新鍵值對

UPDATE books
SET attr = attr || '"freeshipping"=>"no"' :: hstore;

刪除鍵值對

UPDATE books 
SET attr = delete(attr, 'freeshipping');

判斷 HSTORE 字段是否包含某個鍵

SELECT
  title,
  attr->'publisher' as publisher,
  attr
FROM
 books
WHERE
 attr ? 'publisher';

判斷是否含有某鍵值對

SELECT
 title
FROM
 books
WHERE
 attr @> '"weight"=>"412 克"' :: hstore;

判斷是否包含多個鍵

SELECT
 title
FROM
 books
WHERE
 attr ?& ARRAY [ 'language', 'weight' ];

獲取全部鍵

SELECT
 akeys (attr)
FROM
 books;

SELECT
 skeys (attr)
FROM
 books;

獲取全部值

SELECT
 avals (attr)
FROM
 books;

SELECT
 svals (attr)
FROM
 books;

轉換成 JSON

SELECT
  title,
  hstore_to_json (attr) json
FROM
  books;

轉換成記錄集

SELECT
 title,
 (EACH(attr) ).*
FROM
 books;

 不知道能不能當hbase使用  

相關文章
相關標籤/搜索