1.Where
대망의 Where
조금 더 세분화된 데이터를 추출하기 위해서는 필수적인 기능이다
EX) SELECT * FROM EMPLOYEE WHERE ~
위치는 FROM TABLE명 -> 뒤에 위치하며
특정 조건을 걸어주는데 사용된다
예를들어 EMPLOYEE 테이블에서 SALARY의 값이 1000이상인 사원이름만을 출력하고싶다면 ..?
'SALARY >= 1000' 조건을 생각 해 볼 수 있다.
바로 적용해보자
SELECT ENAME,SALARY FROM EMPLOYEE WHERE SALARY >= 1000;
사원의 이름과 급여를 같이 출력해 (SELECT ENAME,SALARY)
EMPLOYEE 테이블로 부터 (FROM EMPLOYEE)
근데 어떤조건? SALARY 값이 1000이상인거! (WHERE SALARY >= 1000;)
즉 SELECT의 데이터 추출은 일정한 구조로 영어 문법처럼 정방향 해석, 거꾸로 해석 편한 대로 생각하며
쿼리문을 작성하는게 핵심이라고 느꼈다.
이런식으로 쿼리를 작성하면 나중에 나올 서브쿼리나 JOIN에서도 크게 헤메지 않게 되는 것 같다.
물론 손에 익어버리면 내 손이 먼저 써버리긴 합니다
또 다른 조건 들로는
LIKE 뒤에는 ' ' 작은 따옴표 안에 원하는 문자를 넣을 수 있는데
ENAME에 E가 들어가는 사람을 찾고 싶다면
WHERE ENAME LIKE '%E%';
요렇게 작성할 수 있는데 요 %는 앞 , 뒤로 상관 없어요~ 라는 의미로 해석하면 편하다
'%E' E앞쪽에 뭐가 오든 상관 없음 AAAE 요런거겠죠
'E%' E뒤쪽에 뭐가 오든 상관없음 EAAA 이런거 있겠죠
'%E%' E앞뒤로 아무상관없어 E 들어간거 출력해줘 빨리 요런느낌이죠
다시 돌아와서 이런 문제가 있다고 해봅시다
select * from employee where hiredate like '81%';
입사년도가 81년에 해당되는 컬럼을 출력하고싶다
HIREDATE가 83121312`~~~~~~ , 75~~~~~~, 81~~~~~ 요렇게 되어있으니
81 즉, 연도 뒤에 숫자데이터는 상관없으니 81%로 표현함을 이해하셨나요
요렇게 81년도만 딱 출력 되었습니다.
WHERE 조건만 잘 사용해도 특정 컬럼의 특정 값만을 더 잘 뽑아낼 수 있습니다.
'Database > Oracle' 카테고리의 다른 글
[Oracle] 4.Group by / Having (0) | 2021.06.04 |
---|---|
[Oracle] 3-1. Where (0) | 2021.06.04 |
[Oracle] 2. Schema 작업과 별칭, DISTINCT(중복 제거) (0) | 2021.06.03 |
[Oracle] 1.Database use and start (0) | 2021.06.01 |
Oracle[프롤로그] 끝에서 처음으로 (0) | 2021.06.01 |
댓글