DDL(Create) : DML(Read Update Delete Select) = select

COMMIT은 내가 INSERT, UPDATE, DELETE 등 명령문을 수행한 내역을 COMMIT 시 실제 데이터베이스 내에 적용하는 것
emp1 테이블로부터 * (전체)를 선택하라 select * from emp1;
create table emp1( empno NUMBER(4) default 1000 not null, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredata date, sal NUMBER(7,2), -- 7자리의 가변 길이 정수와 2자리의 가변길이 소수 comm NUMBER(7,2), deptno NUMBER(2) ); desc emp1; -- 테이블의 정보를 설명[desc emp1;] 이름 널? 유형 -------- -------- ------------ EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATA DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2)
insert into emp1 values(7839,'홍길동','매니저',1234,'1981/05/05',5000,null,10); insert into emp1 values(7000,'홍길순','매니저',1234,'1981/05/05',5000,null,10); insert into emp1 values(7000,'권단비','매니저',1234,'1981/05/05',5000,null,10);

update table의 특정값을 바꾸기(전체) update emp1 set sal = sal * 1.1;
update table의 특정값을 바꾸기(홍길순) update emp1 set sal = sal * 1.1 where ename='홍길순';
부서번호가 10번인 사원의 부서번호를 30번으로 수정하시오. update emp1 set deptno =30 where deptno=10;
job이 매니저인 사람을 사원으로 변경하시오. update emp1 set job='사원' where job='매니저';
모든 입사일을 오늘로 수정하는 쿼리문 update emp1 set hiredata=SYSDATE;
부서번호가 10번인 데이터를 삭제하시오. delete from emp1 where deptno = 10;
이름이 홍길동인 사람을 삭제하시오. delete from emp1 where ename='홍길동';
월급이 5500미만인 사원을 삭제하시오. delete from emp1 where sal<5500;
drop table emp1; -- table 삭제
검색하고자 하는 값을 정확히 모를 경우 와일드 카드와 함께 사용할 수 있다.
%특정 문자가 포함되기만 하고 그 이전이나 이후에 어떤 문자가 몇 개가 오든지 상관없다는 의미를 표현하기 위해서는 LIKE 연산자와
이름이 F로 시작하는 사람을 찾는 쿼리문 select * from emp where ename like 'F%';
위치 상관없이 이름 중에 A가 들어있는 사람을 찾는 쿼리문 select * from emp where ename like '%A%';
이름이 N으로 끝나는 사람을 찾는 쿼리문 select * from emp where ename like '%N';
이름의 두 번째 글자가 A인 사원을 찾는 쿼리문 ⇒ '_' 자릿수를 의미 select * from emp where ename like'_A%';
이름의 세 번째 글자가 A인 사원을 찾는 쿼리문 select * from emp where ename like'__A%';
이름에 A를 포함하지 않는 사람만 검색하는 쿼리문 select * from emp where ename not like'%A%';
NULL의 의미 : 미확정. 알 수 없는 값을 의미한다. 고로 연산, 할당, 비교가 불가능하다. select * from emp where comm IS null; 예)커미션(COMM)을 받지 않는 사원을 검색하는 쿼리문 select * from emp where comm is not null;
JAVA에서의 null
참조형에만 null 정의 가능
int a = null (x)
A a = null (o) → 주소가 들어가 있지 않은 것
A a = new A();
a = null → 주소 참조가 끊김 (메모리 회수해도 좋다.)
Oracle에서의 null
NULL의 의미 : 미확정. 알 수 없는 값을 의미한다. 고로 연산, 할당, 비교가 불가능하다.
사원들의 급여를 오름차순으로 정렬하는 쿼리문 select * from emp ORDER BY sal asc;
사원들의 급여를 내림차순으로 정렬하는 쿼리문 select * from emp order by sal desc;
가장 최근에 입사한 사원부터 출력하는 쿼리문 select * from emp order by hiredate desc;
select * from emp order by empno asc;
이름순으로 출력하시오. select * from emp order by ename asc;
예)사원들이 소속되어 있는 부서의 번호를 출력하는 쿼리문 select DISTINCT deptno from emp; 예)사원들의 job 종류 select DISTINCT job from emp;
예)사원들의 10% salay 인상한 결과값을 뽑아내시오. select ename, (sal *1.1) as "연봉 인상" from emp;
산술 연산이나 가상 컬럼 등의 값을 한번만 출력하고 싶을 때 많이 사용한다. select 15*67 from dual; select sysdate from dual;
사원의 총급여를 구하는 쿼리문 select sum(sal) from emp;
사원의 총급여 평균을 구하는 쿼리문 select avg(sal) from emp;
사원의 급여 중 제일 큰 수를 구하는 쿼리문 select max(sal) from emp;
사원의 급여 중 제일 작은 수를 구하는 쿼리문 select min(sal) from emp;
총사원수 select count(*) from emp;
예)사원 테이블의 사원들 중에서 커미션(COMM)을 받은 사원의 수를 구하는 쿼리문 select count(comm) from emp;
잡종-잡수(중복x) select count(DISTINCT job) from emp;
⊛정리
그룹함수란 하나의 행으로 출력된다.
그룹함수 종류 : max, min, avg, sum, count
count 함수 정리
count함수는 null값에 대한 갯수를 세지 않는다.
해당 컬럼에서 값을 갖고 있는 로우의 갯수를 반환한다.
MAX : 결과값을 1개로 나타내는 집합함수
SELECT MIN(sal), MAX(sal), COUNT(*) FROM emp;
having : 뒤에는 그룹함수
where : 단순칼럼