DB 테이블 컬럼정보를 이용한 SQL 자동생성

올로시아·2023년 10월 8일
0

코드 한땀

목록 보기
4/16
post-thumbnail

지난 시간에는 각 Database 종류별로 DB 테이블 컬럼정보를 조회하는 쿼리에 대해 말씀드렸습니다.

이는 테이블 정의서 Excel을 작성하는데 활용하곤 하는데요.

오늘은 이렇게 조회한 컬럼정보를 통해 SQL 을 생성하는 서비스를 말씀드리려고 합니다.

사실 사용하시는 많은 DB 접속툴에서 메타정보를 이용해 간단히 쿼리문을 생성해주고 있으니, 코드 한땀의 부가적인 기능으로 봐주시면 되지 않을까 싶네요.

MySQL 테이블 컬럼정보 조회

SELECT C.COLUMN_NAME,
       C.COLUMN_TYPE,
       C.COLUMN_COMMENT
  FROM INFORMATION_SCHEMA.TABLES T
       LEFT JOIN INFORMATION_SCHEMA.COLUMNS C
              ON T.TABLE_NAME = C.TABLE_NAME
 WHERE 1 = 1
/* AND T.TABLE_SCHEMA = 'TABLE_SCHEMA' */
   AND T.TABLE_NAME   = 'olosia_com'
 ORDER BY C.ORDINAL_POSITION;

위와 같은 쿼리로 컬럼정보 조회 후...

조회한 컬럼 정보를 코드 한땀의 컬럼 입력란에 붙여넣기 합니다.

그리고 SQL 탭의 Select / Insert / Update / Delete 메뉴를 통해서 각 쿼리문을 생성 하실 수 있습니다.

SQL 생성 옵션

  • alias : 테이블의 별칭으로 사용할 문자열을 입력 입력합니다.

  • clause-upper : 예약어를 대문자로 출력합니다.

  • column-upper : 컬럼명과 테이블명을 대문자로 출력합니다.

  • vertical-align : 쿼리문을 세로 정렬합니다.

Select 구문 생성 예시

SELECT /*  */
       seq,
       user_id,
       user_email,
       del_fg,
       create_date
  FROM olosia_com
 WHERE 1 = 1
   AND seq = :seq
   AND user_id = :userId
   AND user_email = :userEmail
   AND del_fg = :delFg
   AND create_date = :createDate

Insert 구문 생성 예시

INSERT INTO olosia_com (
    seq,
    user_id,
    user_email,
    del_fg,
    create_date
) VALUES (
    :seq,
    :userId,
    :userEmail,
    :delFg,
    :createDate
)

Update 구문 생성 예시

UPDATE olosia_com
   SET
       seq = :seq,
       user_id = :userId,
       user_email = :userEmail,
       del_fg = :delFg,
       create_date = :createDate
 WHERE 1 = 1
   AND seq = :seq
   AND user_id = :userId
   AND user_email = :userEmail
   AND del_fg = :delFg
   AND create_date = :createDate

Delete 구문 생성 예시

DELETE FROM olosia_com
 WHERE 1 = 1
   AND seq = :seq
   AND user_id = :userId
   AND user_email = :userEmail
   AND del_fg = :delFg
   AND create_date = :createDate

오늘은 코드 한땀에서 제공하는 SQL 구문 생성기능에 대해 말씀드렸습니다.

그럼 좋은 하루되세요.

감사합니다.

올로시아 코드 한땀 서비스 바로가기

profile
실패하는게 두려운게 아니라, 노력하지 않은게 두렵다. [마이클 조던]

0개의 댓글