정보보안공부

DBMS_day19 본문

데이터베이스

DBMS_day19

Steady_sp 2017. 8. 4. 11:05

# having 절은 group by를 통해 그룹 지은 값을 대상으로 조건을 걸 수 있다.

 

# group by로 그룹 지은 대상을 where를 가지고 조건을 사용할 수 없다.

 

# having 절은 반드시 group by 뒤에 와야 한다.

 

# select userID, sum(price * amount) '총 구매 액' from buyTBL group by userID;

 

# select groupName, sum( price * amount ) from buyTBL group by groupName;

-> 모든 구매 상품들 중에서 상품 분류 별로 토탈 구매액이 얼만지 알아내기 위한 쿼리이다.

 

# group by를 사용할때 with rollup을 붙여 select하면 총 합계를 계산해서 제일 마지막 행에 덧 붙여준다.

 

# with rollup을 통해 총 합계를 계산시키는 작업은 excel로 내보내기 진행할 때 주로 사용하게 된다.
-> 보고서 작성시 합계를 쉽게 계산 시켜낼 수 있기 때문에

 

# 쿼리를 여러개를 한번에 실행하면 위에서 부터 쿼리를 실행해 나가는데 중간에 에러가발생하면 그 밑에 쿼리는 전부 실행하지 않는다.

 

# Ignore을 사용하면 쿼리가 에러 나도 다음 쿼리를 실행한다.

 

# Duplicate : PK 설정을 통해 값이 중복되어져서 insert가 안 될때 원래 insert 하려고 했던 거 대신 다른 쿼리를 수행하게 만드는 것이다.

 

# 기본적으로 select 쿼리는 테이블 1개를 대상으로 조회를 진행할 수 있다.

 

# 근데 join문을 사용하면 여러 테이블을 대상으로 조회를 진행할 수 있다.

 

# select * from buyTBL inner join userTBL on buyTBL.userID = userTBL.userID;
-> buyTBL에 있는 userID 컬럼에 값과 userTBL에 있는 userID 컬럼에 값이 똑같은 것

끼리 하나의 행으로 합쳐서 모든 컬럼에 값을 출력하겠다.

 

# join을 사용하면 기본 적으로 INNER JOIN으로 사용되어 진다.

<having>

 

 

-> select userID, sum(price * amount) '총 구매 액' from buyTBL group by userID

-> userID가 중복된 것을 하나로한다 sum은 userID가 반복되는것의 합을 구한다.

-> having sum( price * amount ) > 1000 : having으로 조건을걸어서 총 구매합이 1000이상인것만 보여준다.

 

<with rollup>

 

 

-> with rollup 을 통해 총합을 맨밑에 행에 추가할 수 있다.

 

<insert into의 여러가지방법>

 

-> insert into testTBL values('200','채수빈',null);

-> insert into testTBL (id, userName) values ('200', '채수빈')

-> id에 200입력 userName에 채수빈을 입력한다.

-> insert into testTBL (userName, age) values ('장혁',33), ('수빈',24);

-> insert 한개의 쿼리에 장혁, 수빈 2가지 데이터 입력가능하다.

<update set 의 여러가지방법>

 

 

-> update buyTBL2 set price = price * 1.5;

-> update로 수정하는데 set 뒤에 조건을 따라 price에 1.5를 곱한다.

 

<delete from 의 여러가지방법>

 

 

-> delete from buyTBL2 where prodName = '책'

-> delete from 을 통해 원하는 컬럼의 데이터를 삭제한다.

-> delete from buyTBL2 처럼 뒤에 조건이없으면 테이블전체의 데이터를 삭제한다.

 

<add constraint>

 

-> alter table memberTBL add constraint PK_memberTBL primary key(userID);

-> primary key를 추가하기위한 쿼리이다.

 

<inner join>

 

-> inner join 을이용해 buyTBL과 userTBL을 하나로 합치는데 buyTBL의 userID와

userTBL의 userID가 같은행끼리 나열한다.

 

 

-> inner join을통해 두개의 테이블을 합치고 합친거에서 userID가 BBK인것만 where쿼리를 이용해 뽑아낸다.

<ignore>

 

-> memberTBL에 원래 BBK라는 userID의 항목이 있고 추가하려는 userID도 BBK인경우 쿼리전체를 작성한뒤 Ctrl + Shift + enter 로 전체 쿼리를 실행하는 경우 ignore을 쓰지않는다면 에러가 발생하여 서장훈, 한주협 행이 추가가 되지않지만 ignore을 통해 에러가 발생해도 무시하고 다음쿼리를 실행한다.

<duplicate>

 

-> duplicate 전에 BBK BB코 미쿡 이라는 행이있는데 이행은 PK가 설정된 userID인 BBK가 한개만 존재한다. 

 

 

-> insert를 통해 행을 삽입하는데 PK중복으로 인해 삽입하려는 것이 실패한다면 update쿼리를 통해 지정한 컬럼의 값을 변경하겠다라는 쿼리이다.

 

 

'데이터베이스' 카테고리의 다른 글

DBMS_day20  (0) 2017.08.07
DBMS_day18  (0) 2017.08.03
DBMS_day17  (0) 2017.08.02
DBMS_day16  (0) 2017.08.01
DBMS_day15  (0) 2017.08.01
Comments