database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Tutorials 6994 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 6994
8.2에서 새롭게 생긴 SQL 구문
작성자
김상기(ioseph)
작성일
2007-01-06 03:17
조회수
12,753

8.2에서는 눈에 띄는 것이 

새롭게 생긴 SQL 구문들입니다. 


서버의 관리 차원이나, 서버의 성능 보다, 확실히 나아진 쿼리들이 제법 있습니다.


그 첫번째가, 

DROP 명령에 쓰이는 IF EXISTS 기능입니다. 

없어서 많이 불편했었죠. 이제, 테이블이 있는지 조회하고, 있다면 삭제하는 분편함이 없을 것 같네요.

거의 모든 객체의 DROP에서 다 사용되는 기능입니다.


두번째가, 

INSERT/UPDATE/DELETE 구문 뒤에, RETRUNING ... 기능입니다.

가장 단순하게, 

게시판 프로그램에서 게시물을 읽을 때, 일단 조회수를 하나 증가 시키고, 

게시물 내용을 가져오죠. 

이 두 가지 작업을 하나의 쿼리로 할 수 있습니다. 


update board set read_count = read_count + 1 where id = 2000 RETURNING *


실무에서는 plpgsql 작업에서 아주 편해 졌습니다. 



세번째는 

VAULES 명령이 생겼습니다. 

MySQL 쪽에서는 오래전부터 지원된 기능이어서 MySQL 사용자들에게는 꽤나 불편했던 부분을 해소했습니다.

이 부분에 대한 이야기는 따로 다룰 만큼 방대한 양인지라, 

여기서는 소개만 합니다. 


단순하게 여러개의 row를 하나의 쿼리로 insert 할 수 있다는 것으로 이해하기에는 보다 많은 기능을 제공합니다. 

왜냐하면, values 자체가 이제는 명령어 뒤에 오는 예약어가 아니라, 명령어 자체로 쓰이기 때문입니다. 


사용자 설명서를 참고하면 자세한 예문이 있으니, 궁금하신 분은 참조 하시고. 


---------


틈나는 대로 이 구문들에 대한 실무 이야기를 올려 보죠. 

언제가 될지는 모르겠지만. ^^

이 글에 대한 댓글이 총 3건 있습니다.

VALUES 명령어가 가장 눈에 띄네요.


SELECT * FROM machines

WHERE ip_address IN (VALUES('192.168.0.1'::inet), ('192.168.0.10'), ('192.168.1.43'));


VALUES 구문이 독립된 명령어갇 되고 나니 이런 구문이 가능해 지는군요.

재미있습니다.

정재익(neople)님이 2007-02-03 09:51에 작성한 댓글입니다.

와.. 이거 좋네요. 
코딩할게 확 주는데요..

후리스님이 2007-02-12 13:31에 작성한 댓글입니다. Edit

좋네요.. 멋진걸요

서정주(moreta)님이 2008-09-18 15:20에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8577배열 자료형 정렬 함수 [1]
김상기
2009-12-15
11205
7496엑셀 FORECAST 함수 구현하기
김상기
2008-08-14
17994
7068corr() 집계 함수
김상기
2007-03-01
13471
69948.2에서 새롭게 생긴 SQL 구문 [3]
김상기
2007-01-06
12753
6415What's New in 8.1 [1]
신기배
2005-11-12
12637
6052pgpool과 prepared query의 위험한 외줄타기 [1]
김상기
2005-04-14
14372
6024pg_config 사용법 [1]
김상기
2005-04-08
12231
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.056초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다