# PostgresQL

# PostgresQL

by jihoon kim

HTML

<h1>PostgresQL</h1>
<pre id="contents">
# PostgresQL
    ※ 참고 
        https://d2.naver.com/helloworld/227936

# PostgresQL ( 포스트-그레스-큐엘 )?
    1. 15년 이상의 오랜 역사를 가지고 최근에는 1년 여반에 새로운 버전인 9.2버전을 출시함.
    2. PostgreSQL(http://www.postgresql.org)는 북미와 일본에서는 높은 인지도가 높음.
    3. 엔터프라이즈급 DBMS의 기능과 차세대 DBMS에서나 볼 수 있는 기능을 제공하는 오픈소스 DBMS이다.
    4. Oracle과 유사점이 많음.

# 역사
    PostgresSQL은 Ingres(INteractive Graphics REtrieval System)을 기반으로 발전했다.

# json data type
    ※ https://www.postgresql.org/docs/9.4/static/datatype-json.html
    SELECT '[1, 2, "foo", null]'::json;
    SELECT '[1, 2, "foo", null]'::json->>1;
    SELECT '[1, 2, "foo", null]'::json->>'1'; -- error
    SELECT '[1, 2, "foo", null]'::json->>cast('1' as INT); -- success
    
<h1>string_agg(expression, delimiter)	text, text	text	input values concatenated into a string, separated by delimiter
</h1>
※ 참고 : https://www.postgresql.org/docs/9.0/static/functions-aggregate.html


select 
	string_agg( cast(m.ranking as text), ',' ) 
	from
(
	select 
		r,
	    RANK() OVER (ORDER BY r DESC) as ranking
	from (
	select md5(random()::text) r, gs.id from generate_series(1,70) gs(id)
	) a
	ORDER BY random()
) m
</pre>

<script>
function autolink(id) {
  var container = document.getElementById(id);
  var doc = container.innerHTML;
  var regURL = new RegExp("(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)","gi");
  var regEmail = new RegExp("([xA1-xFEa-z0-9_-]+@[xA1-xFEa-z0-9-]+\.[a-z0-9-]+)","gi");
  return doc.replace(regURL,"<a href='$1://$2' target='_blank'>$1://$2</a>").replace(regEmail,"<a href='mailto:$1'>$1</a>");
}

window.onload = function () {
  var container = document.getElementById("contents");
	container.innerHTML = autolink("contents");
}
</script>