본문 바로가기

728x90
반응형

SQL

(7)
mySQL Connector, Mybatis 설정 [Mybatis] -자바에서 제공하는 JDBC를 보다 편리하게 사용할 수 있도록 해주는 프레임워크 -SQL 쿼리문을 코드 내에서 쓰지 않고 Mapper 파일에서 관리함으로써 코드와 SQL 쿼리를 분리 -SQL 쿼리 수정 시 코드를 직접 수정하지 않아도 돼 유지보수 시 안정성을 높임 -코드를 간소화하여 가시성을 높여줌 mysql mysql-connector-java 5.1.39 org.mybatis mybatis 3.2.8 org.mybatis mybatis-spring 1.2.2 org.springframework spring-jdbc ${org.springframework-version} org.apache.commons commons-dbcp2 2.7.0 org.springframework sprin..
[MySQL] CONCAT & GROUP_CONCAT -- NAME = 아욘, NUMBER = 4400 SELECT CONCAT(NAME,'/',NUMBER) AS INFO FROM TABLE -- CONCAT 결과 : 아욘/4400 -- NAME = 김아욘 -- 아욘 -- 김 -- 아욘김 SELECT GROUP_CONCAT(DISTINCT NAME) AS KORNAME --DISTINCT : 중복제거 (안쓰면 중복된 결과도 모두 나옴) FROM TABLE -- GROUP_CONCAT 결과 : 김아욘,아욘,김,아욘김
[SQL] DELETE, TRUNCATE, DROP 차이점 1. DELETE -WHERE절을 사용하여 테이블에 있는 데이터를 하나하나 선택하여 제거하는 방식 -WHERE절을 사용하지 않고 테이블의 모든 데이터를 삭제하더라도, 내부적으로는 한줄 한줄 제거하는 과정을 거침 -처리속도가 늦고, 퍼포먼스에 좋지 않은 영향을 줄 수 있음 -원하는 데이터만 골라서 삭제할 때에는 DELETE 사용 / 전체 데이터 삭제할 때에는 TRUNCATE 사용 -데이터를 삭제하더라도 데이터가 담겨있던 Storage는 Release 되지 않는다. -DELETE 된 데이터는 COMMIT 명령어를 사용하기 전이라면 ROLLBACK 명령어를 통해 되돌릴 수 있음 DELETE FROM dbTable WHERE 조건; ROLLBACK; COMMIT; 2. TRUNCATE -전체 데이터를 한번에 삭..
[SQL] INSERT, UPDATE, DELETE INSERT문 INSERT INTO Customers ( CustomerName, Address, City, PostalCode, Country ) Values ( "Hekkan Burger", "Gateveien 15", "Sandnes", "4306", "Norway" ); ​ UPDATE문 // City 열 값을 "Oslo"로 설정하되 Country 열 값이 "Norway"인 경우에만 update UPDATE Customers SET City = "Oslo"; WHERE Country = "Norway"; ​ DELETE문 // 값이 "Norway"인 Customers 테이블에서 Country를 모두 삭제 DELETE FROM Customers WHERE Country = "Norway"; ​ Pr..
[MySQL] LEFT JOIN, RIGHT JOIN, INNER JOIN, UNION LEFT JOIN 연산자 - 왼쪽 테이블을 중심으로 오른쪽의 테이블을 매치 - 왼쪽 테이블의 한개의 레코드에 여러개의 오른쪽 테이블 레코드가 일치할 경우 해당 왼쪽 레코드를 여러번 표시 - 왼쪽 테이블은 무조건 표시하고, 매치되는 레코드가 오른쪽 테이블에 없으면 NULL을 표시 SELECT * FROM table1 (왼쪽테이블) LEFT JOIN table2 (오른쪽테이블) ON table1.column_name = table2.column_name; ​ ​ RIGHT JOIN 연산자 - 오른쪽 테이블을 중심으로 왼쪽 테이블을 매치 - 오른쪽 테이블의 한개의 레코드에 여러개의 왼쪽 레코드가 일치할 경우 해당 오른쪽 레코드를 여러번 표시 - 오른쪽 테이블은 무조건 표시하고, 매치되는 레코드가 왼쪽 테이블에..
[MyBatis] 동적 태그 if - iBatis 의 isEqual, isNotEqaul, isNull, isNotNull, isEmpty, isNotEmpty 를 하나로 WHERE 1=1 AND EMP_ID = #{empId} ※ if문 사용 시 주의점 // 정상 작동하지 않음 // 정상 작동 choose, when otherwise - case문 과 같이 케이스에 따라 조건이 달라질 때 WHERE 1=1 AND TITLE LIKE #{title} AND CONTENT LIKE #{content} AND DEL_YN = 'N' where, trim - iBatis의 dynamic과 같이 조건에 따라 where절을 추가할 때 사용 SELECT COUNT(*) FROM MST_USER AND USER_ID = #{id} AND USE..
[MyBatis] INSERT시 키 값 바로 가져오는 방법(auto_increment) insert id : Mapper에서 호출할 쿼리ID parameterType : 파라미터 VO useGeneratedKeys : 자동생성키 (default는 'false') keyProperty : 리턴 VO getter keyColumn : 가져올 key의 Column명(SQL) 위와 같이 설정하면 key Column이 auto_increment Column인 경우 증가된 값이 keyProperty에 바로 담겨서 INSERT INTO에 선언하지 않아도 INSERT 가능! 적용: https://ayon.tistory.com/12

728x90
반응형