Oracle

데이터베이스_SQL_SELECT 문장 총정리 (WHERE, ORDER BY, 연산자)

원코딩 2022. 6. 21. 11:25

 

 

나는 지금 

자바 기반 웹 프로그래밍을 

배우고 있다. 

 

 

데이터를 가져올 때 

가장 많이 사용되는 문장은

SELECT 문장 이라고 한다. 

 

 

70%는 SELECT 문장이라고 하니 

정확하게 이해하고 넘어가야 될 것 같다.

 

 


1. SELECT ~ FROM ~


SELECT문은 데이터를

읽어 올 때 사용된다. 

 

SELECT (컬럼명) FROM (테이블)

생략이 불가능한 필수 값이다. 

즉, 가져오고자 하는 속성과

속성의 테이블은 꼭 입력해야 한다.

 

 

예제1)

emp 테이블의  모든 데이터를 출력하세요.

답) SELECT * FROM emp

 

* : 모든 속성(컬럼)을 출력한다. 

 

 

예제2)

emp 테이블에서 이름 ename과 

사번 empno을 출력하세요.

답) SELECT ename,empno

FROM emp

 

 

 


2.  WHERE


 

WHERE 절은 조건을 나타낸다. 

( IF 와 비슷한 역할 )

 

 

원하는 조건을 입력 해야하니

관련 연산자를 숙지하는 것이 중요하다. 

 

= 같다
<> ,   !=  ,  NOT 같지 않다
AND 그리고 (~ 이고)
OR 또는
& 입력값을 받음 *주의 필요*
IN OR 기능과 같음,여러개의 조건을 찾을 때 유용
BETWEEN  a AND b a와 b 사이의 값
IS NULL 공백일 때 
IS NOT NULL 공백이 아닐 때 
LIKE % 모든 값 대체 
_ 한글자 대체 
|| 문자열 결합
' ' 문자형, 날짜형 ' ABC '  ,   ' 21-03-20 '
java에서 데이터 가져올 때 
정수에는 " " 그냥 가져오면 되지만
문자형은 ' "   " ' 가져와야함 

 

예제1)

입사일자가 82년 이후에 입사한 사람

답) WHERE hiredate > '82-12-31'

 

 

예제2)

보너스가 300이거나 5000이거나 1400인 사람

답) \WHERE comm IN(300,5000,1400)

 

 

예제3)

이름의 두번째 글자가 A가 들어가는 사람

답) WHERE ename LIKE '_A'

 

 

예제4)

부서번호가 10이 아닌 직원

답) WHERE deptno <> 10;

 

 

예제5)

 이름에 A가 없는 직원

답) WHERE ename NOT LIKE '%A%'

 

 

예제6)

보너스가 500에서 1400이 아닌 직원

답) WHERE comm NOT BETWEEN 500 AND 1400

 

 

예제7)

커미션을 받는(커미션이 null값이 아닌) 직원

답) WHERE comm IS NOT NULL

 

 

 

 


3. ORDER BY


 

ORDER BY 절은 정렬할 때 사용된다. 

등수가 높은 순서대로 출력하고 싶다거나,

높은 비용을 지출하는 순서대로 출력하고 싶을 때

문장의 마지막에서 사용된다. 

 

 

[ ASC (생략) ]

오름차순

작은 수에서 큰 수로의 출력

1등부터 출력하고 싶을 때

앞 번호부터 출력하고 싶을 때

 

 

[ DESC ]

내림차순

큰 수에서 작은 수로의 출력

큰 금액부터 출력하고 싶을 때

최근 날짜부터 출력하고 싶을 때

 

 

예제) 

월급을 많이 받는 순으로 출력하라

답) ORDER BY sal DESC;

 

예제)

학번 순서대로 출력하라

답) ORDER BY no; 

(ASC는 생략 가능)

 

 

ORDER BY 는 꼭 마지막에 오는 것을 기억하자!

 

 


4. GROUP BY

HAVING


 

동시에 여러 대이터를 제어하기 위해서

그룹으로 묶는 방법이 있다. 

 

그룹의 조건을 주는 것은 HAVING이다 .

 

2022.07.06 - [DB/SQL] - [DB/SQL] 오라클 그룹 조건 주는 방법 GROUP BY , HAVING

 

[DB/SQL] 오라클 그룹 조건 주는 방법 GROUP BY , HAVING

테이블의 각 열에 대한 계산이 필요할 때 사용하는 것이 집합 함수이다. 그리고 특정 그룹에 대한 연산이 필요할 때 사용하는 것이 GROUP BY이다. 그룹에 조건을 줄 때는 WHERE절이 아닌, HAVING절을

codingwone.tistory.com

 

 


형식 / 순서


 

[ 필수문장 ] 

1. SELECT * 컬럼명

2. FROM 테이블명

 

[ 여기서부터는 선택 ] 

3. WHERE 조건문

4. GROUP BY 그룹컬럼|함수

5. HAVING 그룹조건

6. ORDER BY 컬럼명|숫자|함수 (ASC/DESC)

 

 

 

순서를 지키지 않으면 

실행이 안되니 

꼭 순서를 유념하자 !