본문 바로가기

Study/class note

(247)
sql중급 / 서브쿼리를 사용한 update, delete, merge ㅁ복습 SCOTT의 월급을 6700으로 수정하시오 update emp set sal = 6700 where ename = 'SCOTT'; 직업이 SALESMAN인 사원들의 커미션을 모두 5000으로 수정하시오 update emp set comm = 5000 where job = 'SALESMAN'; ALLEN과 직업이 같은 사원들의 이름과 직업을 출력하는데 ALLEN은 제외하고 출력하시오 select ename, job from emp where job = (select job from emp where ename = 'ALLEN') and ename != 'ALLEN'; 086 서브 쿼리를 사용하여 데이터 수정하기(서브쿼리를 사용한 update문) update문에 서브쿼리를 쓸 수 있는 절 update..
sql중급 / 서브쿼리를 사용한 insert문 085 서브 쿼리를 사용하여 데이터 입력하기 -- emp800이라는 테이블 생성하기 create table emp800 ( empno number(10), ename varchar2(10), job varchar2(10), sal number(10) ); -- emp800에 서브쿼리문을 사용한 insert문으로 데이터를 입력 (values 사용하지 않음) insert into emp800(empno, ename, job, sal) select empno, ename, job, sal from emp where job = 'SALESMAN'; /* 보통 데이터를 넣는 방법(한 건씩) insert into emp800(empno, ename, job, sal) vwlues (9283, 'ALLEN','SAL..
sql 중급 / DML(commit, rollback, merge, lock, select for update) 문제395. 부서번호, 부서번호별 평균월급을 출력하시오 select deptno, avg(sal) from emp group by deptno; 문제396. 위의 SQL의 결과를 view로 생성하시오 create view emp_deptno_avg as select deptno, avg(sal) as avg from emp group by deptno; -- view 생성할 때 쿼리문에 그룹함수가 있으면 컬럼별칭을 반드시 사용해야함. 문제397. emp테이블과 emp_dept_avg view를 조인해서 이름,월급, 자기가 속한 부서의 평균월급을 출력하시오 select e.ename, e.sal, a.평균 from emp e, emp_deptno_avg a where e.deptno = a.deptno; ..
sql중급 / DML문(insert, update, delete) 078 데이터 입력하기(INSERT) ㅁSQL 종류 1. Query : select문의 6가지 절, 함수, 조인, 서브쿼리, 집합연산자 2. DML (Data Manpulation Language) : insert, update, delete, merge 3. DDL (Data Definition Language) : create, alter, drop, truncate, rename 4. DCL (Data Control Language) : grant, revoke 5. TCL (Transaction Control Language) : commit, rollback, savepoint insert into 테이블명(컬럼명1,컬럼명2,....) values(값1,값2,.....) 문자의 경우 양쪽에 작은..
sql중급 / subquery ( select절) ㅁ복습 1. select 문의 6가지절 (select, from, where, group by, having, order by) 2. 함수의 종류 3가지 (단일행, 복수행, 데이터분석함수) 3. 조인문(오라클 조인문법, 1999 ANSI 조인문법) - 오라클 조인문법 : equi join, non equi join, outer join, self join - 1999 ANSI 조인문법 : on절을 사용한 조인, using절을 사용한 조인, natural join, left/right/full outer join, cross join 4. 집합연산자 4가지 (union all, union, intersect, minus) 5. 서브쿼리의 종류 3가지 (단일 행 서브쿼리, 다중 행 서브쿼리, 다중 컬럼 서브..
sql중급 / subquery (다중 행, 다중 컬럼, not in, exists, having절, from절) ㅁ서브쿼리문을 왜 사용해야하는가 아래의 질문에 대한 답을 하려면 서브쿼리를 알아야함. "서울시에서 가장 비싼 생필품명과 가격은?" "우리나라에서 가장 대학등록금이 높은 학교는?" "우리나라에서 교통사고가 가장 많이 일어나는 지역은?" "절도가 가장 많이 일어나는 요일은 언제인가?" ㅁ서브쿼리문의 종류 1. 단일행 서브쿼리 : 서브쿼리에서 메인쿼리로 하나의 행 값이 리턴되는 서브쿼리문 2. 다중행 서브쿼리 3. 다중 컬럼 서브쿼리 문제335. 우리반에서 가장 나이가 어린 학생의 이름, 나이, 통신사를 출력하시오 select ename, age, telecom from emp14 where age = (select min(age) from emp14); 문제336. 직업이 SALESMAN인 사원들의 최대월급..
sql중급 / subquery(단일 행) 071 서브 쿼리 사용하기 1(단일행 서브쿼리) ㅁSQL의 종류 1. Query : select문의 6가지 절, 함수, 조인, 집합연산자, 서브쿼리 2. DML : insert, update, delete, merge 3. DDL : create, alter, drop, truncate, rename 4. DCL : grant, revoke 5. TCL : commit, rollback, savepoint ㅁ서브쿼리의 종류 3가지 1. 단일행 서브쿼리 2. 다중행 서브쿼리 3. 다중컬럼 서브쿼리 ㅁ서브쿼리(subquery)를 알아야 하는 이유 > 다음의 질문에 답하기 위함 " Jones의 월급보다 더 많은 월급을 받는 사원들의 이름과 월급을 출력하시오" -- 쿼리를 2번 쓸 경우 select sal fr..
sql중급 / 집합연산자 067 집합 연산자로 데이터를 위아래로 연결하기 1(UNION ALL) 데이터를 양옆으로 연결해서 출력하는 것 = join 데이터를 위아래로 연결해서 출력하는 것 = 집합연산자 ㅇ집합연산자의 종류 1. union all : 합집합 2. union : 합집합 3. intersect : 교집합 4. minus : 차집합 문제319. union all을 이용해서 데이터를 위아래로 연결해서 출력하는데 삶의 주관적 만족도가 남자의 데이터와 여자의 데이터를 다음과 같이 위아래로 연결해서 출력하시오 select feature2, extr_satifi + few_satifi as 만족도, rank() over (order by extr_satifi + few_satifi desc) as 순위 from satisfy_t..
sql중급 / 1999 ANSI join ㅁ sql의 핵심 1. 조인 2. 서브쿼리 ㅁ조인문법의 종류 1. 오라클 조인문법 - equi join - non equi join - outer join - self join 2. 1999 ANSI(American National Standard Institute) 표준문법 - on절을 사용한 조인 - using절을 사용한 조인 - natural join - left/right/full outer join - cross join ㅁ복습 문제303. 직업이 SALESMAN인 사원들의 이름, 직업, 부서위치, 부서명(dname)을 출력하시오 select e.ename, e.job, d.loc, d.dname from emp e, dept d where e.deptno = d.deptno and e.job ..
문제4. SQL / rollup하여 생긴 null값에 데이터 입력하기 [처음 쓴 코드] select deptno, case when deptno is null then decode(to_char(grouping(job)),1,'전체토탈',job) when job is null then decode(to_char(grouping(job)),1,'부서토탈',job) else job end as job2, sum(sal) from emp group by rollup(deptno, job); 처음 쓴 코드로도 문제가 풀렸으나, decode 함수를 굳이 써야 하는지 의문이 생김 [수정코드] -- 수정코드1 select deptno, case when deptno is null then '전체토탈' when job is null then '부서토탈' else job end as jo..

반응형