SELECT ename, sql, job, hiredate,deptno
FROM emp
WHERE ename = 'SCOTT'
문자 및 날짜 : 양쪽에 싱글 쿼테이션 마크 / 숫자는 필요없음
SQL문은 대소문자 구분하지 않지만, 데이터는 대소문자를 구분하므로 대소문자를 구분하여 작성
SELECT empno as 사원번호, ename as 사원이름, sal as "Salary"
FROM emp;
as절에서 표기하고 싶은 문자열을 그대로 나타내려면 더블 쿼테이션 마크
EX) '_', ' ' 등의 문자 포함 및 대소문자 구분 출력
예제. 사원 테이블에서 이름과 월급을 서로 붙여서 출력해보세요.
SELECT ename || sal
FROM emp;
SELECT ename || '의 직업은' || job || '입니다.'
FROM emp;
|| 연산자 : 문자 및 칼럼을 합쳐서 출력
특정 문자 열을 출력할 시, 싱글 쿼테이션 마크를 포함하여 입력함
distinct : 중복 데이터를 제거하여 출력
SELECT DISTINCT deptno
FROM emp;
데이터 정렬 출력
SELECT ename,sal
FROM emp
ORDER BY sal [asc/desc]
SELECT ename,sal
FROM emp
ORDER BY 2 [asc/desc]
default : desc(내림차순 정렬)
--------------------------------------------- 1차시 마무리
쿼리의 실행순서 : from -> where -> select
코딩순서 : select -> from -> where
위와 같이 실행순서에서 WHERE 절이 SELECT 보다 앞서기 때문에, 아래 쿼리문 실행 시 에러 발생
SELECT ename,sal * 12 as 연봉
FROM emp
WHERE 연봉 >= 36000; -- 에러 발생
아래와 같이 수정이 필요함
SELECT ename,sal * 12 as 연봉
FROM emp
WHERE sal * 12 >= 36000; -- 에러 발생
예제. 직업이 SALESMAN이 아닌 사원들의 이름과 직업을 출력하시오
SELECT ename, job
FROM emp
WHERE job != 'SALESMAN';
'!=' <-> '^=', '<>'
BETWEEN 구문 : 범위 이상 - 이하 포함 구문
예제. 월급이 1000이상 3000 이하인 사원들의 이름과 월급을 출력하시오
SELECT ename, sal
FROM emp
WHERE sal BETWEEN 1000 AND 3000;
SELECT ename, sal
FROM emp
WHERE sal >= 1000 AND sal <= 3000;
예제. 월급이 1000이상 3000 이하가 아닌 사원들의 이름과 월급을 출력하시오
SELECT ename, sal
FROM emp
WHERE sal NOT BETWEEN 1000 AND 3000;
SELECT ename, sal
FROM emp
WHERE sal < 1000 AND sal > 3000;
비교 연산자(LIKE)
WHERE ename like 'S%';
WHERE ename like '%M';
WHERE ename like '_T%'
% : 개수 상관없다
_ : 하나만 대체
IS NULL
NULL : 데이터가 없는 상태/ 알 수 없는 값(ORACLE)
WHERE comm = NULL; -- 오류 발생
WHERE 절의 칼럼 결과에서도 단일 함수 적용이 가능하다
예제. 대문자인 데이터에 대해서 소문자로 검색이 가능하도록 하세요.
SELECT ename, sal
FROM emp
WHERE LOWER(ename) = 'scott';