개인공부 97

mysql Group by 와 Having

Group by는 특정 컬럼 이름을 지정 해주면 그 컬럼의 유니크한 값에 따라서 데이터를 그룹짓고, 중복된 열은 제거 됩니다. group by는 보통 집합 함수 (avg,sum,count등을 말한다.)와 같이 쓰이며 다음과 같은 형태를 지닙니다. MySQL에서 유형별로 갯수를 가져오고 싶은데, 단순히 COUNT 함수로 데이터를 조회하면 전체 갯수만을 가져옵니다. 이렇게 유형별로 갯수를 알고 싶을 때는 컬럼에 데이터를 그룹화 할 수 있는 GROUP BY를 사용하는 것입니다. GROUP BY를 사용할 때는 두가지를 기억해야 합니다. 특정 컬럼을 그룹화 하는 GROUP BY 특정 컬럼을 그룹화한 결과에 조건을 거는 HAVING where랑 having을 헷갈리는 경우가 많은데 where는 그룹화 하기 전이고 ..

개인공부 2021.06.16

[SQL] 두 테이블의 값 비교, 한쪽에 없는 것 추출방법은?

create table tableA ( EMPNO int) create table tableB ( EMPNO int) insert into tableA values (1) insert into tableA values (2) insert into tableA values (3) insert into tableA values (4) insert into tableA values (5) insert into tableB values (1) insert into tableB values (2) insert into tableB values (3) insert into tableB values (4) insert into tableB values (7) -- A 테이블에만 존재하는 항목 select A.empn..

개인공부 2021.06.15

서브쿼리

서브쿼리란 select문 안에 또 다시 select문이 있는 쿼리 이다. 서브쿼리는 위치에 따라 명칭이 다른데 from절에서 사용하는 인라인뷰, select문에 사용하는 스칼라 서브쿼리, 일반적으로 where절에 사용하는 것을 서브쿼리라고 한다. 1.서브쿼리 where절에 사용하는 서브쿼리 select * from emptest where empno = (select empno from emptest where ename = 'test1'); 2.인라인 뷰 from절에 사용하는 서브쿼리 select * from (select rownum num, empno, ename from emptest) where num = 4; 3.스칼라 서브쿼리 select문에 사용하는 서브쿼리 select empno as "..

개인공부 2021.06.15

Foreign Key : 외래키

외래키가 하나(또는 복수) 다른 테이블의 기본 키 필드를 가리키는 데이터의 참조 무결성을 확인하기 위하여 사용된다. 즉, 허용된 데이터 값만 데이터베이스에 저장되는 것이다. 외래키 예제 예를 들어, 만일 두 개의 테이블이 있다고 하자 하나는 customer테이블에서 모든 고객 데이터가 기록되는 것이고, 또 하나는 orders 테이블에서 고객의 주문이 모두 기록되는 것이다. 그리고 하나의 제약이 있으며, 모든 주문 데이터 고객이 customer테이블에 존재한다. 여기서 orders 테이블에 외래키를 설정하고 외래키가 customer 테이블의 기본키가 된다. 그러면 orders테이블에 있는 고객이 모든 customer테이블에 존재하는 것을 보장 할 수 있다. 즉, orders 테이블은 모든 customer ..

개인공부 2021.06.15

mysql ifnull

만약 salary라는 컬럼이있다 컬럼의 값이 null일 경우, 0으로 결과값을 대체하는 쿼리를 만들어 보면 만약 컬럼값이 null값이라면 0을 출력하고 아니면 salary값을 가져와야 한다. 그러면 case문을 쓸 수도 있다 case when 조건 then 결과 ,..., else 결과 end 이런식이다. 여기에서는 조건이 is null로 걸렸는데 만약 레코드의 salary 필드가 null이라면 0을 가져오는거고 아니면 salary값을 가지고 온다 이것을 더 간단하게 하는 방법이 있는데 ifnull이다 사용방법은 ifnull(expr1,expr2); 만약에 expr1이 null이라면, expr2를 리턴한다. 그렇지 않으면 expr1을 리턴한다.

개인공부 2021.06.14

배치

배치 애플리케이션의 조건 대용량 데이터 - 배치 어플리케이션은 대용량의 데이터를 가져오거나 전달하거나 계산하는 등의 처리를 할 수 있어야한다 자동화 - 배치 어플리케이션은 심각한 문제 해결을 제외 하고는 사용자 개입 없이 실행 되어야 합니다. 견고성 - 배치 어플리케이션은 잘못된 데이터를 충돌/중단 없이 처리 할 수 있어야 한다 신뢰성 - 무엇이 잘못되었는지 추적 할 수 있어야 한다. (로깅, 알림) 성능 - 지정한 시간 안에 처리를 완료하거나 동시에 실행되는 다른 어플리케이션을 방해하지 않도록 수행되어야 한다 배치와 스케쥴러의 차이 spring Batch vs Quartz(스케쥴러의 대표적 프레임워크) 스케쥴링이란? 매시간/지정한 시간에 지정한 동작을 수행하는것 (!스프링배치는 스케쥴링 프레임워크가 아..

개인공부 2021.06.10