
용도 -> 데이터 검색, 칼럼을 가공 처리하여 조회 가능
테이블 전체 조회
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 |