SQL 8

[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

윈도우 함수_ 순위함수 RANK, DENSE_RANK, ROW_NUMBER

윈도우 순위 함수에는 RANK, DENSE_RANK, ROW_NUMBER 3가지가 있다. 순위함수 문법) 1. 순위함수() OVER(ODER BY컬럼) -- 컬럼의 순위 2. 순위함수() OVER(PARTITION BY 컬럼1 ODER BY 컬럼2) -- 컬럼1의 그룹별 컬럼2의 순위 순위함수는 OVER절과 함께 쓰이며 OVER구에는 반드시 ORDER BY절이 들어가야 한다. PARTITION 이 없는 경우에는 전체 행을 대상으로 하고, PARTITION이 존재하는 경우 해당 그룹의 행을 대상으로 한다. 1. RANK 함수 RANK함수에는 반드시 OVER구절에 ODER BY 가 들어가야 한다. ODER BY절의 컬럼을 기준으로 순위를 매기기 때문. 코드로 이해해보자. 다음과 같은 Employee Tabl..

Data Analytics 2022.12.16

[SQL] Window Function 윈도우 함수란?

SQL문의 윈도우 함수란 Group By 와 비슷하게 데이터를 그룹화 하여 집계한다. 하지만 Group By 는 집계된 결과만 보여주는 반면, 윈도우 함수는 기존 데이터에 집계된 값을 추가하여 나타낸다. 함수(컬럼) OVER(PARTITION BY 컬럼 ODER BY 컬럼) 함수: MIN(), MAX(), SUM(), COUNT() 등과 같은 기존 함수 또는 LAG(),LEAD(),RANK(), ROW_NUMBER() 등의 윈도우 함수를 쓸 수 있다. 기존 함수) 윈도우 함수) OVER: 윈도우 함수에서 꼭 들어가야 하며, OVER내부에 PARTITION BY 절과 ORDER BY 절이 들어감. PARTITION BY (생략가능) 전체 집합을 기준 컬럼에 따라 나눌지 결정 ORDER BY (생략가능) 정..

Data Analytics 2022.12.14

[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

SQL -JOIN 조인이란? (INNER / OUTER)

SQL -JOIN  한 데이터 베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것. 2개의 테이블에서 각각의 공통 값을 이용함으로써 필드를 조합하는 수단이 된다.  SQL - JOIN 의 표현. 1. 명시적 표현.: SELECT * FROM employeeINNER JOIN department ON employee.departmentID = department.departmentID 2. 암시적 표현: SELECT * FROM employee , departmentWHERE employee.departmentID = departmentID;  INNER JOIN (=JOIN) **일반적으로 사용하는 JOIN 은 INNER JOIN 임. 키 값이 있는 테이블..

Back-end/DataBase 2018.06.21

SQL 통계_ 서브쿼리 Sub Query_ Rank 순위매기기

Rank 순위 매기기 예제 쿼리 및 주석. SELECT * FROM ( SELECT c.prvn_name, c.distc_name, c.attrc_name, figure, (CASE @name WHEN distc_name THEN @rownum:=@rownum+1 ELSE @rownum:=1 END) as rank,//table b 에서 만든 name과 rownum값으로 rank 값 생성한다.기준이 되는 이름이 앞의 값과 같다면 +1 씩, 그렇지 않으면 1 대입(순위 초기화) @name:=distc_name as distc_nameFROM ( SELECT p.prvn_name, d.distc_name, a.attrc_name, ROUND(SUM(f.native_cnt)) as figureFROM prov..

Back-end/DataBase 2018.06.20

SQL - DDL 이란? / DCL 이란?

SQL (Structured Query Language) DDL 데이터 정의 언어 Data Definition Language.: 데이터를 수집하기 위한 구조 를 정의하는 언어. CREATE 생성. / DROP 삭제 / ALTER 변경. DBMS 에서 데이터베이스의 구조를 정의하기 위해 사용되는 SQL의 문법.스키마, 데이터베이스, 테이블, 뷰, 인덱스 등을 생성/ 변경/ 삭제 하는데 사용됨. CREATE 생성 CREATE DATABASE [database name]; CREATE TABLE [table name](컬럼명 1 데이터타입 제약조건, 컬럼명 2 데이터타입 제약조건, 컬럼명 3 데이터타입 제약조건, PRIMARY KEY(PK컬럼명) // 중복 허용or비허용 관여.); DROP 삭제 DROP D..

Back-end/DataBase 2018.06.14