DBMS27 [MySql] SELECT 결과 UPDATE / NULL인 경우 mybatis에서 0 혹은 특정 값 UPDATE 시키기 SELECT 한 결과를 UPDATE 할 수 있는데, 두가지 방법이 있다. 1. WHERE절 이용 WHERE 절의 조건이 일치하는 t1의 COLUMN1이 모두 t2테이블의 COLUMN2로 업데이트 된다. UPDATE [테이블명1] as t1 , [테이블명2] as t2 SET t1.COLUMN1 = t2.COLUMN2 WHERE t1.COLUMN3 = t2.COLUMN4 ; 2. JOIN 이용 JOIN절에 SELECT구문을 이용해 조회해온 결과를 UPDATE한다. UPDATE [테이블1] INNER JOIN ( SELECT COLUMN2 FROM [테이블2] WHERE ... ) AS [테이블2] ON [테이블1].COLUMN3 = [테이블2].COLUMN4 SET [테이블1].COLUMN1 = [테이블2.. 2022. 8. 11. [MySql] 값이 있으면 INSERT, 없으면 UPDATE / PK 중복시 업데이트 구문 / ON DUPLICATE KEY UPDATE 서칭중 MySql 속도를 위한 메모를 봤는데 ON DUPLICATE KEY UPDATE 사용을 권장한다. : 데이터 삽입 시, PK나 UNIQUE KEY가 중복인 경우 UPDATE 하는 구문(중복이 아니면 INSERT) Oracle의 MERGE INTO와 유사하게 DB에 해당row 가 없으면 INSERT, 있으면 UPDATE 와 같이 역할을 나눌 수 있다. SELECT 구문을 이용해서 코드가 있으면 업데이트 하고 없으면 인서트 하는 코드ㄴㄴ - 서버에 불필요하게 왔다갔다 하지 않아도 된다. 구문 INSERT INTO member (name, age, cnt) VALUES ('kim', 26, 0) ON DUPLICATE KEY UPDATE age = age -1, cnt = cnt + 1; ON DUPL.. 2022. 7. 5. [MSSQL] 문자열 연결 / CONCAT + 연산자를 사용해서 문자열을 연결해왔는데,다른 타입일 경우 형 변환(CONVERT) 해주지 않으면 오류가 난다. 그래서 간편하게 쓰기 좋은게 CONCAT CONCAT이 함수는 둘 이상의 문자열 값을 엔드투엔드 방식으로 연결하거나 조인한 결과 문자열을 반환합니다. 둘 이상의 입력 값이 필요하며, 그렇지 않은 경우 CONCAT에서 오류가 발생합니다. CONCAT는 병합하기 전에 모든 인수를 문자열 형식으로 암시적으로 변환합니다. https://docs.microsoft.com/ko-kr/sql/t-sql/functions/concat-transact-sql?view=sql-server-ver15 CONCAT(Transact-SQL) - SQL ServerCONCAT(Transact-SQL)docs... 2022. 1. 20. [Oracle] 소수점 이하 버리기/ TRUNC 함수 사용법 기능 소수점 이하를 절사하는 함수 (ROUND와는 다르게 반올림 없이 지정한 길이만큼 끊어버림.) 사용법 TRUNC(숫자) TRUNC('값', '소수점 절사 위치') 예제 1 - 소수점 절사 위치 지정 SELECT TRUNC(1234.567 , 2) FROM DUAL => 결과 : 1234.56 ==> 소수점 이후 2자리 까지 자르라는 뜻. 예제 2 - 소수점 절사 위치 생략 SELECT TRUNC(1234.567) FROM DUAL => 결과 : 1234 ==> 소수점 부분 모두 절사됨. 사용법 TRUNC(날짜) TRUNC('값', '소수점 절사 위치') 옵션이 없는경우 시간을 절사 하고, 옵션 입력시 옵션에 맞게 절사한다. [옵션] 'YEAR' : 그해 1월1일 'MONTH' : 그달 1일 'DAY'.. 2021. 12. 8. [Oracle] Oracle NLS Parameter NLS(National Language Support)언어 지원과 관련된 파라미터를 지칭 조회하는 방법SELECT * FROM NLS_DATABASE_PARAMETERS 구조각 파라미터가 의미하는 바가 있고, VALUE에는 해당 파라미터가 어떤 형태로 지정되어 있는지 확인할 수 있다.NLS_DATE_FORMAT 으로 예를 들어보자. 예시 ) NLS_DATE_FORMATPARAMETERVALUENLS_DATE_FORMATDD-MON-RR NLS_DATE_FORMAT은 현재 데이터베이스 시스템의 기본 날짜 입출력 형태를 지정하는 파라미터 이다.TO_CHAR, TO_DATE 함수의 기본 DATE FORMAT이다. 1. 테스트 테이블을 만들어서 데이터를 INSERT 해보며 테스트 해봤다. .. 2021. 12. 8. [Oracle] 데이터 Export / 데이터 복사 / SQL Developer 툴 SQL Developer 툴을 이용한 데이터 Export 개요 : 운영DB의 데이터를 => 테스트DB로 복사 1. 기존 DB에서 Export를 수행한 후 2. 생성된 파일을 신규 DB 서버로 복사하고, Import 하는 방식의 데이터 마이그레이션. 한번에 모든 테이블과 데이터를 복사 생성할 방법으로는 적합하지 않지만, 일단 실무에서 있었던 일은 유지보수를 하며 1개의 테이블을 새로 생성했고, 테스트 DB에도 동일하게 적용해야 하는 상황이었음! 테스트 DB에 테이블은 있는데 데이터가 없는경우, 툴을 이용해 데이터 복사 쿼리를 만들어서 테스트 DB에서 실행. 1. 개발 DB에 운영DB와 동일한 구조의 테이블을 만든다. 2. 개발 DB에 데이터를 넣는 작업 : 운영 DB에서 복사하고자 하는 테이블에 대해 조회.. 2021. 7. 30. 이전 1 2 3 4 5 다음