*select
- 문법
select 컬럼명,,,
from테이블명
where 조건문
- where절
- 조건에 맞는 행만 가져온다.
- 연산자 : 관계, 논리, 문자열,...
------------------------------------------------------------
-- select where 사용 : 조건에 맞는 행만 삭제
------------------------------------------------------------
-- emp 테이블에서 부서번호가 10번인 부서의 사원명, 사훤번호. 입사일, 연봉, 부서번호를 조회하라ㅏ
SELECT ENAME, EMPNO, HIREDATE, SAL, DEPTNO
FROM EMP
WHERE DEPTNO=10;
-- emp테이블에서 연봉이 3000 미만인 사원번호, 사원명, 매니저번호, 연봉을 조회하라.
SELECT EMPNO, ENAME, MGR, SAL
FROM EMP
WHERE SAL<3000;
-- 연봉이 1000~3000 사이인 사원들의 사원번호, 사원명, 직무, 연봉, 보너스를 조회
-- 사이는 and, between로 조회
SELECT EMPNO, ENAME, JOB, SAL, COMM
FROM EMP
WHERE SAL between 1000 and 3000;
--WHERE SAL>1000 and SAL<3000;
-- 부서번호가 10과 30인 부서의 사우너버놓, 사원명, 매니저번호, 연봉, 입사일, 부서번호를 조회
-- or는 in으로 대체 사용 가능 <=> not in
SELECT EMPNO, ENAME, MGR, SAL, HIREDATE
FROM EMP
where deptno in(10,30);
-- WHERE DEPTNO=10 or DEPTNO=30;
*golden tool 사용법
F9 - SQL Builder
F5 - tab에 있는 모든 쿼리 실행
crtl+enter - 직전 ';'부터 다음 ';'까지의 쿼리 실행
*문자열 연산자
LIKE : 특수문자(%,_)와 함께 사용하면 완벽하게 일치하는 문자열 이외에 특정문자로 시작, 끝, 포함하는 것을 검색할 수 있다.
└ % : 모든 글자(글자 수 상관 X)
└ _ : 한 글자 수 지정
ex) '서울시'에 살고있는 주소를 검색하라
select addr
fromtest
where addr like '서울시%'
ex) '구'로 끝나는 주소를 검색하라
where addr like '%구'
ex) 강남구를 포함하고 있는 주소를 검색하라
where addr like '%강남구%'
ex) 이름이 4자이면서 '우'로 끝나는 이름을 조회하여라
where name like '___우'
ex) 이름이 3자이고 중간글자에 ''경'이 들어간 이름을 조회하라
where name like '_우_'
-- null 비교(관계 연산자로 비교 불가능)-- 보너스가 없는 사원들의 사원명, 직무, 연봉, 보너스 조회SELECT ENAME, JOB, COMMFROM EMPWHERE COMM is null;-- <=> WHERE COMM is not null;
-- like ----------------------------------------------------
-- 사원명이 'A'로 시작하는 사원의 사원명, 직무, 관리 매니저 번호를 조회하라SELECT ENAME, JOB, MGRFROM EMPWHERE ENAME like 'A%';
-- 사원명이 'S'로 끝나는 사원의 사원명, 직무를 조회하라SELECT ENAME, JOBFROM EMPWHERE ENAME like '%S';
-- 사원명이 'A'를 포함하고 있는 사원의 사원명, 매니저번호, 입사일을 조회하라SELECT ENAME, MGR, HIREDATEFROM EMPWHERE ENAME like '%A%';
-- 사원명이 4글자인 사원의 사원명을 조회하라SELECT ENAMEFROM EMPWHERE ENAME like '____';
-- 사원명이 5자이면서 3번째 글자가 'A'인 사원명을 조회하라SELECT ENAMEFROM EMPWHERE ENAME like '__A__';
-- 사원명에 'L'이 두개 들어있는 사원의 사원명을 조회하라SELECT ENAMEFROM EMPWHERE ENAME like '%L%L%';
*Drop
- 문법
drop 대상 '삭제하고자 하는 대상 명';
- DB에서 삭제할 때 사용한다. 대상은 테이블, sequence, index, 계정 등이 될 수 있다.
- Oracle 10g부터는 삭제된 테이블이 휴지통으로 들어간다. 복구가 가능하다. 이전 버전들은 바로 삭제되어 복구가 불가능하다.
*휴지통
- 휴지통 보기 : show recyclebin
- 휴지통 비우기 : purge recyclebin
- 휴지통에 있는 테이블 복구 : flashback table 복구할 테이블명 to before drop;
-- 휴지통 보기(sqlplus 문장이므로 지원하지 않는다.)-- show recyclebin;
-- 휴지통의 테이블 살리기flashback table student to before drop;
-- 휴지통 비우기purge recyclebin;
*sqlldr(sqlloader)의 사용
- 많은 양의 데이터를 손쉽게 추가할 때 사용한다.
- csv(comma separator value : ','로 구분된 값) file을 주로 사용한다.
- oracle 설치 시 자동으로 들어간다.
- [sqlldr.exe -> Schema file(.CTL file : 어떤 테이블에 어떤 데이터를 연결할 것인가를 정의한 파일이다.) -> data file(.CSV)] -> DBMS(table space)
- DOS >> sqlldr userid="id/pw" control="ctl 파일 위치"
DESC ZIPCODE;
-- 2. CSV파일 생성
-- 3. CTL파일 편집(app 폴더에서 .ctl검색 후 LoadClobs.ctl 복사 후 사용)-- (CTL파일의 INFILE:경로, INTO TABLE:테이블명, FIELDS TERMINATED BY '@':@ separator, ():column명, 기타 나머지는 모두 삭제)/*LOAD DATAINFILE '파일명.csv'INTO TABLE 테이블명INSERTFIELDS TERMINATED BY '구분자'(컬럼명,,,,,,)*/
-- 4. 실행 : prompt >> sqlldr userid=id/pw control='ctl파일명'
truncate table zipcode;
-- golden tool 사용시 : menu - tools - data import/export... - import to oracle - source file(.csv)/destination table(table)
select count(*) from zipcode;
'예전 포스팅 모음' 카테고리의 다른 글
[DB] Dual Table, 수학함수, 문자열함수, 변환함수, 조건함수, 집계함수 (0) | 2014.09.23 |
---|---|
[java] 예외처리(Exception Handling) (0) | 2014.09.22 |
[java] 자바의 정석 연습문제 ch08 (0) | 2014.09.19 |
[java] 자바의 정석 연습문제 ch07 (0) | 2014.09.19 |
[java] 자바의 정석 연습문제 ch05 (0) | 2014.09.19 |