Purple Bobblehead Bunny

Database

[OracleDB] SELECT

준영어린이 2022. 5. 15. 16:00

 

용도 -> 데이터 검색, 칼럼을 가공 처리하여 조회 가능

 

테이블 전체 조회

 

select * from 테이블명;

 

테이블 내의 몇가지 컬럼 조회 

 

select 칼럼1, 칼럼2 from 테이블명;

 

테이블 내의 몇가지 칼럼 중 특정 데이터만 조회

 

select 칼럼1, 칼럼2 from 테이블명 where 칼럼3="값";

 

칼럼에 별칭을 붙여 조회

 

select 칼럼1 "별칭1", 칼럼2 as "별칭2" , 칼럼 별칭3 from 테이블명; 

(3가지 방법이 있지만, 공백이나 특수문자등이 있을 땐 쌍다옴표 꼭 사용)

 

[distinct] 중복된 값 제거하고 조회

 

select DISTINCT 칼럼1, 칼럼2 from 테이블명;

 

|| 연결 연산자로 칼럼 붙여서 조회

 

select 칼럼1||칼럼2 from 테이블명;

 

[order by] 정렬기능

 

제일 마지막에 ORDER BY 칼럼명1 [asc / desc], 칼럼명2 [asc / desc]

(asc는 오름차순 / desc는 내림차순)

 

조건문 ->

기본문법 ...... where 칼럼1 연산자 주어진 값

 

종류 연산자 설명 예제(where 뒤에 사용)
기본연산자 = 같다 name="지훈";
> , >=
< , <=
부등호 sal > 3000;
!=, ^=, <> 다르다 sal != 3000;
논리연산자 AND 그리고 name="지훈" and sal=2000;
OR 이거나 name="지훈" or sal=2000;
NOT 다르다 not name="지훈";
SQL 연산자
(not 포함 가능)
BETWEEN AND 특정범위 sal between 1500 and 2500;
IS NULL
IS NOT NULL
NULL 값인것
NULL값이 아닌 것
sal is null;
sal ins not null;
LIKE 특정문자가 포함된
값을 구할 떄
% : 0개를 포함한 모든 문자 대체
_ : 1개의 문자를 대체
name like '%지훈';
name like '_hun';

 

 

 

GROUP BY [집계함수]
AVG() 평균을 구한다
MIN() 최소값을 구한다
MAX() 최대값을 구한다
COUNT() 행의 개수를 센다
COUNT(DISTINCT) 개수를 센다 (중복은 1개만 인정)
STDEV() 표준편차를 구한다
VAR() 분산을 구한다

 

 

// [group by] 특정 칼럼을 기준으로 한 그룹으로 묶어 합계, 평균 등을 조회

// select 칼럼1, 칼럼2, 칼럼3 from 테이블 group by 칼럼1;

select seq, avg, sum from emp group by seq;
// -> seq를 기준으로 emp 테이블의 평균과 합계를 그룹으로 묶어 조회


// [having] 그룹으로 묶인 기준 칼럼이나 함수에 조건을 걸어 조회

// select 칼럼1, 칼럼2, 칼럼3 from emp group by 칼럼1 having 칼럼2 < 값;

select seq, avg, sum from emp group by seq having sum > 3000;

// seq를 기준으로 그룹이 된 값들 중에 합계가 3000 이상인 것을 조회

 

 

ROLLUP()  소합계

group by 절에 의해 그룹 지어진 집합 결과에 대해서 좀 더 상세한 정보를 반환하는 기능을 수행

select 절에 rollup을 사용 해  보통의 select 된 데이터와 그 데이터 총계를 구한다

 

 

// 직업별로 급여 합계 구하는 예제

SELECT job, SUM(sal)
FROM   emp
GROUP BY job;


/* JOB          SUM(SAL)
----------     ----------  
ANALYST          600
CLERK            3200
MANAGER          33925
PRESIDENT        5000
SALESMANS        4000
*/


-- ROLLUP을 사용 해 직업별로 급여 한계와 총계 구하기
SELECT job, SUM(sal)
FRM    emp
GROUP BY ROLLUP(job);


/* JOB          SUM(SAL)
----------     ----------  
ANALYST          600
CLERK            3200
MANAGER          33925
PRESIDENT        5000
SALESMANS        4000
                 52125 //급여 합계에 대한 총계 추가
*/

 

'Database' 카테고리의 다른 글

[OracleDB] JOIN  (0) 2022.05.25
[OracleDB] 제약조건  (0) 2022.05.21
[OracleDB] SQL 종류 (DDL.DML.DCL)  (0) 2022.05.14
[OracleDB] 기본 CRUD  (0) 2022.05.13
[MySQL] WorkBench ERD Diagram  (0) 2022.04.12