SQL (2)
SQL basic statement -2
하나의 statement마다 개행을 해주는 이유는, 수정사항을 반영하기 쉽기 때문이다.
특히 where절을 사용할 때 용이
where절 between 크기 비교select ename, sal, deptno, job
from emp
where 1 = 1
and sal between 2450 and 3000;
between x and y는 x와 y의 값까지 포함 하는 범위이다! 즉,select ename, sal, deptno, job
from emp
where 1 = 1
and sal>=2450 and sal<=3000;
와 같다.
where절 in 사용select ename, sal, deptno, job
from emp
where 1 = 1
and job in ('clerk','manager');
job 컬럼중 clerk과 manager인 데이터를 출력한다.
where절 in 사용(2)
부서번호가 10이고 업무가 manager 이거나 20이고 clerk 인사람을 구하세요.select *
from emp
where 1
and (deptno,job) in ((10,'manager'),(20,'clerk'));
다음과 같이 in을 활용하면 컬럼별로 데이터를 수월하게 검색할 수 있다.
not을 표현하는 방법select ename, sal, deptno, job
from emp
where 1 = 1
and sal <> 800
- (1)and sal != 800
- (2)and not sal = 800;
- (3)
위의 3가지 방법으로 not을 표현할 수 있다.
데이터에 null이 있을 때.
null비교 대상이 될 수 없다. null에 값을 더하는 등의 연산을 이행하면 그 결과 역시 null이 되어버린다.
그렇기 때문에 주의해야 하는데, 원하는 데이터셋에 null이 있다면 다음 statement를 활용해주도록 한다.ifnull('컬럼명', '초기화값')
이렇게 활용해주도록 한다. 예를 들면select ename, sal, comm, ifnull(comm,0), ifnull(comm,0)+100, sal+ifnull(comm,0);
이렇게 말이다. 결과는 다음과 같이 null이었던 부분이 0으로 초기화되거나, 추가 연산을 해준 결과가 나타난다.
마지막 컬럼에는 comm+100을 해줌으로써, null값에도 값이 더해지는 결과지만
위에 언급하였다시피 연산의 결과 역시 null이 나온것을 확인할 수 있다.
데이터 정렬하기select ename, sal, deptno
from emp
where deptno in (20,30)
and sal > 1000
order by sal asc, ename asc;
제일 아래 statement처럼 order by '정렬기준 컬럼' + '오름차순(asc)/내림차순(desc)'; 을 해주면 된다.
'Database > SQL' 카테고리의 다른 글
[MySQL] SQL (3) basic statement (0) | 2019.08.19 |
---|---|
[MySQL] SQL (1) basic statement (0) | 2019.08.17 |