본문 바로가기
  • [성공하는 개발자] - Developer

DataBase50

[Oracle] 오라클 INSERT 할 때 중복 제외하는 방법 오라클에서 INSERT 할 때 PK가 중복되어서 오류가 발생하는 경우가 많다. 이럴 경우 중복을 무시하거나 중복을 제외하고 INSERT를 하거나, 미리 중복을 체크하여 INSERT가 되지 않도록 해야 한다. ORA-00001 : 유일성 제약조건에 위배됩니다 (unique constraint violated) 아래의 3가지 방법을 사용하여 INSERT 할 때 중복을 제외하고 데이터를 입력하면 오류를 방지할 수 있다. ​ NOT EXISTS 연산자를 사용하여 중복 제외 MERGE 절을 사용하여 중복 제외 PRODEDURE를 사용하여 중복 입력 시 예외처리 NOT EXISTS 연산자를 사용하여 중복 제외 INSERT INTO emp (empno, ename, job, hiredate) SELECT 8000 ,.. 2022. 11. 2.
[Oracle] 오라클 MERGE INTO 사용법 & 노하우 정리 오라클에서 쿼리문을 작성하다 보면, 하나의 쿼리문으로 INSERT, UPDATE, DELETE 작업을 해야 하는 경우가 있다. 이럴 때에는 MERGE 문을 사용하면 간단하게 쿼리문을 작성할 수 있다. 오라클 9i부터 MERGE 문을 사용할 수 있으며, DELETE 절은 10g부터 사용할 수 있다. 오라클 MERGE 문 ■ 단일 테이블 사용법 (DUAL) MERGE INTO emp a USING dual ON (a.empno = 7788) WHEN MATCHED THEN UPDATE SET a.deptno = 20 WHEN NOT MATCHED THEN INSERT (a.empno, a.ename, a.deptno) VALUES (7788, 'SCOTT', 20); 단일(자신의) 테이블에 MERGE 문은 .. 2022. 11. 1.
[MSSQL] 중복 제거 방법 (DISTINCT) SQL Server에서 중복된 행을 제거하고 한 번만 표시하고 싶다면 DISTINCT를 사용하면 된다. 중복 행을 제거하는 방법은 DISTINCT 사용하는 방법 외에도 GROUP BY 절을 사용해서 중복 행을 제거할 수 있다. GROUP BY를 사용하면 속도가 조금 빠르다는 얘기가 있으나 큰 차이를 느끼지 못했다. GROUP BY를 사용해야 할 특별한 경우가 아니면 중복 행을 제거할 때는 DISTINCT를 사용할 것을 권장한다. DISTINCT를 사용해도 중복을 제거한 결과가 오름차순으로 정렬되어서 조회된다. (SQL Server 2019) ■ DISTINCT를 사용하여 중복 제거 SELECT DISTINCT deptno, job FROM emp WHERE deptno in (20, 30) 중복 행이 제.. 2022. 10. 28.
[MSSQL] 문자열 합치기 (CONCAT, +) SQL Server에서 문자열을 합칠 때는 CONCAT 함수와 더하기(+) 연산자를 사용한다. 문자열을 합칠 때는 되도록이면 CONCAT 함수를 사용할 것을 권장하지만, 더하기 연산자를 사용하는 것이 더 익숙하기 때문에 더 많이 사용하는 듯하다. 더하기 연산자를 사용할 때는 주의사항이 있으니 아래를 참고하기 바란다. ■ CONCAT 함수 사용하여 문자열 합치기 SELECT CONCAT('SQL', 'Server', '2019') AS str1 , CONCAT(2021, 12, 31, 23, 59, 59) AS str2 CONCAT 함수는 많은 데이터베이스에서 사용 가능한 ANSI SQL 함수이며, CONCAT 함수에 입력된 값은 문자형으로 변환 후 합치는 작업이 이뤄진다. 숫자와 문자가 함께 입력되어도 .. 2022. 7. 28.