selct * from tab;
SELECT EMPNO, ENAME, COMM, COMM+100 FROM EMP;
DESC EMP;
SELECT 123123 * 12389182 FROM DUAL;
null 값을 가진 컬럼을 연산하기 위해서는 NVL 또는 NVL2 함수를 사용할 수 있다.
NVL 함수의 사용법은 다음과 같으며, 컬럼값이 null인 경우에 기본값으로 설정한다.
NVL ( 컬럼명, 기본값 ) or NVL2( 컬럼명, A, B )
select empno, ename, comm, NVL(comm,0) + 100 from emp;
select empno, ename, comm, nvl(comm,0) from emp;
select empno, ename, comm, nvl(comm,0), NVL2 (comm, 1,2) from emp;
• 컬럼에 별칭( alias ) 사용.
select dname as 부서이름 from dept; --as를빼도 상관없다.
select dname 부서이름 from dept;
select ename || job as "이름 직업" from emp;
[" "] alias별칭을 사용하는 경우에만 사용.
select ename || job as "이름 직업" from emp;
select ename || job || mgr "이름직업사원번호" from emp;
연결 연산자
• 여러 개의 문자열을 연결하여 하나의 문자열로 생성.
select ename || job as "이름 직업" from emp;
select ename || job || mgr "이름직업사원번호" from emp;
• 리터럴( Literal) • SELECT 문장에 포함된 컬럼명 또는 별칭 이외의 문자값, 숫자값, 날짜값이다. • 반드시 문자값 , 날짜값에는 ‘ ‘ 을 붙인다.
select ename||'의 월급은 '||sal||'이다' "사원별 월급" from emp;
select SMITH||'의 월급은 '||sal||'이다' "사원별 월급" from emp;-- 안됨
중복 행 제거
• DISTINCT 키워드 이용 중복된 값 제거하여 한번만 출력.
select distinct job from emp;--중복 제거
select job from emp;
WHERE
select from emp where ename = JAMES;
ORA-00904: "JAMES": 부적합한 식별자
00904. 00000 - "%s: invalid identifier"
Cause:
*Action:
38행, 33열에서 오류 발생
해결 ' '
select * from emp where ename = 'JAMES';
WHERE – 비교 연산자 1
select empno, ename, sal from emp where sal <= 1000;
select * from emp where job != 'SALESMAN';
select empno, ename, sal from emp where sal between 1000 and 2000;
select DEPARTMENT_NAME "학과명", CATEGORY "계열" from tb_department;
select department_name||'의 정원은 '||capacity||'입니다' "학과별 정원" from tb_department;
select department_no from tb_department where department_no = 001;
select student_name from tb_student where absence_yn = 'Y' and department_no = 001;
WHERE – 비교 연산자 2 SQL
• LIKE 연산자
-검색하고자 하는 문자열을 정확히 알 수 없는 경우에 사용.
7 ) 정렬 SQL
• SELECT 문장에 의해 검색된 결과를 정렬 ( 기본은 ASC )
SELECT [DISTINCT] { *, column [alias],… }
FROM table
[WHERE 조건식]ORDER BY {column , exp } [ASC|DESC] ];
• null
-오라클은 null값을 가장 큰 값으로
간주한다.