Back-end/DataBase 31

[SQL] 테이블 병합 MARGE

테이블 마이그레이션 작업에 많이 사용되는 테이블 머지 SQL문을 알아보자. 테이블 마이그레이션 작업이란 테이블1의 모든 데이터를 테이블 2로 옮기는 작업이라고 생각하면 된다. 1차로는 INSERT로 모든 데이터를 새 테이블이 넣어준다. 문제는 데이터의 변동이 없다면 INSERT로 덮어칠 수 있지만 데이터의 변동이 있는 경우 선별적으로 변동된 데이터만 업데이트 시켜주어야 하는 경우가 발생한다. 이런 경우에는 어떤 데이터의 변동이 있었는지 체크한 후, 데이터의 변동이 있는 컬럼만 UPDATE시켜주고, 새로운 데이터가 추가되었다면 INSERT 해 주어야 한다. IF 조건문을 통해 나누어 작업할 수도 있겠지만 이러한 작업을 한번에 해 주는 것이 MERGE 문이다. 비교-삽입-갱신 과정을 한번에 처리하는 것이다...

Back-end/DataBase 2023.01.10

[MYSQL] REGEXP란? 정규표현식 / 무료테스트사이트

정규표현식이란 특정 규칙을 가진 문자열의 집합을 표현하는 형식언어이다. 문자열이 가진 규칙을 파악하여 해당 규칙을 만족하는 문자열만 추출할 수 있다. 검색, 필터링, 치환 등에 사용된다. mySQL에서는 REGEXP(Regular Expression)이라는 키워드로 정규표현식을 사용함. REGEXP SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 REGEXP '정규표현식'; 정규표현식 기본 문법(일부) ^ : 문자열의 시작 $ : 문자열의 끝 [aeiou] : aeiou 중 하나 ^[aeiou] : aeiou중 하나로 시작하는 문자 ^[aeiou].* : aeiou중 하나로 시작하는 문자열 [aeiou]$ : aeiou중 하나로 끝나는 문자 .*[aeiou]$ : aeiou중 하나로 끝나는 문자열..

Back-end/DataBase 2022.12.21

[DBMS] Orange 단축키 정리

자주 사용되는 Orange 단축키 ctrl + - : 주석처리(해당 커서 한 라인, 혹은 드래그 영역 주석 처리) ctrl + shift + - : 주석해제 ctrl + u : 드래그 영역 소문자 변경 ctrl + shift + u : 드래그 영역 대문자 변경 ctrl + enter : 현재 위치의 쿼리 실행 (세미콜론 구분자 까지의 ) ctrl + l : 드래그 영역 쿼리 실행 ctrl+n : DB connect , 계정접속 ctrl + t: SQL 탭추가 ctrl + r: 라인 자동 정리 *완벽하지 않음주의 ctrl + shift+ t : SQL 탭복사본 추가 art + r : 스크립트 저장 ctrl + r : 스크립트 불러오기 F5: 전체 쿼리 실행 F7: 세션 선택 F8: 실행한 쿼리 히스토리 목..

Back-end/DataBase 2022.03.02

[ORACLE] NVL 함수란? 쿼리 널처리

NVL함수 널처리 함수. data 값이 null 값일때 임의 설정값으로 처리해주기 NVL(대상데이터 , NULL일때 데이터) 값이 null 인 경우, 2번째 지정값을 출력하고 그렇지 않으면 대상데이터를 출력한다. 기본테이블 //DEFAULT SELECT no, name, salary from table 결과) no name salary 1 홍길동 200 2 김길동 null NVL 예시 //NVL SELECT no, name, NVL(salary,0) AS salary from table 결과) no name salary 1 홍길동 200 2 김길동 0 -> salary 컬럼의 null 값이 0으로 치환되었음. null이 아닌경우 그대로 출력. NVL2함수 마찬가지로 널처리 함수이지만 앞의 NVL함수는 n..

Back-end/DataBase 2022.03.02

[SQL] WITH 절이란?

WITH 절이란? 임시테이블 또는 가상 테이블의 개념. 반복되는 서브쿼리 블록을 하나의 WITH절 블록으로 만들어서 사용할 수 있다. 임시테이블을 만든다는 관점에서 VIEW와 비슷하지만 VIEW는 CREATE로 생성하여 DROP하기 전 까지 없어지지 않고 모든 테이블에서 사용하능 하지만 WITH절의 경우 한번 실행할 쿼리문 내 정의하여 해당 쿼리안에서만 실행된다. WITH 절 사용법 --WITH절 생성 WITH emp_with AS ( SELECT deptno, SUM(sal) AS sal FROM emp GROUP BY deptno ) --WITH절 사용 SELECT a.deptno, b.name, c.sal FROM emp_with a , dept b WHERE a.deptno = b.deptno 위..

Back-end/DataBase 2022.02.04

[DB2] WITH UR 이란?

WITH UR이란 ? DB2를 사용해보신 분이라면 쿼리문에 WITH UR이 붙어있는 구문을 본 적이 있을 것이다. UR이란, Isolation level 중 하나로 Uncommited Read 의 약어이다. 기본적으로 내가 조회하고자 하는 table의 다른 트랜잭션이 진행 중일 때는 동시 조회가 불가능하다. 다른 트랜잭션이 끝날 때 까지 대기하다가 commit 또는 rollback 처리 후에 조회가 가능하다. **그러나 WITH UR 옵션을 붙이면 다른 트랜잭션이 진행 중이라 하더라도 대기하지 않고 실시간으로 변경중인 데이터를 가지고 와서 조회할 수 있다.** 단, commit이 되지 않은 데이터를 가지고 오는 경우, 신뢰성을 보장 되지 않는다. 보통 단순 조회 SELECT시 사용한다. SELECT 외 ..

Back-end/DataBase 2021.11.16

[DBMS] MySQL dump / import. 디비 덤프 및 임포트 하기

MySQL dump / import. 디비 덤프 및 임포트 하기 1. Dump - 전체 스키마 dump $> mysqldump -u[사용자아이디] -p[패스워드] 데이터베이스명 > 경로 및 저장될 파일명.sql // ex) mysqldump -uroot -p1234 testdb > /root/backup/testdb.sql - 특정 테이블 dump $> mysqldump -u[사용자아이디] -p[패스워드] 데이터베이스명 테이블명 > 경로 및 저장될 파일명.sql // ex) mysqldump -uroot -p1234 testdb testtb > /root/backup/testdb_testtb.sql 2. Import - 전체 스키마 Import *이때 testdb라는 데이터베이스 스키마는 미리 생성해놓아..

Back-end/DataBase 2021.04.16

오라클 에러 ORA-01950: 테이블스페이스 권한이 없습니다.

오라클 에러 ORA-01950: 테이블스페이스 [some user]의 권한이 없습니다.에러 시 , 객체에 대한 권한은 있으나 테이블 스페이스에 할당량을 부여하는 권한까지 주어져야 CRUD가 가능하다.SYS계정으로 접속해서 권한을 부여해주어야함. alter user [USERNAME] default tablespace users quota unlimited on users;commit; 본인이 사용하고자 하는 특정유저 네임입력 해준후다시 해당 계정으로 접속하면 실행될것이다. 보통 ALTER 문은 자동 COMMIT이 되지만 혹시 모르니 커밋까지 해주자 ! !

Back-end/DataBase 2020.06.22

[ORACLE]계층형 쿼리 Hierarchical Query

계층형 쿼리 Hierarchical Query 평등한 관계가 아닌 계급적이고 수직적인 구조. 노드 각 품목이 하나의 노드가 되며 실제 테이블에서는 하나의 로우에 대응 부모 트리주고에서 상위노드. 자식 트리구조에서 하위노드 리프 자식노드가 없는 최하위 노드 레벨 트리구조에서 각각의 계층. 루트= 레벨1 계층형 쿼리작성 [DDL] CREATE TABLE BOM ( ITEM_ID INTEGER NOT NULL, -- 품목식별자 PARENT_ID INTEGER, -- 상위품목 식별자 ITEM_NAME VARCHAR2(20) NOT NULL, -- 품목이름 ITEM_QTY INTEGER, -- 품목 개수 PRIMARY KEY (ITEM_ID) ); 1. 일반 조인 사용한 계층형 쿼리. SELECT b1.item_..

Back-end/DataBase 2020.05.19