본문 바로가기

SQL

(31)
23. 기타 오브젝트(1) 1. 뷰(view) - 테이블처럼 조회 가능한 객체 - 물리적으로 실제 저장된 공간이 있지는 x - create view 권한을 가진자만이 생성 가능 1) 생성 create [or replace] view 뷰이름 as select ....; 2) 삭제 drop view 뷰이름; 3) 조회 select *   from dba_views  where owner = 'SCOTT'; ** DBA_VIEW 뷰를 사용하여 SYSTEM 뷰 찾을 수 있음 select *   from dba_views  where view_name like 'DBA_%TAB%'; ** dictionary view 종류 1) static dictionary view : 객체 현황 조회 - dba_XXX : 전체 객체 - all_XXX :..
22. 테이블의 내용 추가, 수정, 삭제 : DML(2) [ dml ] 1. insert 2. update ** 문법 단일 컬럼 수정) update 테이블명    set 수정할컬럼 = 수정할값         -- 서브쿼리 사용 가능  where 수정할조건;                        -- 서브쿼리 사용 가능  다중 컬럼 수정) update 테이블명    set 수정할컬럼1 = 수정할값1, 수정할컬럼2 = 수정할값2, ...  where 수정할조건;               update 테이블명    set (수정할컬럼1, 수정할컬럼2) = (select 수정할값1, 수정할값2                                from 테이블명                                 ...)  where 수정할조건;     ..
21. 테이블의 내용 추가, 수정, 삭제 : DML(1) [ DML ] - 데이터 수정 언어(구조 변경) - TCL(COMMIT, ROLLBACK)로 트랜잭션을 종료해야 함 1. INSERT - 행 단위 삽입 - ORACLE에서는 일반적으로 INSERT로 다중행 입력 불가(단, 서브쿼리 사용 시 동시에 입력 가능)  ** 문법 INSERT INTO 테이블명 VALUES(값1, 값2, ....);                   -- 테이블의 모든 컬럼의 값을 입력 시  INSERT INTO 테이블명(컬럼1, 컬럼2, ...) VALUES(값1, 값2, ....);   -- 테이블의 일부 컬럼의 값을 입력 시                                                             -- NOT NULL 선언된 컬럼은 반드시 입력..
20. 테이블 구조 생성, 변경, 제거 : DDL (2) 1. with문- 쿼리 내 임시테이블을 만드는 문법(해당 쿼리에서만 유효, 실제 저장되지는 X) - 가독성을 높이기 위해 사용 - select 문에서 주로 사용(dml에서도 사용 가능) ** 문법 with 임시테이블명(컬럼1, 컬럼2, ...) as select ....;      -- 저장하고자 하는 데이터 형태 정의 sql 문장...         -- 임시테이블을 사용하여 처리할 sql문 전달 예제) with std_test(name, grade, height) as (select name, grade, height   from student  where grade =4)     select * from std_test; ;  예제) student; exam_01을 조인하여 학번, 이름, 학년, 시..
19. 테이블 구조 생성, 변경, 제거 : DDL (1) [ SQL 종류 ] 1. DDL(Data Definition language) - 자동확정(auto commit) 1) CREATE : 객체(테이블) 생성 2) DROP : 객체(테이블) 삭제(구조를 삭제 -> 아예 없어짐) 3) ALTER : 객체(테이블) 변경(컬럼추가/컬럼삭제/데이터타입변경/사이즈변경,...) 4) TRUNCATE : 구조는 남기고 전체 데이터를 삭제(자동 저장됨, rollback 불가) 2. DML(Data Manipulation language) - rollback 또는 commit을 사용하여 명령어 수행 완료 처리 필수! 1) INSERT : 한 행씩 입력 2) DELETE : 한 행씩 삭제 3) UPDATE : 셀 단위로 데이터 변경 4) MERGE : 특정 테이블을 참고하여..
18. 서브쿼리(2) 1. 인라인 뷰 - from절 사용 서브쿼리 - 하나의 테이블처럼 사용 예제) emp에서 최소 급여자 출력 sol)select *   from emp e, (select deptno, min(sal) as min_sal                  from emp                 group by deptno) i  where e.deptno = i.deptno    and e.sal = i.min_sal;   예제) PROFESSOR 에서 학과별 평균급여보다 낮은 급여를 받는 교수의 이름, 학과명, 급여를      각 교수의 소속 학과의 평균급여와 함께 출력 sol)select deptno, avg(pay) as avg_pay    from professor  group by deptno;..
17. 서브쿼리(1) 1. 서브쿼리의 정의와 종류1). 정의 : 쿼리(메인쿼리) 안에 있는 쿼리(서브쿼리) 2). 종류 (1) 위치에 따라(실무적 의미)    select col1, (select ... from ...)  -- 스칼라 서브쿼리(하나의 컬럼처럼 출력을 원할 때 사용)      from tab1, (select ... from ...)  -- 인라인뷰(하나의 테이블처럼 사용하고 싶을 때 사용)     where col1 = (select ... from ...) -- (일반) 서브쿼리(상수를 대체하는 표현을 하고 싶을 때 사용)      (2) 문법에 따라(개념적 의미) - 단일행 서브쿼리 - 다중행 서브쿼리 - 다중컬럼 서브쿼리 - (상호)연관 서브쿼리    2. 단일행 서브쿼리- 서브쿼리 결과가 단 하나의 ..
16.조인(2)(natural,equi,outer,self) [ 조인 ]  분리된 두 테이블의 데이터를 동시에 한 쿼리로 출력하거나, 다른 테이블 데이터를 참조하는 조건이 필요할 경우 사용  oracle 표준과 ansi 표준 존재  oracle 표준은 조인에 필요한 테이블을 from절에 컴마로 나열         조인조건은 일반조건과 마찬가지로 where절에 나열  ansi 표준은 조인에 필요한 테이블과 조인 형태를 from절 기술(컴마 전달 불가)         조인조건은 일반조건과 분리되어 on/using절에 나열 ** 조인 시 주의사항  - 테이블 별칭 정의는 from절에 as 없이 사용  - 테이블 별칭이 정의된 경우 컬럼 앞의 컬럼 구분자로 테이블명 전달 불가 select emp.deptno   from emp e, dept d;   -- 에러    se..