PIXNET Logo登入

彥霖 實驗筆記

跳到主文

個人筆記...

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 12月 06 週日 201512:12
  • PostgreSQL 會員註冊系統的加密範例


-- 先建立外部模組
CREATE EXTENSION pgcrypto;
-- 再建立 test_user 表格
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(4) 人氣(2,029)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 10月 22 週四 201522:28
  • PostgreSQL 入門 : Json、Jsonb 操作

雖然我標題寫 Json、Jsonb 操作,但實際上我這裡只會用 Jsonb 來示範
會用 Jsonb 實際上就會用 Json ,因為 Jsonb 效能比較好 (資料無排序),但如果你要有排序功能,可以用傳統 Json 來操作
前置作業重點:
插入 Jsonb 無法用 INSERT INTO ,因為他找不到 資料 插....,所以要先用 INSERT INTO 先插入一個 空 資料,這樣未來 UPDATE 才找的到洞插入...
更多資源可以參考 PostgreSQL 官方的 Json 文件:http://www.postgresql.org/docs/9.5/static/function...
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(1) 人氣(6,942)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 10月 15 週四 201500:30
  • PL/PgSQL : 回傳表格 (Table)

SQL Shell (psql)範例:
CREATE OR REPLACE FUNCTION x() RETURNS TABLE(a INT, b TEXT, c TEXT) AS
$$
    DECLARE data TEXT := 'Loli';
    BEGIN
        RETURN QUERY SELECT 5, 'Hello'::TEXT, data;
    END;
$$
LANGUAGE plpgsql;
執行: SELECT * FROM x();
結果:
 
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(290)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 10月 02 週五 201504:00
  • PL/PgSQL : 判斷資料是否存在

-- 判斷表是否已經有資料了? 沒有的話就做初始化動作,也就是插入 {} 大括號,以初始化 location-Jsonb
IF NOT EXISTS (SELECT * FROM location) THEN
    INSERT INTO location VALUES ('{}');
END IF;
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(351)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 9月 22 週二 201516:32
  • PostgreSQL:安裝 UUID

查看擴充套件
select * from pg_extension;
列出可安裝清單,uuid-ossp 會出現在裡面
select * from pg_available_extensions;
安裝
CREATE EXTENSION "uuid-ossp";
查看 UUID
SELECT uuid_generate_v1();
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(235)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 9月 14 週一 201503:03
  • PL/PgSQL:陣列輸出

官方文件:陣列 http://www.postgresql.org/docs/9.5/static/functions-array.html
建立 run () 涵式:
整數陣列:
CREATE OR REPLACE FUNCTION run(data int[]) RETURNS SETOF int AS
    $BODY$
        DECLARE i int;
    BEGIN
        FOR i IN 1 .. array_upper(data, 1) LOOP
            RETURN NEXT i;
        END LOOP;
    END
    $BODY$
LANGUAGE 'plpgsql';
查詢:
SELECT run('{1,2,3}');
輸出結果:
 run
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(274)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 9月 07 週一 201500:13
  • PostgreSQL 的 Json 時間操作

1. 用現在時間寫入 Json 
SELECT jsonb_set('{"A":"B"}', '{"A"}', to_jsonb(now()));
2. Json 時間比大小:
假設我們有以下資料
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(248)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 9月 01 週二 201514:48
  • PostgreSQL 更新 JsonB 的值

這是 PostgreSQL 9.5 版以上才有的語法
詳細可參考這裡:http://www.postgresql.org/docs/9.5/static/functions-json.html
1. 首先我們先建立一個 Json 表格
CREATE TABLE json (data JSONB);
2. 插入 Json 資料
INSERT INTO json VALUES ('{"A":"B"}');
3. 查看我們剛剛的資料
SELECT * FROM json;
  data
------------
{"A": "B"}
4. 更新資料 (在舊 Json 中接續插入新的 Json) 
UPDATE json SET data = jsonb_set(data, '{X, Loli}', '"Love"');
5. 察看結果 (舊資料中出現新的Json資料了):
SELECT * FROM json;
              data
-----------------------------------
{"A": "B", "X": {"Loli": "Love"}}
6. 加入陣列
UPDATE json SET data = jsonb_set(data, '{X}', '[]');
SELECT * FROM json;
      data
---------------------
{"A": "B", "X": []}
7. 插入陣列新值:
UPDATE json SET data = jsonb_set(data, '{X, *}', '0');
UPDATE json SET data = jsonb_set(data, '{X, *}', '1');
UPDATE json SET data = jsonb_set(data, '{X, *}', '100');
SELECT * FROM json;
      data
---------------------
{"A": "B", "X": [0, 1, 100]}
8. 刪掉陣列中其中一個值:
UPDATE json SET data = data #- '{X, 2}';
      data
---------------------
{"A": "B", "X": [0, 1, 100]}
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(2,754)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 9月 01 週二 201510:16
  • PostgreSQL 流水號產生

1. 先建立一個 users 表格:
CREATE TABLE users (
    id    serial    PRIMARY    KEY,
    username    TEXT    NOT    NULL,
    passwd    TEXT
);
2. 然後連續插入三次
INSERT INTO users (username, passwd) VALUES ('Loli', 'Love');
INSERT INTO users (username, passwd) VALUES ('Loli', 'Love');
INSERT INTO users (username, passwd) VALUES ('Loli', 'Love');
3. 然後搜尋
SELECT * FROM users;
4. 輸出結果 (會發現 id 自動有流水號):
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(2,057)

  • 個人分類:[資料庫] PostgreSQL
▲top
  • 9月 01 週二 201510:01
  • PostgreSQL 加密:AES、crypt()

crypt 就算插入相同的文字,也會顯示不同密碼
CREATE EXTENSION pgcrypto;
AES 加密:
create table demo(pw bytea);
insert into demo(pw) values ( encrypt( 'data', 'key', 'aes') );
AES 解密:
select encode( decrypt(pw,'key','aes'), 'escape') FROM demo;
crypt() 加密:
create table demo2(pw text);
insert into demo2 (pw) values ( crypt('data',gen_salt('md5')) );   -- md5 也可改成 bf
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(729)

  • 個人分類:[資料庫] PostgreSQL
▲top
123»

實驗人員

黃彥霖
暱稱:
黃彥霖
分類:
數位生活
好友:
累積中
地區:

文章分類

  • [遊戲設計] Unity (100)
  • [程式語言] Java (91)
  • [程式語言] Go (31)
  • [程式語言] C # (15)
  • [程式語言] Python 3 (11)
  • [程式語言] Erlang (2)
  • [程式語言] Python 2 (2)
  • [程式語言] C++ (10)
  • [程式語言] C (8)
  • [程式語言] Node.js (5)
  • [程式語言] JavaScript (8)
  • [程式語言] Java-Android (2)
  • [資料庫] PostgreSQL (28)
  • [資料庫] Hadoop (2)
  • [作業系統] Linux (23)
  • [作業系統] Windows (3)
  • [作業系統] FreeRTOS (1)
  • [單晶片] Arduino (19)
  • [單晶片] ARM-STM32-F4 (15)
  • [單晶片] ARM-STM32-F1 (13)
  • [單晶片] ARM-LPC1114 (1)
  • [單晶片] PIC33FJ128MC804 (4)
  • [硬體設計] 常用IC (1)
  • [硬體設計] 3D 印表機 (3)
  • [硬體設計] 其他 (4)
  • [數學+程式語言] Matlab (4)
  • [數學] 應用數學 (2)
  • [論壇架設] Discuz! (1)
  • [科技新聞] 機器人 (3)
  • [轉碼工具] FFMPEG (1)
  • [檔案格式] 3D 檔案 (1)
  • [程式語言] 程式設計經驗談 (2)
  • [伺服器] GlassFish 筆記 (1)
  • [網頁] HTML 教學 (5)
  • [網頁] CSS 語法 (1)
  • [網頁] JSP / Servlet (7)
  • [網路監控] SmartSniff (1)
  • [虛擬機器] VirtualBox (1)
  • [電腦安全] 開發者 (1)
  • [美術設計] 繪畫 (0)
  • [3D設計] Blender 教學 (2)
  • [3D設計] Blender 外掛設計 (1)
  • [2D設計] GIMP Python (2)
  • [3D設計] Shroud Studio (3)
  • [展示] 作品、比賽、專題 (4)
  • [人類語言] 希伯來語 (1)
  • [金融] 外匯 (1)
  • 未分類文章 (1)

FB 粉絲頁

參觀人氣

  • 本日人氣:
  • 累積人氣: