DB 102

[SQL] JOIN(조인)

* 열은(칼럼은) SELECT에서 구한다. 여기서 말하는 모든 JOIN은 행을 말한다! 1. 등가(EQUI) 조인 ​ (1) 등가 조인(INNER JOIN) --EMP와 DEPT 테이블을 DEPTNO칼럼으로 SELECT * FROM EMP, DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO; --EMP와 DEPT 테이블을 INNER JOING, 같은게 여러개있다면 여러 조합으로 JOIN SELECT * FROM EMP INNER JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO; - inner join할때 select* 하면, on에 쓰인 조건 열 2개가 모두 출력된다. - 겹치는것이 여러개 있다면 각 조합별로 모두 출력한다. 예를들어 emp.dptno에 1이 2개, dept..

DB/SQL 2020.07.11

[SQL] DCL

권한부여 GRANT (권한리스트) ON (테이블) TO (사용자) (WITH GRATN OPTION) GRANT SELECT, INSERT, DELETE ON R TO KIM WITH GRANT OPTION; -- limbest 사용자에게 emp테이블에 대해서 다음과 같은 권한을 부여한다. grant select, insert, update, delete on emp to limbest; with grant option --권한을 부여할 수 있는 권한을 부여 취소 REVOKE (GRANT OPTION FOR) (권한리스트) ON (개체) FROM 사용자 (CASCADE) *GRANT OPTION FOR : 옵션을 붙이면 부여할수있는 권한만 삭제. 안붙이면 권한&부여권한 모두 삭제 REVOKE GRANT ..

DB/SQL 2020.07.11

[SQL]계층형 쿼리(START WITH, CONNECT BY)

SELECT LPAD(' ',2*(LEVEL-1)) || item_name item_names, item_id, parent_id FROM bom START WITH parent_id is null connect by prior item_id = parent_id; 1. LPAD 공백을 만들어주기 위한 함수. 빈칸(' ')을 LEVEL만큼 왼쪽에 넣어줌으로서 들여쓰기시켜줌 2. start with (조건) 루트노드를 지정하는것. 조건을 만족하는 모든 행이 루트 노드가 된다. 3. connect by (조건) prior (자식노드) = (부모노드) 로서 계층을 만들어 주는것

DB/SQL 2020.07.11

[SQL]having조건의 사용

1. having의 이용 (where과 차이) having은 group by와 함께 사용된다. having조건과 where조건의 차이는 아래와 같다 having - where group by 절 뒤에 기술 - from 뒤에 기술 group by 그룹함수를 포함해야함 그룹함수 그룹함수가 포함된 조건은 에러가 발생 에러발생 ( * 단 group by에 기술된 칼럼에 대한 일반조건은 가능하지만 보통 쓰지않음) 일반조건 일반조건가능 2. 문제 이름이 두번이상 쓰인 이름과 그 횟수를 표현 하라 (1) 코드 group by로 묶인 name의 count를 해야하므로 having을 쓴다 SELECT NAME,COUNT(NAME) FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME)>=..

DB/SQL 2020.07.07

[SQL]LEFT JOIN, RIGHT JOIN #LEFT JOIN #RIGHT JOIN

설명 1. 기본테이블 demo_people(왼), demo_property(오) 2. left join 쿼리문 select name, phone, selling from demo_people left join eomo_property on demo_people.pid = demo_property.pid 3. 결과 예제 1. 문제 위와같은 테이블에서 ANIMAL_OUTS에는 있지만, ANIMAL_INS 에는 없는 ANIMAL의 아이디를 출력하라. 2. 풀이 FROM ANIMAL_INS AS INS RIGHT JOIN ANIMAL_OUTS AS OUTS ON INS.ANIMAL_ID=OUTS.ANIMAL_ID 을 통해 ANIMAL_OUTS에 있는 모든 개체를 출력한다. 이때 OUTS에는 있지만, INS에는 ..

DB/SQL 2020.07.07