DB/oracle

sql basic (4) -select

@예민한 방구석여포 힘히힘 2021. 1. 15. 12:00
반응형

*출저 구루비넷*

*퍼옴 구루비넷*

 

 

 

이제... 친구들의 데이터는 놓아주기로 했다. 

행복했다...!

안녕 애들아. 

다음에 필요하면 또 사용할께 

 

친구들의 데이터 있는 곳 ㅜㅜ

 

 

1. 친구들 테이블... 지방은 따듯하니?

2. 친구들 데이터 넣기... 행복해 애들아

 

 

 

 


SELECT 문법

 

SELECT [DISTINCT] column [ alias: 별칭]

FROM [테이블 이름]

WHERE [조건]

ORDER BY 

 

 

  • DISTINCT : 중복되는 행을 제거하는 옵션.
  • alias : 해당 column에 대해서 다른 이름을 부여할 때 사용.
  • ORDER BY : 질의 결과 정렬을 위한 옵션(ASC:오름차순(Default),DESC내림차순)

 

 

 

 

이번에 사용할 테이블은 EMP

 

 

 

 

# 예제1

#별칭 붙이기

 

SELECT empno 사번, ename 성명
FROM EMP
WHERE DEPTNO= 10;

 

이런식으로 empno에 별칭을 사번으로 ename 의 별칭을 성명으로 출력가능~

 

depno=10 데이터

 

 

 

 

 

 

job, sal에 별칭을 붙이고, 연봉 2500인 데이터를 뽑아보았다. 

SELECT job 직업, sal 연봉
FROM EMP
WHERE sal > 2500;

 

모두 부자 됩시다...!

 

 

 


 

WHERE 절에 사용될 수 있는 SELECT 연산자.

BETWEEN a AND b a와 b사이의 데이터를 출력.(a, b값 포함)
IN (list) list의 값 중 어느 하나와 일치하는 데이터를 출력
LIKE 문자 형태로 일치하는 데이터를 출력(%, _사용)
IS NULL NULL값을 가진 데이터를 출력 합니다.
NOT BETWEEN a AND b a와 b사이에 있지않은 데이터를 출력(a, b값 포함하지 않음)
NOT IN (list) list의 값과 일치하지 않는 데이터를 출력
NOT LIKE 문자 형태와 일치하지 않는 데이터를 출력
IS NOT NULL NULL값을 갖지 않는 데이터를 출력

*출처 구루비넷*

 

 

 


#IN 연산자

--예 ) 사번이 7900, 7934번인 사원의 사번과 성명 출력

 

 

주의 @@@ 이거아님. 이거아님. 

SELECT empno 사번, ename 성명 
FROM EMPNO  
WHERE empno=7900, 7934;

ㅎㅎ 너무 단순하게 생각해서 틀림 오류 줌...!

심지어 제목은 IN 연산자 였음... 👶

 

 

 

정답)

SELECT empno 사번, ename 성명
FROM EMP
WHERE empno IN (7900,7934);

 

 

#NOT IN 연산자

--예) 사번이 7900,7934번이 아닌 사원의 사번과 성명 출력

SELECT empno 사번, ename 성명
FROM EMP
WHERE empno NOT IN (7900,7934);

🙌🙌🙌

 

 

 

 

#BETWEEN 연산자

--예) 급여가 3000에서 5000사이인 사원만 조회.

SELECT empno, ename
FROM EMP
WHERE sal BETWEEN 3000 AND 5000;

 


#LIKE 연산자

 

 

LIKE 'A%' 'A'로 시작하는 데이터만 검색
LIKE '%A' 'A'로 끝나는 테이터들만 검색
LIKE '%KIM%' 'KIM' 문자가 있는 데이터 들만 검색
LIKE '%K%I%' 'K' 문자와 'I'문자가 있는 데이터 들만 검색
LIKE '_A%' 'A'문자가 두 번째 위치한 데이터 들만 검색

*출처 구루비넷*

 

 

 

- % 여러개의 문자열을 나타내는 와일드 카드

- _ 단 하나의 문자를 나타내는 와일드 카드

 

 

 

--예) 'K'문지가 들어있는 사원 정보 조회

또 틀림 ㅜㅜ...

SELECT empno 사원 ename 성명
FROM EMP
WHERE upper(ename) LIKE '%K%';

 

SQL Error [923] [42000]: ORA-00923: FROM keyword not found where expected

 

from 의 위치 잘못 설정함.

틀린그림 찾기 해보니 

ㅋㅋ

empno 사원 ename 성명 사이에 콤마 ( , ) 빼먹음!

 

 

 

SELECT empno 사원, ename 성명
FROM EMP
WHERE upper(ename) LIKE '%K%';

 

 

++

 

SELECT empno 사원, ename 성명
FROM EMP
WHERE upper(ename) LIKE '_I%';

 

 

 


#order by

데이터를 정렬 해보자!

 

 

ASC -> 오름차순.

SELECT empno, ename
FROM EMP
WHERE upper(ename) LIKE '%K%'
ORDER BY ename ASC;

 

 

 

 

DESC -> 내림차순

SELECT empno, ename
FROM EMP
WHERE upper(ename) LIKE '%K%'
ORDER BY ename desc;

 

 

 

'DB > oracle' 카테고리의 다른 글

[sql] 집계함수, 숫자함수  (0) 2021.01.21
[sql] select 구문  (0) 2021.01.21
sql basic (4) -select  (0) 2021.01.15
SQL basic (3) -data  (0) 2021.01.13
SQL basic (2) - data  (0) 2021.01.12
SQL basic (1) - table  (0) 2021.01.11