Search

반응형

'하는법'에 해당되는 글 24건

  1. 2020.09.07 [HOW]SQL에서 널(NULL)처리 함수 사용하는 법, NVL, NULLIF, COALESCE 그리고 공집합.. -ORACLE(오라클)
  2. 2020.08.30 [영문법 HOW]동사 문제 쉽게 푸는 방법 - 왕초보 버전
반응형

안녕하세요. 신기한 연구소입니다.

SQL 작업을 하다 보면 NULL 처리가 필요한 경우가 많은데요.

SOL에서 NULL 처리를 하는 방법에 대해 알아봅니다.

오라클 기준으로 같이 살펴보겠습니다.

 


우선 NULL에 대해 알아볼게요.

NULL은 아직 정의가 안되었다, 또는 배정이 안 된 상태를 말합니다.

빈 값(공백)이나 0과는 다른 값이므로 주의해야 합니다. ASCII값도 다르거든요.

NULL의 특징 중 하나는 해당 값과 연산(+,-,*,/)을 해도 무조건 NULL이 나온다는 겁니다.

 

NULL에 대한 함수를 살펴보겠습니다.

우선 우리가 SELECT 문을 통해 데이터를 조회했는데 특정 컬럼의 값이 NULL이 나오는 경우가 있습니다.

이런 경우 대체할 값을 넣으면 좋은데요.

 

NVL이라는 함수를 사용하면 됩니다.

 

NVL(표현식_1, 표현식_2)

표현식_1의 값이 NULL이면 표현식 2의 값을 보여주고 NULL이 아니면 표현식_1의 값을 그대로 보여주는 함수입니다.

 

먼저 dept테이블의 loc 컬럼에 NULL값을 넣고 입력합니다.

조회하면 NULL로 표시됩니다.

아직 값이 할당 안되었다는 의미입니다.

사용자 화면에 NULL로 표시되면 일반 사용자들은 무슨 의미인지 모르겠지요?

Loc가 NULL인 경우는 ‘미설정’으로 변경해서 사용자에게 보여줄 수 있습니다.

5번째 라인에 NULL값이 '미설정'으로 변경된 것을 확인할 수 있습니다.

다음으로 NULLIF()에 대해 살펴봅니다.

 

NULLIF(표현식_1, 표현식_2)

표현식_1의 값과 표현식_2의 값이 같으면 NULL을 반환하는 함수입니다.

 

5번째 loc값과 NULL이 같기에 결과가 NULL로 나왔습니다.

 

3번째 dname값이 'SALES'면 NULL을 반환한다는 표현이기에 NULL로 변경된 것을 확인할 수 있습니다.

 

마지막으로 하나 더 살펴볼 함수는 COALESCE입니다.

 

COALESCE(표현식_1, 표현식_2, …)

표현식_1의 컬럼 중 NULL이 아닌 첫 번째 값을 보여줍니다.

표현식_2도 같은 원리이며 원하는 만큼 컬럼을 지정하면 됩니다.

 

 

coalesce(loc, dname)으로 표현식을 만들었는데 5번째 loc값이 NULL이어서 그다음 dname값인 IT가 나온 것을

확인할 수 있습니다.

 

 

AAA, BBB, CCC 컬럼값을 확인해 보면

ANO가 2인 경우 AAA는 NULL,

ANO가 3인 경우 AAA, BBB는 NULL입니다.

COALESCE를 사용하면 1행은 AAA가 값이 있으니 해당 값인 1

2행은 AAA가 NULL이기에 패스~ BBB는 값이 있으니 해당 값인 2

3행은 AAA, BBB가 NULL이기에 패스~ CCC는 값이 있으니 해당 값인 3

이 표출됩니다.

 

마지막으로 실전에서도 자주 사용하는 공집합에 대해 알아봅니다.

deptno가 60인 행은 없습니다.

그럼 데이터 자체가 존재하지 않기에 첫 번째 쿼리처럼 nvl함수를 사용해도 값이 나오지 않습니다.

그래서 max() 또는 min() 함수를 사용해서 NULL을 리턴 받은 다음 nvl을 사용하면

'no data'가 표출됨을 확인할 수 있습니다. 

이렇게 NULL에 대한 함수를 알아봤습니다.

수정이 필요하거나 잘못된 내용이 있으면 댓글 주세요.

아래 하트(공감) 버튼을 눌러서 더 다양한 글을 쓸 수 있게 응원 부탁드립니다. 감사합니다.

반응형
반응형

안녕하세요. 신기한 연구소입니다.

초등학생 아이가 영문법 공부를 시작했는데...

기본 내용을 공부하고 문제를 푸는데 어려움을 호소하더군요.

그래서 쉽게 푸는 방법을 알려줬더니 훨씬 이해가 잘 된다면서 좋아하더군요.

영문법 문제 풀기 어려운 친구들~ 왕초보 버전으로 쉽게 함 도전해 볼까요?

하나하나 초보 버전으로 쉽게 접근하면서 푸는 재미를 느끼면

어느 순간 영어에 자신감도 생기고 재미를 느낄 수 있답니다.

 

빈칸 넣기

동사 부분을 빈칸으로 두고 선택하는 문제로 문장을 확인하는 방법입니다.

1. 보기에서 동사가 아닌 것들을 제거합니다. V~ing, to V, 과거분사 등.. 

(bring은 V~ing가 아닌 자체가 동사로 혼동하면 안 됨)

2. 보기에서 동사가 2개인지 확인합니다. (be동사와 일반동사 혼용) 

3. 주어를 확인합니다. 1, 2, 3인칭인지 단수, 복수인지 확인합니다.

4. 부사구에 시간 정보가 있는지 확인합니다.

 

그럼 예문을 통해 살펴봅니다.

Q. My mom (  ) at home.

a. cooking  b. to cook c. is cook d. cook e. cooks

 

Q. I (  ) student English yesterday.

a. teach  b. will teach  c. teaching  d. teaches e. taught

 

첫 번째 예문을 보겠습니다.

1. 동사가 아닌 것들 제거합니다. a. cooking, b. to cook

2. 동사가 2개인지 확인 후 제거합니다. c. is cook

3. 주어를 확인합니다. My mom은 3인칭 단수입니다. 그럼 현재형이면 ~(e)s를 붙이면 되겠네요.

4. 시간 부사구는 안보입니다

그래서 답은 e가 됩니다. 쉽죠?

 

두 번째 예문을 보겠습니다. 

1. 동사가 아닌 것들을 제거합니다.  c. teaching

2. 동사가 2개인지 확인 후 제거합니다. b. will teach 가 2개인 듯 보이지만 will은 조동사로 

문제없습니다. 제거할 게 없네요.

3. 주어를 확인합니다. I 이기에 현재형이면 ~(e)s가 안 붙겠네요.

d. teaches를 제거합니다.

4. 시간 부사(구)가 yesterday로 과거이기에 동사도 과거형을 사용하면 됩니다.

그럼 답은 e. taught 가 됩니다. 쉽죠?

 

꼭 동사뿐만 아니라 주어, 부사구를 찾는 문제도 낼 수 있답니다.

당연히 위 4가지를 잘 확인하면 쉽게 풀 수 있답니다.

 

주어 찾기

Q. ( ) don't want to go there.

a. He   b. Mary  c. Mr.Smith d. The dog  e. I

 

동사를 확인합니다. 바로 want인데 부정형에 현재시제라 don't네요.

현재시제의 부정은 don't와 doesn't 두 가지가 있는데요.

don't는 1, 2 형식과 복수형에 사용됩니다.

그럼 여기에 해당하는 e.I가 답이네요.

 

부사(구) 찾기

Q. They played basketball (  ). 들어가면 안 되는 말.

a. 5 days ago  b. yesterday  c. last Monday  d. the day before yesterday  e. tomorrow morning

 

동사가 과거형입니다.

그렇다면 시간 부사(구)는 과거만 되겠죠?

e. tomorrow morning은 미래를 나타내기에 들어가면 안되는 말입니다.

 

지금까지 동사 관련 문제 푸는 방법에 대해 살펴봤는데요.

가장 중요한 것은 바로 적절한 인칭, 시제, 수를 잘 적용했는지를 살펴보면 답을 쉽게 찾을 수 있어요.

또한 동사의 규칙, 불규칙 변환에 대해서도 문제를 낼 수 있기에 문법책에 있는 불규칙 동사 표

잘 공부하면 많은 도움이 될 거예요.

잘못된 정보나 수정할 부분이 있으면 댓글 주세요.

즐거운 영어 공부하세요.

 

 

 

반응형