SQL NULL, DISTINCT, WHERE

Devel/DB_SQL|2020. 7. 21. 22:16
반응형

NULL

NULL이란 값이 들어가 있지 않다는 뜻.
 
반대로 NOT NULL은 비어있으면 안된다. 무조건 채워져 있어야함.
 

 
+NULL 값 강제로 지정할때 문법: NVL(컬럼명, 기본값)
EX.

SELECT EMPNO, ENAME, COMM, NVL(COMM, 0) FROM EMP;

 
NVL2(컬럼명, A,B)= NULL경우 2, 아닌경우 1. 두개중에 골라서 나온다.
 
EX.

ENAME, COMM, NVL(COMM,0),NVL2(COMM, 1, 2) FROM EMP;

 
  • 두개의 문자를 붙여줄때 (||) ENTER 위에 위치함.

EX.

SELECT ENAME || JOB AS "이름 직업" FROM EMP;
SELECT ENAME || SAL AS "사원 월급" FROM EMP;
 
**"  " = 띄어쓰기 할 때 "" 로 묶어줘야 함.
 
  • 문자값, 날짜값에 ' ' 를 붙인다.

EX.

 

SELECT ENAME || '의 직급은' || JOB || '이다' AS "사원별 직급" FROM EMP;

 

SELECT ENAME || '의 직급은' || JOB || '이다' AS "사원별 직급" FROM EMP;

SELECT ENMAE || '의 월급은' || SAL || '이다' AS "사원 월급" FROM EMP;
 
**주의!!데이터베이스 안에는 ''로 연결.
컬럼의 이름 설정 만 ""로 연결.
 

중복 행 제거 (DISTINCT)

데이터의 중복 값을 제거해주는 기능이다.
EX.
 

SELECT DISTINCT JOB FROM EMP;

SELECT DISTINCT CATEGORY FROM TB_DEPARTMENT;

 

WHERE

 
WHERE 뒤에는 조건을 기술한다.
 
EX. 사원 파일에 제임스이름인 사람의 모든 파일을 가져와라.
 

SELECT * FROM EMP WHERE ENAME = JAMES;

 

WHY?
컬럼 이름이 잘못됬거나, 문자로 써야 하는데 ' ' 로 안묶어 줬거나.
 

SELECT * FROM EMP WHERE ENAME = 'JAMES';

 
+JAMES 문자이기 때문에 ''로 묶어줘야한다. (+날짜인 경우에도 '' 묶어줌)
 

SELECT DNAME FROM DEPT WHERE LOC = 'DALLAS';

 

SELECT DNAME FROM DEPT WHERE LOC = 'DALLAS';

 

+대소문자 다르게 쓸 경우, 
SQL문 사용 때는 상관없지만, 자료 검색 할때는 대소문자 정확하게 사용해야한다.
 

 

댓글()
loading