SQL Cheat Sheet (내기준 필요한 것들만 정리함)

김재은·2022년 5월 20일
0
post-thumbnail

전채 행의 개수 가져오기

  • 만약 특정 컬럼의 개수를 가져올려면 SELECT COUNT(컬럼명) 이렇게 넣으면 됨.

SELECT COUNT(*)
FROM table_name
WHERE 조건;

WHERE faq.isEnable IS FALSE AND locale = #{locale}
// 삭제 되지 않은 항목 이며 현재 locale 정보에 맞는 항목만 가져온다.

Select 문의 형식.

SELECT A.id as faqId, A.title as title, A.type as type FROM faq A WHERE A.isEnable IS FALSE AND locale = #{locale}

Faq라는 테이블에서 id, title, type을 가져온다.
이는 FaqTestModel 이라는 모델에 맞추어지기 때문에 이름을 매핑 되도록 설정한다.
매핑되지 않으면 Null값이 할당 된다.

정렬 방식

// createDtm을 기준으로 정렬을 한다. 정렬이 DESC 값으로 전달될경우 내림차순 아닐 경우 오름차순
정렬을 한다.
ORDER BY F.createDtm

DESC
ASC

시간 정보 가져올 때 포맷 지정해서 가져오기

DATE_FORMAT(A.createDtm, '%Y-%m-%d %T') AS "createDtm",
DATE_FORMAT(A.updateDtm,'%Y-%m-%d')

아래의 두 식은 같은 결과값을 리턴 한다.
JDP코드에서는 위의 식을 사용한다...이유는 알아볼 것…

// A.type 을 넘어온 type에서 찾고 해당 행을 반환.

AND FIND_IN_SET(A.type, #{type})

// A타입과 넘어온 타입의 문자열이 같은가?

AND A.type = #{type}

테이블에 컬럼 추가하기.

EX1)

1 ALTER TABLE TBL1 ADD COL1 VARCHAR(100)
EX2)

1 ALTER TABLE TBL1 ADD COL1 CHAR(1) NOT NULL DEFAULT 'Y'

           (SELECT CONCAT('[', GROUP_CONCAT(JSON_OBJECT(
  1. ALTER TABLE~ ADD~ : 컬럼 추가
    ALTER TABLE USER ADD ADDRESS VARCHAR(100) DEFAULT('');
    --ALTER TABLE 테이블명 ADD 추가할컬럼명 컬럼타입 (디폴트값);
    해당 쿼리를 실행하면 USER 테이블에 문자열 길이 100까지 저장할 수 있는 ADDRESS라는 주소 컬럼이 추가됩니다.
    INSERT 시 필수값이 아닐 경우에 값이 넘어오지 않는 경우도 있는데 이런 경우 디폴드값을 설정하면 원하는 값으로 데이터가 저장됩니다. 그냥 NULL로 상태값을 두고 싶은 경우 선언하지 않으셔도 됩니다.
  1. ALTER TABLE~ ALTER COLUMN~ : 컬럼 수정
    ALTER TABLE USER ALTER COLUMN ADDRESS VARCHAR(80) NULL;
    --ALTER TABLE 테이블명 ALTER COLUMN 수정할컬럼명 컬럼타입 (디폴트값);

위에서 ADDRESS 컬럼을 추가했는데 타입이나 디폴트 값을 잘못 생성했다하는 경우에 해당 쿼리를 사용해서 컬럼을 수정해줄 수 있습니다. VARCHAR(100)이 너무 길고 디폴트값이 필요없는 경우에 실행하면 VARCHAR(80)에 기본 NULL을 가지는 컬럼으로 수정이 됩니다.

  1. ALTER TABLE~ DROP COLUMN~ : 컬럼 삭제
    ALTER TABLE USER DROP ADDRESS;
    --ALTER TABLE 테이블명 DROP 삭제할컬럼명;

0개의 댓글