如下:
select tablename,
array_to_string
(
ARRAY (
SELECT column
FROM T1 A
WHERE A.tablename = B.tablename
),
', '
) AS group_concat
FROM T1 B
group by tablename ;
2. GP資料庫與Oracle資料庫什麼區別
你好, 操作系統的穩定對資料庫來說是十分緊要的,在資料庫可操作平台上,Oracle可在所有主流平台上運行,Oracle資料庫採用開放的策略目標,它使得客戶可以選擇一種最適合他們特定需要的解決方案。客戶可以利用很多種第三方應用程序、工具。對開發商來說是很大的支持。
3. gp資料庫全稱是什麼
gp資料庫全稱是Creenplum。
GP資料庫是業界最快最高性價比的關系型分布式資料庫,它在開源的PostgreSQL的基礎上採用MPP架構(Massive Parallel Processing,海量並行處理),具有強大的大規模數據分析任務處理能力,其主要關注在數據倉庫和商業智能方面。
分布式資料庫系統通常使用較小的計算機系統,每台計算機可單獨放在一個地方,每台計算機中都可能有DBMS的一份完整拷貝副本,或者部分拷貝副本,並具有自己局部的資料庫,位於不同地點的許多計算機通過網路互相連接,共同組成一個完整的、全局的邏輯上集中、物理上分布的大型資料庫。
GP資料庫特點:
1.greenplum是一個關系型資料庫集群,是由數個獨立的資料庫服務組合成的邏輯資料庫。
2.greenplum採用Shared-Nothing架構,整個集群由很多個數據節點(Segment Sever)和控制節點(master server)組成,其中每個數據節點上可以運行多個資料庫。
簡單來說,Shared-Nothing是一個分布式的架構,每個節點相對獨立。在典型的Shared-Nothing中,每一個節點上所有的資源(CPU,內存,磁碟)都是獨立的,每個節點都只有全部數據的一部分,也只能使用本節點的資源。
4. shell怎麼向gp資料庫導數
fcp_login="<user>/<password>@<tnsname>"
ret_value=`sqlplus -s $fcp_login << EOF
set heading off
set feedback off
set pages 0
set trimspool on
set serverout off
VARIABLE x_outnum number;
EXECUTE importUserInfoDate1(:x_outnum);
print;
exit;
EOF`
5. GP資料庫與Oracle資料庫有什麼區別
GP資料庫與Oracle資料庫區別為:側重不同、資料庫類型不同、查詢不同。
一、側重不同
1、GP資料庫:GP資料庫重計算的,對大數據集進行統計分析的OLAP類型。
2、Oracle資料庫:Oracle資料庫面向前台應用,重吞吐和高並發的OLTP類型。
二、資料庫類型不同
1、GP資料庫:GP資料庫的資料庫類型為分布式資料庫。
2、Oracle資料庫:Oracle資料庫的資料庫類型為傳統關系型資料庫。
三、查詢不同
1、GP資料庫:GP資料庫支持海量數據存儲,支持列的擴展,查詢速度快,但是查詢操作較復雜。
2、Oracle資料庫:Oracle資料庫雖然可以搭建集群,但是當數據量達到一定限度之後,查詢處理速度會變得很慢,且對機器性能要求很高。
6. GP資料庫中存儲過程的RAISE NOTICE 'V_SQL:%',V_SQL;語句什麼意思
1. 直接在程序中構造SQL的話後期維護, 比如表欄位的增減, 有可能會影響到你SQL語句的可執行性, 那個時候你就必須要修改程序源碼, 可能的結果是牽一發而動全身, 如果用存儲過程, 那麼只要更新存儲過程就可以了, 便於維護!
2. 如果不法分子破解你的程序, 存儲過程是放在你的資料庫伺服器上的!那麼光得到你的存儲過程名稱, 沒有實際的實現代碼~~所以使用存儲過程的安全性相對較高!
3. 存儲過程的執行效率較高, 速度快!復雜的查詢, 對速度的要求還是有講究的!
7. gp里用什麼代替oracle里rownum,用什麼代替rowid
rowid在記錄創建時就生成了,而且是不變的,直接指向硬體上的存儲位置,能用rowid直接訪問是最快的,但也是人力所無法做到的。rownum是個偽列,查詢的時候除非特別指定,否則不會顯示。其主要的用處是控制查詢返回的行數,比如在WHERE中加ROWNUM<5,則查詢結果如果在5行或以上時,只返回前4行。
(一)、概念:行的ROWID標識了該行數據的地址,ROWID包含如下信息:
數據對象編號、
該行數據,在數據文件中的塊編號
該行在數據塊中的位置(第一行為0)
保存該行數據的數據文件的編號(第一個數據文件為1)
ROWID在插入數據時創建,在刪除數據時,刪除。
不能手動設置或刪除ROWID,ORACLE內部通過ROWID組建索引;
(二)、類型
1、物理ROWID:保存普通表(不含索引組織的表IOT)、聚合表(clustered table)、分區和子分區表、索引、分區和子分區索引中行的地址;
2、邏輯ROWID:保存索引組織表(IOT)的地址;
(三)、物理ROWID
1、類型:物理ROWID包含擴展ROWID與受限ROWID兩類
1)、擴展ROWID(extended rowid)
支持表空間關聯的數據塊地址,有效標識分區表、分區索引以及普通表和索引中的行。
Oracle 8i及更高版本支持extended rowid。
2)、受限ROWID(restricted rowid)
為了向後兼容,如oracle 7及更低版本。
2、擴展ROWID(extended rowid)
a.擴展ROWID使用base64為每一行數據的物理地址進行編碼,包含A-Z,a-z,0-9,+以及/。如下查詢:
SQL> select rowid,dept.* from dept;
ROWID DEPTNO DNAME LOC
-------------------------------- ------------ -------------------- ----------------
AAAMfKAAEAAAAAQAAA 10 ACCOUNTING NEW YORK
AAAMfKAAEAAAAAQAAB 20 RESEARCH DALLAS
AAAMfKAAEAAAAAQAAC 30 SALES CHICAGO
AAAMfKAAEAAAAAQAAD 40 OPERATIONS BOSTON
b.擴展ROWID格式
擴展ROWID共18位,包含4部分,OOOOOOFFFBBBBBBRRR
a)000000:數據對象編號,標識了資料庫中的段;
b)FFF:表空間相關的數據文件編號;
c)BBBBBB:數據文件中的數據塊編號;
d)RRR:在數據塊中的行編號;
c.DBMS_ROWID包
a)dbms_rowid.rowid_object通過ROWID,獲取該數據的對象編號
SQL> select dbms_rowid.rowid_object('AAAMfKAAEAAAAAQAAC') as object_id from al;
OBJECT_ID
----------------
51146
b)dbms_rowid.rowid_relative_fno通過ROWID獲取數據文件編號
SQL> select dbms_rowid.rowid_relative_fno('AAAMfKAAEAAAAAQAAC') as file_no from al;
FILE_NO
-------------
4
c)dbms_rowid.rowid_block_number通過ROWID,獲取該數據的數據塊編號
SQL> select dbms_rowid.rowid_block_number('AAAMfKAAEAAAAAQAAC') as block_number from al;
BLOCK_NUMBER
-------------------------
16
d)dbms_rowid.rowid_row_number通過ROWID,獲取數據塊中的行編號
SQL> select dbms_rowid.rowid_row_number('AAAMfKAAEAAAAAQAAC') as row_no from al;
ROW_NO
----------
2
3、受限ROWID(resticted rowid)
a.受限rowid用二進製表示每行數據的物理地址,當使用SQL Plus查詢時,二進製表示法被轉換為varchar2或16進製表示。
SQL> select dbms_rowid.rowid_to_restricted(rowid,1) as restricted_rowid,dept.* from scott.dept;
RESTRICTED_ROWID DEPTNO DNAME LOC
------------------------------- ------------- --------------------- ------------------
00000010.0000.0004 10 ACCOUNTING NEW YORK
00000010.0001.0004 20 RESEARCH DALLAS
00000010.0002.0004 30 SALES CHICAGO
00000010.0003.0004 40 OPERATIONS BOSTON
b.受限rowid格式:
共16位,包含3部分:AAAAAAAA.BBBB.CCCC
a)AAAAAAAA:保存該行數據的數據塊編號
b)BBBB:該行數據在數據塊中的行編號
c)CCCC:包含該行數據的數據文件編號
(四)、邏輯ROWID(logical rowid)
1、概述:索引組織的表(IOT)中,row保存在索引的葉子節點,可以在塊內或塊間移動。
因此,這些rows沒有固定的物理地址,無法根據物理地址來唯一標識。
Oracle提供了邏輯ROWID,來標識IOT中的行,邏輯ROWID是基於表的主鍵;
Oracle可根據這些邏輯ROWID為IOT創建第二索引。
每個第二索引使用的邏輯ROWID都包含一個physical guess;
physical guess標識了當創建第二索引時,IOT中每個row的塊位置;
8. 如何在linux 登陸gp資料庫
1、在linux執行ssh-keygen -t rsa2、在~/.ssh/會生成兩個文件,id_isa和id_rsa.pub將這兩個文件傳到安裝有SecureCRT的電腦上。3、復制id_rsa.pub為authorized_keyscd ~/.sshcp id_rsa.pub authorized_keys4、authorized_keys文件可以上傳到任意你想用證書登錄的電腦~/.ssh5、設置SecureCRT