아무튼 개발
article thumbnail
반응형

오라클은 ';'을 기준으로 결과값이 나온다

Ctrl과 Entre키를 함께 눌러줘야 한다.

 


 

SELECT * FROM TAB;

테이블을 보여준다

 

SELECT 컬럼명 FROM 테이블명; 

해당 테이블에서 입력한 컬럼들만 나타난다.

(컬럼1,컬럼2 이런 식으로 입력해야 한다. 다만 띄어쓰기 하지 않아야 한다.)

 

SELECT DISTINCT 컬럼명 FROM 테이블명; 

DISTINCT -> 해당 컬럼 값들 중 '중복을 제외'한 값들만 도출

 

SELECT 컬럼1,컬럼2,컬럼3 FROM 테이블명

ORDER BY 컬럼2;

컬럼2의 값을 기준으로 오름차순 정렬된다.

(컬럼2 옆에 ASC를 써줘도 오름차순되지만 안써도 기본이 오름차순! 내림차순은 DESC)

 

SELECT 컬럼1,컬럼2,컬럼2+1000 FROM 테이블명;

쿼리의 연산도 가능하다!

+1000을 해줌으로써 기존 컬럼2값에서 1000씩 더해진 값이 나타난다.

컬럼명 뒤에 as "바꿀 이름" 을 입력하면 컬럼명이 바뀌어 나타난다.

 

 

NULL값이 있는 컬럼을 정렬할 때에는

오름차순 기준으로 가장 마지막, 즉 큰 값보다 더 맨 마지막에 나온다.

 

NULL값이 포함된 컬럼의 연산)

BONUS 컬럼에 포함됐다고 가정하면,

--사원의 급여와 일년치 연봉(ANNUAL)을 구하시오
SELECT dno,pno,pname,pay,(pay*12)+NVL(BONUS,0) ANNUAL_PAY from PERSONNEL;

NVL 함수는 괄호 안 좌측에는 NULL값이 없을 시의 보너스 값이며

우측에는 NULL값이 있을 때 0으로 연산한다는 것이다.

NULL값은 연산 시 무조건 NULL로 다 변하기 때문이다.

 

 

||은 두 개의 컬럼을 연결해준다.

SELECT 컬럼1 || 컬럼2 FROM 테이블명;

|| ' ' ||는 컬럼 사이에 공백을 넣어서 보여준다.

 

 

WHERE 조건 & 연산자

조건을 WHERE을 통해 줄 수 있다.

 

연산자는 =, >, <, <=, >=, <> 이 있다.

논리연산자는 이 있다.

 

대표적인 사례만 들고 왔다.

--연산자
--업무가 CLERK인 사원을 찾으시오
SELECT * from PERSONNEL WHERE JOB = 'CLERK';


--논리연산자
--직업이 SALESMAN이고 90년 이후에 입사한 직원을 찾으시오
SELECT * FROM PERSONNEL 
WHERE JOB = 'SALESMAN' AND STARTDATE >= '91/1/1';

--업무가 SALESMAN,CLERK인 직원을 찾으시오
SELECT * FROM PERSONNEL
WHERE JOB IN ('SALESMAN','CLERK');

--업무가 SALESMAN,CLERK이 아닌 직원을 찾으시오
SELECT * FROM PERSONNEL
WHERE JOB<>'SALESMAN' AND JOB<>'CLERK';

1// 연산자

조건을 줄 때에는 무조건 대문자로 입력해야 한다!

오라클은 대문자로 인식하기 때문이다.

 

2//직업

'이고'는 AND이며

날짜는 YY/MM/DD로 주기 때문에 코드대로 입력해야 한다.

물론 '-'로 구분하여 입력할 수도 있지만 '/'가 더 정확하며 에러 가능성이 없다.

 

3//업무

'IN'은 괄호 속의 값만 인식한다.

즉 SALESMAN과 CLERK인 값만 가져온다.

범위를 의미하는 BETWEEN과 헷갈릴 수 있으니 주의하자.

 

4//위의 3번과 반대되는 식이다.

'<>'는 자바에서 '!'와 같은 의미로 반대를 뜻한다.

주의할 점은 양쪽이 부정이면 AND로 연결해야 한다는 것을 기억하자.

 

%

검색, 필터 기능을 하는 경우에는 

'='이 아니라 'LIKE'를 써줘야 한다!

 

'%'대신 '_'을 써주면

_는 자리 수를 의미하므로 A뒤에 한 글자만 오는 값을 나타낸다.

 

NULL을 조건에 입력

NULL을 조건에 입력하기 위해선 'IS'와 함께 입력한다.

결과

그러면 MANAGER컬럼이 NULL값인 결과가 나타난다.

반응형
profile

아무튼 개발

@릴쥬

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...