20220221_01_scott.sql / 오라클 6일 차
OR, IN, =ANY
SELECT ENAME, JOB, SAL
FROM TBL_EMP
WHERE JOB = 'SALESMAN'
OR JOB = 'CLERK';
--==>>
/*
SMITH CLERK 800
ALLEN SALESMAN 1600
WARD SALESMAN 1250
MARTIN SALESMAN 1250
TURNER SALESMAN 1500
ADAMS CLERK 1100
JAMES CLERK 950
MILLER CLERK 1300
호석이 SALESMAN (null)
문정이 SALESMAN (null)
*/
SELECT ENAME, JOB, SAL
FROM TBL_EMP
WHERE JOB IN('SALESMAN', 'CLERK'); -- 얘도 내부적으로는 위와 같이 실행됨
--==>>
/*
SMITH CLERK 800
ALLEN SALESMAN 1600
WARD SALESMAN 1250
MARTIN SALESMAN 1250
TURNER SALESMAN 1500
ADAMS CLERK 1100
JAMES CLERK 950
MILLER CLERK 1300
호석이 SALESMAN (null)
문정이 SALESMAN (null)
*/
SELECT ENAME, JOB, SAL
FROM TBL_EMP
WHERE JOB = ANY ('SALESMAN', 'CLERK'); -- 내부적으로는 OR논리연산 형태로 바뀌어 처리됨
--==>>
/*
SMITH CLERK 800
ALLEN SALESMAN 1600
WARD SALESMAN 1250
MARTIN SALESMAN 1250
TURNER SALESMAN 1500
ADAMS CLERK 1100
JAMES CLERK 950
MILLER CLERK 1300
호석이 SALESMAN (null)
문정이 SALESMAN (null)
*/
WHILD CARD(CHARACTER) → 『%』
--※ LIKE : 동사 → 좋아하다
-- 부사 → ~와 같이, ~처럼 CHECK~!!!
--※ WHILD CARD(CHARACTER) → 『%』
-- 『LIKE』와 함께 사용되는 『%』는 모든 글자를 의미하고
-- 『LIKE』와 함께 사용되는 『_』는 아무 글자 한 개를 의미한다.
--○ TBL_SAWON 테이블에서 성씨가 『김』씨인 사원의
-- 사원명, 주민번호, 급여 항목을 조회한다.
SELECT *
FROM TBL_SAWON
WHERE SANAME LIKE '김__'; -- 언더바 쓰려면 꼭 라이크랑 같이 쓰기
--==>> 1001 김민성 9707251234567 2005-01-03 3000
SELECT *
FROM TBL_SAWON
WHERE SANAME LIKE '김%'; -- 퍼센트 쓰려면 꼭 라이크랑 같이 쓰기
--==>> 1001 김민성 9707251234567 2005-01-03 3000
--○ TBL_SAWON 테이블에서 성씨가 『이』씨인 사원의
-- 사원명, 주민번호, 급여 항목을 조회한다.
SELECT *
FROM TBL_SAWON
WHERE SANAME LIKE '이__';
-- WHERE SANAME LIKE '이%';
--==>>
/*
1003 이지연 9905192234567 2006-08-10 3000
1004 이연주 9508162234567 2007-10-10 4000
1006 이현이 8005132234567 1999-10-10 1000
*/
--○ TBL_SAWON 테이블에서 이름의 마지막 글자가 『민』인 사원의
-- 사원명, 주민번호, 급여 항목을 조회한다.
SELECT SANAME "사원명", JUBUN "주민번호", SAL "급여"
FROM TBL_SAWON
WHERE SANAME LIKE '%민';
--==>>
/*
남궁민 0208073234567 2600
홍수민 0005044234567 5200
임소민 9711232234567 5500
*/
SELECT SANAME "사원명", JUBUN "주민번호", SAL "급여"
FROM TBL_SAWON
WHERE SANAME LIKE '__민';
--==>>
/*
남궁민 0208073234567 2600
홍수민 0005044234567 5200
임소민 9711232234567 5500
*/
--○ TBL_SAWON 테이블에서 사원의 이름에 『이』라는 글자가
-- 하나라도 포함되어 있다면 그 사원의
-- 사원번호, 사원명, 급여 항목을 조회한다.
SELECT SANO "사원번호", SANAME "사원명", SAL "급여"
FROM TBL_SAWON
WHERE SANAME LIKE '%이%'; -- 없는 것도 퍼센트 안에 포함되는군
--==>>
/*
1003 이지연 3000
1004 이연주 4000
1005 오이삭 4000
1006 이현이 1000
1007 박한이 1000
1016 이이경 1500
*/
--○ TBL_SAWON 테이블에서 사원의 이름에 『이』라는 글자가
-- 연속으로 두 번 들어있는 사원의
-- 사원번호, 사원명, 급여 항목을 조회한다.
SELECT SANO "사원번호", SANAME "사원명", SAL "급여"
FROM TBL_SAWON
WHERE SANAME LIKE '%이이%';
--==>>1016 이이경 1500
--○ TBL_SAWON 테이블에서 사원의 이름에 『이』라는 글자가 두 번 들어있는 사원의
-- 사원번호, 사원명, 급여 항목을 조회한다.
SELECT SANO "사원번호", SANAME "사원명", SAL "급여"
FROM TBL_SAWON
WHERE SANAME LIKE '%이%이%';
--==>>
/*
1006 이현이 1000
1016 이이경 1500
*/
--○ TBL_SAWON 테이블에서 사원 이름의 두 번째 글자가 『이』인 사원의
-- 사원번호, 사원명, 급여 항목을 조회한다.
SELECT SANO "사원번호", SANAME "사원명", SAL "급여"
FROM TBL_SAWON
WHERE SANAME LIKE '_이%';
--==>>
/*
1005 오이삭 4000
1016 이이경 1500
*/
--○ TBL_SAWON 테이블에서 사원의 성씨가 『선』씨인 사원의
-- 사원명, 주민번호, 급여 항목을 조회한다.
-- → 불가!!!!!!
SELECT SANAME "사원명", JUBUN "주민번호", SAL "급여"
FROM TBL_SAWON
WHERE SANAME LIKE '선%';
SELECT SANAME "사원명", JUBUN "주민번호", SAL "급여"
FROM TBL_SAWON
WHERE SANAME LIKE '남%';
--==>> 성씨가 선우인지, 선인지 모르고 / 남궁인지 남인지 모름...
--※ 데이터베이스 설계 과정에서
-- 성과 이름을 분리하여 처리해야 할 업무 계획이 있다면
-- (지금 당장은 아니더라도...)
-- 테이블에서 성 컬럼과 이름 컬럼을 분리하여 구성해야 한다.
--○ TBL_SAWON 테이블에서 여직원들의
-- 사원명, 주민번호, 급여 항목을 조회한다.
DESC TBL_SAWON;
--==>>
/*
이름 널? 유형
-------- -- ------------
SANO NUMBER(4)
SANAME VARCHAR2(30)
JUBUN CHAR(13)
HIREDATE DATE
SAL NUMBER(10)
*/
SELECT SANAME "사원명", JUBUN "주민번호", SAL "급여"
FROM TBL_SAWON
WHERE JUBUN LIKE '______2______' OR JUBUN LIKE '______4______';
--==>>
/*
서민지 9505152234567 4000
이지연 9905192234567 3000
이연주 9508162234567 4000
이현이 8005132234567 1000
선우용녀 6912232234567 1300
선우선 0303044234567 1600
홍수민 0005044234567 5200
임소민 9711232234567 5500
이이경 0603194234567 1500
*/
ESCAPE 문법
--○ TBL_WATCH 테이블의 BIGO(비고) 컬럼에
-- 『99.99%』라는 글자가 포함된(들어있는) 행(레코드)의
-- 데이터를 조회한다.
SELECT *
FROM TBL_WATCH
WHERE BIGO LIKE '%99.99\%%' ESCAPE '\';
-- WHERE BIGO LIKE '%99.99$%%' ESCAPE '$';
-- WHERE BIGO LIKE '%99.99@%%' ESCAPE '@';
--==>> 금시계 순금 99.99% 함유된 최고급 시계
--※ ESCAPE로 정한 문자의 다음 한 글자를 와일드카드에서 탈출시켜라...
-- 일반적으로 사용 빈도가 낮은 특수문자(특수기호)를 사용한다.