수업 내용/오라클(Oracle)

(33일차) 12월 9일

효자로 캉테 2021. 12. 9. 12:45

문자 데이터 조회

 - SQL문은 원래 대소문자를 구별하지 않지만 테이블 내에 저장된 데이터 값은 대소문자를 구분함

    ex) WHERE ename='ford' => 'FORD'를 찾을 수 없음

 

 

NULL

 - where 조건문에서 NULL이 있는 속성값을 찾을 때 IS NULL을 사용해야 함

 - 정렬할 때 NULL값은 ASC(오름차순)일 때 가장 마지막에 나오고 DESC(내림차순)일 때 가장 먼저 나온다

  ex) WHERE comm is NULL; 사용 O

       WHERE comm = NULL; 사용 X  =>  NULL이 어떤 값인지 결정되지 않아 연산자로 사용 불가

 

 

 

5장 SQL 주요함수

 

DUAL 테이블

 - DUAL 테이블은 DUMMY라는 단 하나의 컬럼(열, 속성)으로 구성되어 있는 것 

 - 단 하나의 열에 단 하나의 행만을 저장

 - 화면에서 단순 확인하기 위해서 사용하는 테이블

 

 * DESC + table이름 => table의 상세 정보를 화면에 출력

 * SYSDATE : 오늘 날짜를 구하는 키워드

 

 

숫자함수

 

 * CEIL(실수값) : 소수점 자리의 최대값인 1과 정수를 더한 값을 리턴  ex) SELECT CEIL(1.0000001) => 2 

 * ROUND(실수값, 소숫점 자리수) : 소숫점 자리수가 양수인 경우는 소숫점 이하 반올림, 음수인 경우는 소숫점 이상(정수)의 자리수를 반올림

 * ROUND(날짜, 'MONTH') : 16일 기준으로 반올림(16일 보다 적으면 이번 달, 16일 보다 크면 다음달로 반올림)

 

 

 

문자처리 함수

 

 * INSTR(대상,  '찾을글자',  검색시작위치,  몇 번째 검색결과) : 찾고자 하는 문자의 위치를 return

 

 

 

 

 

날짜함수

 

 

 

 

 * NVL(대상, 설정값) : NULL VALUE의 약어, 속성값이 null일 때 값 설정 

 

 

 

6장 그룹 함수

 

7장 조인

 

 테이블에 별칭 부여하기

SELECT E.ename, D.dname, E.deptno, D.deptno
FROM emp E, dept D
WHERE E.deptno = D.deptno AND E.ename='SCOTT';

 

 

8장 서브 쿼리

 

 


 

 

2. SQL_Basic2.sql (Scott) 

 

-- SCOTT과 동일한 근무지에서 근무하는 사원의 이름을 출력하시오
SELECT f.ename 
FROM emp e, emp f
WHERE e.deptno=f.deptno AND e.ename='SCOTT' AND f.ename<>'SCOTT';

 

 

-- ANSI JOIN 예제

-- 1. CROSS JOIN (카디전 프로덕트)
SELECT *
FROM emp CROSS JOIN dept;


-- 2. Inner JOIN (동등조인) 
-- ON 동등조인
SELECT ename, dname
FROM emp INNER JOIN dept
ON emp.deptno = dept.deptno;

-- USING 동등조인 
SELECT ename, dname
FROM emp INNER JOIN DEPT
USING (deptno)


-- 3. Natural Join (자연조인) : equi-join의 결과에서 중복된 속성을 1개로 줄여줌
SELECT *
FROM emp NATURAL JOIN dept;