목록공부/Sql (8)
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. $를 이용한 경우 $를 이용하게 되면 파라미터값이 바뀔 때마다 새로운..
- NULLS FIRST : NULL 인 값이 먼저 보인다ex) SELECT * FROM TEST ORDER BY NAME NULLS FIRSTIDAGEGENDERNAME125여NULL217남 NULL 332여영희 - NULLS LAST : NULL 값을 나중에 보인다 ex) SELECT * FROM TEST ORDER BY NAME NULLS LAST IDAGEGENDERNAME332여영희 1 25 여 NULL 2 17 남 NULL https://www.postgresdba.com/bbs/board.php?bo_table=B10&wr_id=12 SQL > ORDER BY 절의 NULLS FIRST 과 NULL LAST - All About PostgreSQL" data-og-descr..
데이터 유형이 'text' 인 컬럼을 SELECT * FROM TEST_TABLE ORDER BY NAME; 이렇게 정렬해주었는데 알파벳 순서로 정렬되지 않았다 결과창을 보니 대문자 알파벳 순 → 소문자 알파벳 순으로 정렬되어있었다 찾아보니 Postgresql 은 기본적으로 대소문자를 구분해서 정렬한다고한다 대소문자 구분없이 정렬하려면 정렬할때 LOWER 함수를 사용하면 된다SELECT * FROM TEST_TABLE ORDER BY LOWER(NAME);
Cause: io.crate.shade.org.postgresql.util.PSQLException: ERROR: CircuitBreakingException: [query] Data too large, data for [collect: 0] would be [19327533711/18gb], which is larger than the limit of [19327352832/18gb]; uncategorized SQLException for SQL []; SQL state [XX000]; error code [0]; ERROR: CircuitBreakingException: [query] Data too large, data for [collect: 0] would be [19327533711/18gb..
foreach문 (C.BRANCH LIKE CONCAT('%',TRIM('${item}'),'%') OR C.PHONE LIKE CONCAT('%',TRIM('${item}'),'%')) mybatis foreach문 지원 태그- collection : 전달받은 인자. 배열(Array) 혹은 리스트(List) 형태만 가능ex)배열 예시String[] testArray={"1", "2", "3"} - 배열 파라미터를 Map을 통해 넘겼을 경우1. DAOpublic ListgetTestList(String[] userArray) { HashMap map =new HashMap(); map.put("testArray",testArray); return sqlSession.selectList("..
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