컴퓨터(Computer Science)/데이터베이스, DB, DataBase

SQL(Structured Query Language) + 보충내용(NULL처리, 중첩질의, 뷰(VIEW))

게임이 더 좋아 2020. 12. 12. 14:37
반응형
728x170

 

++이전 글에 더 첨언해서.. 글을 써보자

 

NULL의 처리는 어떻게 할까?

 

NULL을 검색하는 방법

SQL

<필드이름> is null

<필드이름> is not null

 

grade 필드 값이 NULL인 경우 질의 결과에 포함되지 않는 경우가 있다.

* 하지만 COUNT의 경우 NULL의 존재와 무관하게 레코드 전체에 조사하기 때문에 상관없다.

 

 

 

중첩 질의(Nested query)

:SQL 문 안에 다른 SQL 문을 중첩하여 사용하는 질의를 말한다.

-> 복잡한 질의를 쉽게 표현하기 위해서 만듬

쓰이는 용어로는 1. 내부 질의(inner query) 2.부질의(sub query) 3. 외부 질의(outer query)가 있다.

-> 내부질의는 내부에 포함된 SQL문을 말하며, 외부 질의는 부 질의를 내부적으로 갖는 SQL문을 말한다.

다시 말해서, 부 질의는 외부 질의의 FROM이나 WHERE절에 위치하게 된다.

 

종류는 무지하게 많다.

IN, NOT IN

SOME, ANY, ALL

EXISTS, NOT EXISTS

 

종류에 대해서 하나하나씩 알아보자.

 

IN, NOT IN 

느낌이 딱 온다. ~안에 있는지 없는지 물어볼 것 같다. 맞는지 확인해보자

역시나 느낌이 맞다. 

 

만약 중첩 질의가 없었다면??

요런식으로 써줘야 한다. 

 

 

SOME, ALL에 대해서 알아보자

그냥 읽어보면 되는 정도?

 

그렇다고 예를 들어보지 않으면 안되겠지?

 

 

 

다음으로는 EXISTS, NOT EXISTS에 대해서 알아보자

딱 봐도 존재 여부를 묻는 것 같다.

아마 TRUE, FALSE로 나올 것 같은 느낌이다.

 

EXISTS : 최소한 하나의 레코드가 존재하면 참, 그렇지 않으면 거짓

NOT EXISTS: 부 질의의 결과에 레코드가 하나도 없으면 참, 하나라도 존재하면 거짓

 

 

 


 

마지막으로는 VIEW(뷰)에 대해서 알아보겠다.

 

 

뷰, VIEW

-기존 테이블들로부터 생성되는 가상의 테이블

-테이블처럼 물리적 생성 x, 기존의 테이블들을 조합해서 사용자에게 보여주는 logical 테이블

-기능

1. 특정 사용자에게 테이블의 내용 일부를 숨길 수 있어서 보안의 효과 기대가능

2. 복잡한 질의의 결과를 뷰로 만들어서 사용하면 질의를 간단히 표현 가능

 

** 뷰는 테이블과 동등하게 사용 가능하다.

 

CREATE OR REPLACE VIEW  <뷰 이름>  as  < SELECT문>

**OR REPLACE를 사용하는 이유는 뷰 이름이 같은 것이 있다면 기존의 것을 입력한 것으로 바꾸는 역할을 함

<SELCET 문> 뷰 생성에 사용될 SQL문이다.

 

***대부분의 DBMS에서는 관리자 계정만 뷰를 생성할 권한을 준다.

 

생성은 이렇게 한다.

 

그리고 뷰에 대해서 삽입, 수정, 삭제까지 가능하다. 테이블을 다루는 방법과 같다.

 

 

++ 수정 못하는 읽기 전용 뷰도 만들 수 있다(역시 관리자 권한)

 

 

 

728x90
반응형
그리드형