메모장

Oracle DBMS ' NVL ' 본문

DB/개념정리

Oracle DBMS ' NVL '

Itchild 2024. 4. 10. 22:42
728x90
반응형

< MySQL 문법 >

static final String SQL_INSERT = "INSERT INTO BOARD (MID,MNAME,PNUM,BCONTENT,BSTAR) VALUES (?,?,?,?,?)";

 

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ DBMS 를 변경할 때

 

< Oracle 문법 >

static final String SQL_INSERT

= "INSERT INTO BOARD (BID,MID,MNAME,PNUM,BCONTENT,BSTAR) VALUES ((SELECT NVL(MAX(BID),0) + 1 FROM BOARD),?,?,?,?,?)";

 

'NVL' 은 Oracle 데이터베이스에서 사용되는 함수 중 하나로, NULL 값을 처리하는 데 사용된다. NVL 함수는 첫 번째 인수로 받은 값이 NULL인 경우 두 번째 인수로 지정한 값으로 대체한다. 이를 통해 데이터 조회나 연산 시 NULL 값이 발생하는 경우에 대비하여 원하는 기본값을 제공할 수 있다.

 

예시

 

NVL(expression, replacement_value)

  • expression: NULL 여부를 확인하고자 하는 값이다.
  • replacement_value: expression이 NULL인 경우 대체할 값이다.

 

 

(SELECT NVL(MAX(BID),0) + 1 FROM BOARD),?,?,?,?,?

==> 해석하자면 MAX(BID) 가 null 이면 0 으로 바꿔줘 !

거기에 +1 이다. 1 다음 부터는 최대값에 계속 +1 을 해줘 !

Oracle에는 auto_increment 구문이 없기 때문에 NVL 구문으로 대체

 

 

 

728x90
반응형

'DB > 개념정리' 카테고리의 다른 글

[DB] 트리거  (0) 2024.04.10
유니크 키 (Unique Key)  (0) 2024.04.10
WHERE 1=1  (0) 2024.04.10
JOIN 과 순위함수  (0) 2024.04.10
데이터 그룹화 GROUP BY,HAVING,그룹함수  (0) 2024.04.10