[1] 사용자가 관리하는 테이블 목록
SQL>select * from tab;
※ select는 선발하다 선택하다 라는 의미의 영단어입니다.
[2] 특정 테이블의 data 표시
SQL>select * from dept;
[3] 모든 컬럼(필드명)이 아닌, 필요한 컬럼(필드명) 내용만 출력
SQL>select dname, loc from dept;
[4] 각각의 필드명에 별칭을 주어서 출력
SQL>select deptno as "부서번호" from dept;
[5] 사원들의 직업명(job)을 중복 제거 후 출력
SQL>select distinct job from emp;
[6] 급여가 3000 이상인 사원 정보 출력
SQL>select empno, ename, sal from emp where sal>= 3000;
[7] 이름이 scott인 사원의 정보 출력
단, data의 경우는 대/소문자를 구별
SQL>select empno, ename, sal from emp where ename = 'scott'; (x)
SQL>select empno, ename, sal from emp where ename = 'SCOTT';
[8]1985년도 이후로 입사한 사원 정보
SQL>select empno, ename, hiredate from emp where hiredate >= '85/01/01';
[0] 부서번호가 10이고, 그리고 직업이 'MANAGER'인 사원 출력
SQL>select empno, ename, deptno, job from emp where deptno = 10 and job = 'MANAGER';
[10]부서번호가 10이거나 또는 직업이 'MANAGER'인 사원 출력
SQL>select empno, ename, deptno, job from emp where deptno 10 or job = 'MANAGER';
[11] 부서번호가 10이 아닌 사원
SQL>select deptno, ename from emp where not (deptno = 10);
SQL>select deptno, ename from emp where deptno <> 10;
not = <>
[12] 급여가 1000~3000사이인 사원을 출력
SQL>select ename, sal from emp where sal between 1000 and 3000;
[13] 급여가 1300 또는 1500 또는 1600인 사원 정보 출력
SQL>select ename, sal
from emp
where sal = 1300 or sal = 1500 or sal = 1600;
SQL>select ename, sal
from emp
where sal in (1300, 1500, 1600);
[14] 이름이 'k'로 시작하는 사원 출력
SQL>select empno, ename
from emp
where ename like 'K%';
[15] 이름이 'k'로 끝나는 사원 출력
SQL>select empno, ename
from emp
where ename like '%K';
[16] 이름이 'K'가 포함된 사원 출력
SQL>select empno, ename
from emp
where ename like '%K%';
% 어떤 문자라도 상관 없다. 아예 문자가 없다라는 의미도 포함되어 있다.
검색시 문자열의 대소문자를 구별하는 것 같다. 소문자 k를 조건에 넣으니 아무 것도 검색되지 않는다.
[17] 2번째에 'A'가 들어가는 사원 출력
SQL>select empno, ename
from emp
where ename like '_A%';
[18] 커미션을 받지않는 사원
SQL>select empno, ename, comm
from emp
where comm is null;
is 대신 = 을 넣으면 선택이 되지 않는다. 왜일까?
알 수 없는 값이라서 연산 기능이 지원되지 않는듯 하다.
[19] 커미션을 받은 사원
SQL>select empno, ename, comm
from emp
where comm is not null;
[20] 사번의 정렬(오름차순)으로 출력
SQl>select empno, ename, comm
from emp
order by empno (asc);
오름차순이 디폴트 , asc 생략 가능
ascending 미국·영국 [əséndiŋ] 영국식 다른 뜻(1건) 예문보기 오르는, 상승적인; 위를 향한
[21] 사번의 정렬(내림차순)으로 출력
SQL>select empno, ename
from emp
order by empno desc;
descending 미국·영국 [diséndiŋ] 영국식 다른 뜻(1건) 예문보기 내려가는, 강하하는, 하향의(opp. ascending); 내림차순의
[22] 사원의 연봉 계산 출력
SQL>select ename, sal, sal*12
from emp;
SQL>select ename, sal, sal*12 "연봉"
from emp;
[23] 커미션을 포함한 최종 연봉 출력
SQL>select ename, sal, comm, sal*12+comm "연봉"
from emp;
null을 + 연산으로 더하면 연산을 수행하지 못해서 빈칸으로 결과가 출력된다.
[24][23]번의 오류 해결법
SQL>select ename, sal, comm, nvl(comm, 0), sal*12 + nvl(comm, 0) "연봉"
from emp;
nvl(comm, 0) 컴이라는 필드명에 null값이 있으면 0으로 채워주겠다. 테이블 값 자체를 변경하는 것은 아니다.
내가 원하는 데이터도 끄집어 내어올 수 있고 정렬의 기능, 조건식 안에 연산식을 넣어서 가공 가능
함수도 제공하고 있다.
NVL(Null값인 칼럼, 대체하고 싶은 값)
nvl => Null Value
댓글