목록쿼리 (3)
kimmgamjja
IN 연산자여러 값을 OR 관계로 묶어 나열하는 조건을 WHERE절에 사용할 때 쓸 수 있는 키워드IN 연산자는 조건의 범위를 지정하는 데 사용된다. 값은 콤마( , )로 구분하여 괄호 내에 묶으며, 이 값 중에서 하나 이상과 일치하면 조회된다SELECT * FROM EMPWHERE DEPT_NO IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_NO BETWEEN 10 AND 20) NOT IN 연산자SELECT * FROM EMPWHERE ENAME NOT IN ('KIM' , 'LEE') - IN () 안에 있는 값 (KIM 과 LEE)는 제외하고 조회된다
1. 샾 # 을 이용한 경우 SELECT NAME FROM USER WHERE ID = #{ID} 다음과 같은 SELECT문을 작성하였을경우 아래와 같이 ? 에 파라미터가 바인딩 되어 수행된다. 이렇게 파싱된 쿼리문은 재활용(캐싱)되므로 효율적이다. SELECT NAME FROM USER WHERE ID = ? 또한 변수에 작은 따옴표(')가 붙어 쿼리가 수행되므로 '#{id}'라고 쿼리문을 작성할 필요가 없다.아래와 같이 사용할 수 없다. 아래와 같이 사용할 경우 USER_'tableName'이 되어버리므로 에러가 발생한다. SELECT NAME FROM USER_#{tableName} WHERE ID = #{id}2. $를 이용한 경우 $를 이용하게 되면 파라미터값이 바뀔 때마다 새로운..
INSERT INTO SELECT테이블의 데이터를 복사하고자 하는 대상 테이블로 복사하는 기능을 가진 구문 - INSERT 문과의 차이점 INSERT문은 데이터를 한 행씩 밀어넣는다면 INSERT INTO SELECT문은 다른 테이블의 데이터들을 일괄로 한번에 삽입하는 경우 활용할 수 있다.-- 원본테이블과 복사 대상 테이블 스키마 동일할 경우INSERT INTO 복사 대상 테이블명(컬럼명)SELECT 컬럼명 FROM 원본테이블명WHERE 조건 ~-- EX)INSERT INTO COPY_TABLE(NAME)SELECT A_NAME FROM A_TABLE-- 원본 테이블 A보다 대상 테이블 B가 컬럼 수 적을 경우 활용법 INSERT INTO B SELECT 컬럼1, 컬럼2, 컬럼3 FROM A