PostgreSql – 정의어(DDL) [Java / 자바]

공부/Java  2015.07.26 20:04

안녕하세요. 명월입니다.


이번 포스트는 데이터베이스의 DDL 정의어에 대해서 공부하겠습니다. 데이터베이스는 크게 DDL, DML, DCL 이 세 개의 Language로 구성되어 있다고 말합니다. (솔직히 이건 이론적인 언어 구분이지 실무에서는 이건 DDL이다 이건 DCL이다 구분해서 사용하지는 않습니다.)
그 중 DDL은 테이블을 정의하는 언어입니다.
테이블을 정의하는 언어라는 표현이 조금 어렵네요. 단순히 데이터를 만드는 작업이 아닌 데이터의 그릇을 구성하는 언어라고 생각하시면 됩니다.
IO와 비교를 한다면 단순히 XML의 구조와 XML 파일 이름, 저장 위치 등을 정하는 형태라고 생각하시면 되겠습니다.
먼저 테이블을 작성해 보겠습니다.


postgres ddl


위 화면을 확인해 보면 Schemas까지 펼치면 위 SQL 버튼이 활성화되는 것을 확인할 수 있습니다. SQL 버튼을 눌러서 Query 실행기를 열겠습니다.


postgres ddl


실행기를 열고 위와 같이 create table test1 명령어로 테이블을 작성하겠습니다.
명령어를 다 치고 F5를 누르면 실행이 됩니다.
다시 옆의 트리 브라우저로 돌어가서 테이블이 위 「새로 고침」 버튼을 누르고 테이블이 생성된 것을 확인하겠습니다.


postgres ddl


생성된 테이블을 클릭하고 SQL 실행기 옆의 표 그림의 아이콘이 활성화되는데 클릭하겠습니다.

postgres ddl


postgres ddl


그러면 엑셀과 비슷한 구조 형태의 창이 열리는데 이게 테이블 안의 데이터와 구조형태입니다.
현재는 데이터가 없어서 아무것도 없는 표시가 되는군요.


이런 식으로 테이블을 몇 개 더 만들겠습니다.


postgres ddl


위와 같이 테이블이 4개가 생성되었습니다.


이번에는 이 테이블을 drop 명령어를 이용해서 삭제하겠습니다.


postgres ddl


postgres ddl


이번엔 삭제가 되었네요..


이번엔 테이블 구조를 변경해 보겠습니다.
Test2테이블을 확인해 보면 idx와 contents 항목이 두 개가 있습니다.


postgres ddl


저는 이 테이블에 createuser와 createdate를 추가하고 싶네요.


postgres ddl


Alter 명령어를 사용하여 Column을 변경하였습니다.


postgres ddl


postgres ddl


항목이 늘어났네요… 이번에는 contents를 빼겠습니다.


postgres ddl


Alter 명령어에 drop column를 사용했습니다.


postgres ddl


postgres ddl


Contents 컬럼이 사라졌습니다.
그 밖에 DDL 명령어로는 TRUNCATE, GRANT, REVOKE, COMMENT가 있습니다.
그러나 TRUNCATE는 테이블 초기화, GRANT는 권한부여, ROVOKE 권한 박탈, COMMENT는 COMMNET가 있습니다.


지금은 데이터가 없는 관계로 DDL 정의어를 사용했습니다. 그러나 실제 데이터베이스를 처음 생성할 때를 제외하고는 정의어를 거의 사용하지 않습니다. 왜냐하면, 이 정의어들은 실제 안의 데이터에 영향을 미치는 명령어이기에 데이터의 변형이 생기거나 유실이 될 가능성이 크기 때문입니다.


댓글 0개가 달렸습니다.
댓글쓰기