정보보안공부
DBMS_day18 본문
# 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으로 사용되어 진다.
# INNER JOIN외에 다양한 JOIN수업
<sqlDB만들기>
-> 만들려는 sqlDB를 workbench로 작성한다.
-> 먼저 데이터베이스를 만들고 그안에 테이블(각각의 컬럼이름, 자료형) 을 만들고
-> 만든테이블안에 insert into를 이용해 작성하려는 데이터를 입력
-> 만든 userTBL을 select쿼리 진행하는데 조건에 따라 select할수 있다.
-> where 조건으로 원하는 컬럼의 값을 찾을수 있다
-> where 안에 and 와 or 을 이용해 여러가지 조건을 사용할 수 있다.
-> 원하는 컬럼 addr을 where을 통해 select로 볼수있다.
-> or연산자는 in(원하는 데이터) 랑 같은 의미이다.
-> like '_용필' 하면 아무글씨가오고용필 이 들어간 단어를 출력한다.
-> like '조%' 하면 조뒤에 어떤글씨가 오거나 안오거나 앞에 조가 있으면 출력한다.
-> buyTBL2를 복사할때 create table buyTBL2 ( select * from buyTBL ); 로 복사가능
-> buyTBL3을 복사할때는 create table buyTBL3 ( select 원하는컬럼 from buyTBL);
-> select 쿼리에 group by를 사용하여 userID가 같은 행을 하나만 보여주는데 맨위에 행만 보여지게한다.
-> select 쿼리에 group by에 sum을 하면 userID가 같은 행중 원하는 부분 다더한다.
-> 같은방식으로 avg는 평균 min은 최소, max는 최대이다.
-> count쿼리로 userID가 중복된 행의 갯수를 카운트해준다.
-> select쿼리로 보여질때 보려는컬럼 num을입력하고 '원하는 컬럼의 이름'을 쓰면
-> 테이블이 보여질때 ' ' 안에 입력한 컬럼의 이름으로 보여진다.
'데이터베이스' 카테고리의 다른 글
DBMS_day20 (0) | 2017.08.07 |
---|---|
DBMS_day19 (0) | 2017.08.04 |
DBMS_day17 (0) | 2017.08.02 |
DBMS_day16 (0) | 2017.08.01 |
DBMS_day15 (0) | 2017.08.01 |