오라클 기본 4

이정우·2021년 10월 13일
0

오라클

목록 보기
4/5

ORDER BY에서는 1,2,3 같은 숫자 사용 가능. 의미는 SELECT의 필드 순서. 첫 필드는 1. 두 번째 필드는 2..이런식.

Null의 처리 방법

IS NULL => NULL값 추출
IS NOT NULL =>NULL값이 아닌 값 추출

SELECT *
FROM EMP e
WHERE COMM IS NULL

SELECT *
FROM EMP e
WHERE COMM IS NOT NULL

NULL값은 계산에서 포함되지 않는다.

무언가 계산을 할 경우 결과에는 NULL값들이 표시되지 않는다.
WHERE COMM <> 1400이러면 NULL값을 제외. NULL 값 넣고 싶으면
OR COMM IS NULL 해주자.

무엇이 아닌 경우

WHERE GRADE <> 'A+'
A+가 아닌 경우.

중첩 질의 IN , NOT IN

쿼리문이 2개?

SELECT title
FROM COURSE c
WHERE COURSE_ID IN
(SELECT DISTINCT course_id
FROM CLASS c2
WHERE classroom = '301호'
)
우선 IN안의 쿼리문 실행. 301호 찾음. 그 후 IN에서 구한 값중에서 COURSE_ID값들만 구해서 해당 값들의 TITLE을 출력해줌.

SELECT DISTINCT TITLE
FROM COURSE c, CLASS c2
WHERE c.COURSE_ID = C2.COURSE_ID
AND classroom = '301호'

같은 결과를 도출해내는 쿼리문.

NOT IN
()안의 조건이 아닌 TITLE명들.
SELECT TITLE
FROM COURSE c
WHERE COURSE_ID NOT IN
(SELECT DISTINCT COURSE_ID
FROM CLASS c2
WHERE YEAR = 2012 AND SEMESTER = 2
)

뷰(view)

  • 기존의 테이블로 만드는 가상의 테이블. 고객들에게 일부분의 테이블만 보여줄 수 있어서 보안성 향상.

OR REPLACE -> 없는 뷰일경우 새로 생성. 이미 있을 경우 기존 뷰를 삭제하고 덮어씌움.

  • 일반적으로 관리자 계정이 아닌 사용자 계정에서는 뷰 생성 권한이 존재하지 않음. 현재 DBA권한을 미리 줬어서 사용 가능 상태.

  • 뷰 생성
    CREATE OR REPLACE VIEW v_takes AS
    SELECT stu_id, class_id
    FROM takes

CREATE VIEW v_takes AS 처음 만드는 거면 or replace 없어도 괜찮다.

  • 일반적인 INSERT INTO, DELETE, UPDATE등도 실행 가능하나, view에 값을 추가해주거나 하면 원본 테이블에도 영향이 미친다. 원본 테이블에 없는 값은 NULL로 자동으로 채워짐.

DROP VIEW 뷰 삭제

DROP VIEW CS_STUDENT

WITH READ ONLY. 읽기 전용 뷰.

DELETE UPDATE INSERT와 같은 데이터 조작 언어를 못 쓰게 하고 싶다면 WITH READ ONLY 사용

CREATE OR REPLACE VIEW V_TAKES AS
SELECT STU_ID, CLASS_ID
FROM TAKES
WITH READ ONLY

출처 : 국비 교육

profile
프로그래밍 공부 중!

0개의 댓글