안녕하세요 이승혁입니다.
오늘은 조건절과 연산자에 대한 간단한 실습을 진행하겠습니다.
실습 진행 전 cmd 창 조절 명령어 lines, page를 실행하고 진행하겠습니다.
set lines : cmd 창 출력 화면 가로 너비 조절
set pages : cmd 창 출력 화면 세로 너비 조절
< set lines >
< set pages >
결과가 다양하고 양이 많을수록 한눈에 보기 편해야 한다고 생각합니다.
위 명령어로 간단하게 출력 화면의 너비를 조절하고 실습을 진행합니다!
※ SQL 연산자
1. 산술 연산자 : *, /, +, -
2. 비교 연산자 : > , < , >=, <=, =, !=, <>, ^=
3. 논리 연산자 : and, or, not
실습 1. 이름, 월급, 월급+300*2 출력해보기
select ename,sal,sal+300*2
from emp;
실습 2. 덧셈 먼저 계산하여 출력해보기
select ename, sal, (sal+300)*2
from emp;
※ 비교연산자와 조건절
비교 연산자는 조건절(where절)에 기술하여 작성합니다.
# sal = 3000인 사원의 이름과, 월급을 나타낸다.
select ename,sal # 컬럼명
from emp # 테이블명
where sal = 3000; # 검색 조건
실습 3. 이름이 SCOTT인 사원 이름, 월급, 직업 출력해보기
select ename,sal,job
from emp
where ename = 'SCOTT';
실습 4. 직업이 SALESMAN인 사원의 이름, 직업 출력해보기
select ename,job
from emp
where job ='SALESMAN';
실습 6. 직업이 SALESMAN이 아닌 사원의 이름, 직업 출력해보기
select ename,job
from emp
where job !='SALESMAN';
실습 6. 입사일이 81년 11월 17일인 사원의 이름과 입사일을 출력해보기
select ename, hiredate
from emp
where hiredate = '81/11/17'
※ 풀이 : 1. 데이터는 대소문자를 구분합니다.
테이블의 데이터가 대문자일 경우 검색 조건도 위와 같이 대문자로 작성해야 합니다.
2. 숫자와 달리 문자와 날짜는 양쪽에 싱글 쿼테이션( ' ) 마크를 둘러줘야 합니다.
- 기타 비교 연산자
1. between A and B : A 와 B의 값 사이에 해당되는 값들을 선택
2. like : 영어로 쓰일 때 '~처럼'과 같이 SQL에서도 첫 글자가 '○로 시작할 것 같은'으로 사용된다.
3. in : 해당 리스트 안에 해당하는 조건과 일치하는 행을 찾아낸다.
4. is null : 직관적으로 알 수 있듯 해당 칼럼이 null인 조건이다.
※ like 연산자와 함께 쓰이는 옵션
1. % : 이 자리에 문자의 개수, 종류는 관계 없다. 특정 문자 여러 개를 대체할 수 있습니다.
2. _ : 이 자리에 문자가 1개, 종류는 관계 없다. 특정 문자 1개를 대체합니다.
3. escape : %와 _를 특수문자로 인식하게 하는 키워드.
실습 7. 11일에 입사한 사원을 출력해보기
select ename,hiredate
from emp
where hiredate like '%11';
실습 8. 81년도에 입사한 사원을 출력해보기
select ename,hiredate
from emp
where hiredate like '81%';
실습 9. 이름의 두 번째 철자가 'M'인 사원의 이름을 출력해보기
select ename
from emp
where ename like '_M%';
'_M%' -> 첫 문자는 무엇이든 상관이 없고, 두 번째 문자는 M, 나머지 뒤에는 몇 개의 문자가 오던 상관이 없다는 뜻
실습 10. 이름의 세 번째 철자가 'L'인 사원의 이름 출력해보기
select ename
from emp
where ename like '__L%';
실습 11. escape 사용해보기 , 이름의 두 번째 문자가 % 인 행 출력해보기
실습에 사용할 데이터를 insert하겠습니다.
Insert into emp(empno,ename,sal)
values(2929,'A%B',3000);
values(2929,'A%%B',3400);
select ename
from emp
where ename like '_m%%' escape 'm';
조건절 뒤 escape 'm'을 추가로 작성해주어 문자 'm' 뒤의 % 는 특수문자 % 임을 나타냅니다.
실습 12. between and 사용해보기, 1981년도에 입사한 사원들의 이름과 입사일을 출력해보기
select ename,hiredate
from emp
where hiredate between '81/01/01' and '81/12/31';
between 명령어를 사용해 HIREDATE의 수치가 81/01/01 , 81/12/31 사이인 조건에 맞는 행들을 출력합니다.
숫자형 역시 between 1000 and 3000과 같은 코드로 작성이 가능하며,
or 연산자를 사용해 1000> sal or sal <3000과 같은 코드로도 같은 결과를 나타냅니다.
실습 13. in 사용해보기, 사원번호가 7902,7369,7788인 사원들 출력해보기
select empno,ename
from emp
where empno in (7788,7902,7369);
# where empno=7788 or empno=7902 or empno=7369;
주석 처리된 코드로도 같은 결과를 확인할 수 있지만 in 연산자를 사용해 훨씬 간단하게 나타낼 수 있습니다.
문자형을 사용할 때는 where job in ('SALESMAN', 'ANALYST')와 같이 나타낼 수 있습니다.
실습 14. is null 사용해보기, comm이 null인 사원 출력하기
select ename, comm
from emp
where comm is NULL;
반대로 NULL이 아닌 사원을 확인할 때는 is not NULL 연산자를 사용합니다.
select ename,comm
from emp
where comm is not null;
이번 포스팅에서는 Query문을 사용해 데이터를 검색할 때 조건을 사용해
특정 조건에 해당하는 행들을 출력하는 방법을 공부했습니다.
다음 포스팅에는 해당 출력된 결과를 정렬하고, 데이터들을 가공할 수 있는 sql 함수들을 사용해보겠습니다.
읽어주셔서 감사합니다.
'프로그래밍 > SQL' 카테고리의 다른 글
SQL-9) group by, having , 함수(function) - 5 (0) | 2020.10.27 |
---|---|
SQL-8) 함수(function) - 4 (2) | 2020.10.26 |
SQL-7) 함수(function) - 3 (0) | 2020.10.25 |
SQL-6) 함수(function) - 2 (0) | 2020.10.23 |
SQL-5) SQL Developer install (0) | 2020.10.23 |
SQL-4) Order 절, 함수(function) (0) | 2020.10.22 |
SQL-2) Query (0) | 2020.10.19 |
SQL-1) Oracle DB install (9) | 2020.10.19 |