본문 바로가기
Programming/DataBase

java 고급과정 10일차

by 막이 2012. 3. 16.


SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE salary>5000
ORDER BY 월급 DESC;

SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE in_date>'2004-01-01';


SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE name >='이순신666'
ORDER BY name;
문자도 대소 비교가 가능
숫자->영어->한글 순으로 되어있음


SELECT name FROM emp_test ORDER BY name;


SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE in_date>'2004-01-01' AND salary >= 5000;

AND-> 두조건 모두 만족할 경우

 

SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE in_date>'2004-01-01' OR salary >= 5000;

OR-> 한 조건이라도 만족하는 경우

 

SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE in_date>'2007-01-01' AND salary >= 5000 OR dept_name='관리부';

 

SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE in_date>'2007-01-01' AND (salary >= 5000 OR dept_name='관리부');


BETWEEN ~이상 ~이하

SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE salary BETWEEN 1000 AND 2500;

SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE salary BETWEEN 2500 AND 1000;
-->에러남 앞의 숫자가 더 작야함


SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE salary NOT BETWEEN 1000 AND 2500;


SELECT
name 이름, salary 월급, dept_name 부서, in_date 입사일
FROM emp_test
WHERE name BETWEEN '김유신222' AND '한국990'
ORDER By name;


IN(일치하는것, 일치하지 않는것,...)

SELECT
name 이름, dept_name 부서
FROM emp_test
WHERE dept_name IN('관리부','영업부');

SELECT
name 이름, dept_name 부서
FROM emp_test
WHERE dept_name NOT IN('관리부','영업부');


SELECT
*
FROM emp_test
WHERE salary IS NULL;


SELECT
*
FROM emp_test
WHERE salary IS NOT NULL;


SELECT
name 이름, dept_name 부서
FROM emp_test
WHERE name LIKE '김%';

-->_는 하나 김씨성을 가지고 이름이 1자인 직원이름 부서 조회
SELECT
name 이름, dept_name 부서
FROM emp_test
WHERE name LIKE '김_';

 

SELECT
name 이름, dept_name 부서
FROM emp_test
WHERE name LIKE '김__';


->중간문자자 길자가 들어가는 직원,부서 조회
SELECT
name 이름, dept_name 부서
FROM emp_test
WHERE name LIKE '_길_';

 


INSERT
INTO emp_test(name, title)
VALUES ('박_%','특수%');

INSERT INTO emp_test(name, title)
VALUES ('김_%','특수%');

SELECT*FROM emp_test;


SELECT
*
FROM emp_test
WHERE name LIKE '__%';
--> 모두다 출력됨 _과 %는 예약어이기 때문에
-->ESCAPE 옵션을 이용하여 사용해야함
-->ESCAPE 문자를 내가 지정가능


SELECT
*
FROM emp_test
WHERE name LIKE '_\_\%' ESCAPE '\';

SELECT
*
FROM emp_test
WHERE name LIKE '_?_?%' ESCAPE '?';

 

SELECT
name 이름, in_date 입사일
FROM emp_test
WHERE in_date LIKE '%01';

SELECT
name 이름, in_date 입사일
FROM emp_test
WHERE in_date LIKE '04%';

SELECT
name 이름, in_date 입사일
FROM emp_test
WHERE in_date LIKE '%0%';



내장함수(Sing-Row Functions) - 하나의 레코드에서 쓸 수 있는 funtion
문자형
CONCAT(a, b) => ab
SUBSTR(abcd 2, 3)=> bcd   2에서부터 3까지 잘라라
LENGTH(abcd) => 4

숫자형
ROUND , TRUNC, MOD(7,2)=>1   MOD(=%)

날짜형
MONTH-BETWEEN

변환형



 

'Programming > DataBase' 카테고리의 다른 글

ORA-00911: 문자가 부적합합니다  (0) 2012.09.25
트랜잭션(transaction) 이란?  (0) 2012.09.17
ResultSetMetaData  (0) 2012.09.17
오라클 sqlplus 화면설정하기(pagesize, linesize)  (0) 2012.04.25
java 고급과정 9일차  (0) 2012.03.15