- -서브쿼리(쿼리 안에 또다른 쿼리 담김)
--2가지 잘문??
--select 컬럼1, 컬럼2 from 테이블 where 조건연산자(select 컬럼명 from 테이블명 where 조건)
--메인쿼리안에 서브쿼리가 담기는 형식/메인쿼리(서브쿼리)
--Q. emp에서 SCOTT보다 급여를 많이 받는 사람의 이름과 급여를 출력하시오
--select sal from emp where ename='SCOTT';
select ename 이름, sal 급여
from emp
--where sal >(select sal from emp where ename='SCOTT');
where sal >(select sal from emp where ename='WARD');
--서브쿼리가 먼저 수행되서 결과값을 메인쿼리에 전달하고 그것을 받아 메인쿼리수행
--서브쿼리에는 order by절은 못옴
- -emp에서 평균 연봉보다 더 많이 받는사람의 목록을 출력하라
select * from emp where sal>(select avg(sal) from emp);
- -emp에서 이름이 WARD인 사람의 MGR과같은 값을 가진 사람의 목록구하기
select * from emp where MGR=(select MGR from emp where ename='WARD');
- -student에서 4학년의 평균키보다 큰사람의 이름, 키를 구하시오
select name 이름, height 키 from student where height>(select avg(height) from student where grade=4);
--emp에서 s로 시작하는 이름을 가진 사람과 근무부서사람의 부서번호와 이름을 출력하시오
select deptno 부서번호, ename 이름 from emp where deptno IN (select deptno FROM emp where ename Like 's%');
- -emp에서 CLARK보다 늦게 입사한 사원들의 이름과 입사일을 구하시오
select ename 사원이름, hiredate 입사일 from emp where hiredate>(select hiredate from emp where ename='CLARK');

- -test 테이블
--primart key(not null + unique)
--구조보기
desc test;
--test에 전체 데이타 insert
insert into test values(1,'이민규',68.2,'2015-12-25');
- -test 조회
select * from test;
- -test에 일부 데이타 insert
insert into test(num,name) values (5,'홍진화');
- -일부 컬럼만 조회
select num,name from test;
- -현재날짜로 추가
insert into test values(3,'마동석',88,sysdate);
- -test테이블에 나이 컬럼추가
--SQL< AFTER TABLE 테이블명 ADD 추가할컬럼명 데이터타입;
alter table test add age number(5);
- -주소(addr)를 저장할 컬럼을 추가하는데 초기값을 강남구 라고 지정
alter table test add addr varchar2(30) default '강남구';
insert into test (num,addr) values (7,'서울시 강남구 삼성 오피스텔');
- -addr의 문자타입 늘려주기
--☞ 테이블 컬럼의 타입변경
--SQL> ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입;
alter table test modify addr varchar2(70);
- -age타입을 varchar2(10)으로 변경하고 초기값을 '22'으로 설정하기
alter table test modify age varchar2(10) default '22';
- -일부만 넣어서 나이 22로 들어가는지 확인!!
--기존 null 들어간것은 그대로 있고 새로 insert한것부터 초기값이 들어감
insert into test (num,name,score,birth) values(18,'마동석',77,sysdate);
- -num의 오름차순 출력
select * from test order by num asc;
--num의 내림차순 출력
select * from test order by num desc;