목록콤퓨타 왕기초/SQLD/JDBC/Oracle DB (42)
파게로그
subquery SELECT문 내에 다시 SELECT문을 사용하는 SQL문 가상의 테이블을 만드는 효과를 얻을 수 있음 inline view: FROM구에 SELECT문 사용 scala subquery: SELECT문에 subquery 사용(한 행과 한 칼럼만 반환) subquery: WHERE구에 SELECT문 사용 단일 행 서브쿼리 단 하나의 행만 반환 비교연산자(=, =) 사용 다중 행 서브쿼리 여러 개의 행을 반환 다중 행 비교연산자(IN, ANY, ALL, EXISTS) 사용 IN(subquery) - main query의 비교 조건이 subquery의 결과 중 하나만 동일하면 참 ALL(subquery) - main query와 subquery의 결과가 모두 동일하면 참 - < ALL: 최솟값..
CONNECT BY SELECT MAX(LEVEL) FROM EMP START WITH MGR IS NULL CONNECT BY PRIOR EMPNO = MGR; 트리 구조로 질의를 수행하는 것 root 노드로부터 하위 노드의 질의를 시행 MAX(LEVEL)을 통해 최대 계층 수(leaf node의 계층값)를 구할 수 있음 START WITH: 시작 조건 CONNECT BY PRIOR: 조인 조건 EMPNO ENAME MGR 1000 '철수' NULL 1001 '영희' 1000 1002 '민수' 1000 1003 '은지' 1001 1004 '나현' 1002 1005 '동원' 1003 1006 '지아' 1003 SELECT LEVEL, LPAD(' ', 4 * (LEVEL-1)) || EMPNO, MGR,..
wisoft.tistory.com/entry/database-sql-join-method JOIN 여러 개의 릴레이션을 사용해서 새로운 릴레이션을 만드는 과정 cartesian product를 바탕으로 생각하면 쉬움 INNER JOIN 공통 컬럼의 값이 같은 것을 추출 EQUI JOIN - 공통 컬럼의 동등 비교 - explicit notation SELECT * FROM EMP INNER JOIN DEPT ON WHERE EMP.deptno = DEPT.deptno; - implicit notation SELECT * FROM EMP, DEPT WHERE EMP.deptno = DEPT.deptno; NATURAL JOIN - EQUI JOIN 결과에서 동일 칼럼의 중복을 제거 - explicit no..
COMMIT DML로 변경한 데이터를 DB에 반영 변경 전 이전 데이터는 잃어버리게 됨 다른 모든 DB 사용자는 변경된 데이터를 볼 수 있음 COMMIT이 완료되면 DB 변경으로 인한 LOCK이 해제됨 COMMIT이 완료되면 다른 모든 DB 사용자는 변경된 데이터를 조작할 수 있음 COMMIT을 실행하면 하나의 트랜잭션 과정을 종료 Oracle DB는 암시적 트랜잭션 관리를 함. Oracle DB로 트랜잭션 시작, 종료는 사용자의 COMMIT 또는 ROLLBACK AUTO COMMIT SQL Plus를 정상적으로 종료하면 자동으로 commit DDL, DCL 사용 시 자동으로 commit SQL Plus에서 SET AUTOCOMMIT ON;을 실행하면 자동으로 commit ROLLBACK 데이터에 대한 ..
GRANT GRANT privileges ON object TO user; GRANT SELECT, INSERT, UPDATE ON EMP TO BERRY WITH GRANT OPTION; privileges(권한) SELECT 지정된 테이블에 대한 SELECT 권한 INSERT 지정된 테이블에 대한 INSERT 권한 UPDATE 지정된 테이블에 대한 UPDATE 권한 DELETE 지정된 테이블에 대한 DELETE 권한 REFERENCES 지정된 테이블을 참조하는 제약조건을 생성할 수 있는 권한 ALTER 지정된 테이블을 수정할 수 있는 권한 INDEX 지정된 테이블에 대해서 인덱스를 생성할 수 있는 권한 ALL 지정된 테이블에 대한 모든 권한 WITH GRANT OPTION WITH GRANT OPTI..
WITH 구문 WITH T AS (SELECT * FROM EMP WHERE DEPTNO=30) SELECT * FROM T; subquery를 사용해서 임시 테이블이나 뷰처럼 사용할 수 있는 구문 subquery block에 별칭을 지정할 수 있음 optimizer는 SQL을 inline view나 임시 테이블로 판단
ROWNUM SELECT * FROM EMP WHERE ROWNUM