1. SQL 기본 문법
select * | 컬럼명 | 표현식 // 5. 출력 대상(열, column) 지정
from 테이블명 // 1. 데이터 조회 테이블 지정
where 조건 // 2. 조회하려는 데이터 조건 지정
group by 대상 // 3. 조회 데이터 분류
having 조건 // 4. group으로 분류된 데이터에 대한 추가 조건 지정
order by ; // 6. 데이터 정렬 기준
1) SELECT
- SQL 쿼리의 가장 첫번째 절. 허나 실제 구동 순서는 order by절을 제외하고 가장 마지막.
- 테이블의 출력단 컬럼(column)을 지정한다.
- select * 은 해당 테이블의 모든 내용을 출력하라는 의미.
2) FROM
- SQL 쿼리의 두번째 절. 실제 쿼리 구동 순서에서는 가장 첫번째.
- 조회하려는 데이터가 저장되어있는 테이블을 지정한다.
3) WHERE
- SQL 쿼리의 세번째 절. 실제 쿼리 구동 순서에서는 FROM 절 뒤의 두번째.
- 특정 조건을 만족하는 데이터 추출을 위해 사용.
예시) student 테이블의 모든 데이터를 조회
SELECT *
FROM STUDENT;
예시) student 테이블에서 이름,학년,키,무게를 조회. 3학년 이상만.
SELECT NAME, GRADE, HEIGHT, WEIGHT -- 조회하려는 컬럼 지정.
FROM STUDENT -- 데이터가 저장된 테이블 지정.
WHERE GRADE >= 3; -- 데이터 추출 조건 지정
4) GROUP BY
- SQL 쿼리의 네번째 절. 실제 쿼리 구동 순서에서는 WHERE 절 뒤의 세번째.
- 조회된 데이터를 '그룹'으로 분류하기 위해 사용한다. ex) 성별, 학년 등
- 그룹별 통계(합, 평균, 최고점, 최저점 등)를 조회하는 용도.
;
SELECT GRADE,
COUNT(HEIGHT), -- Count 함수, 값의 개수
SUM(HEIGHT), -- Sum 함수, 값의 합
MAX(HEIGHT), -- Max 함수, 최대값
AVG(HEIGHT) -- Avg 함수, 평균값
FROM STUDENT
group by GRADE;
5) HAVING
- SQL 쿼리의 네번째 절. 실제 쿼리 구동 순서에서는 GROUP BY 절 뒤의 네번째.
- GROUP BY절에 의해 통계조회된 데이터에서 조건을 만족하는 데이터를 추출하기 위한 용도.
- WHERE절과 비슷하지만 적용 시점이 다르다. WHERE절에 의한 분류는 GROUP BY 절이 적용되기 전의
데이터에 적용되기 때문에 적용 후의 데이터를 조건분류하려면 HAVING을 사용한다.
(기본데이터 -> WHERE절 적용(조건추출) -> GROUP BY절 적용(통계) -> HAVING(조건추출))
SELECT GRADE,
MAX(HEIGHT)
FROM STUDENT
GROUP BY GRADE
HAVING MAX(HEIGHT) > 180;
6) ORDER BY
- SQL 쿼리의 마지막 절. 실제 쿼리 구동 순서 역시 마지막.
- 앞선 쿼리에 의해 추출된 데이터를 정렬하는 용도.
2. SQL 연산자
1) 논리 연산자
[1] AND 연산자
- 교집합 출력(모든 조건이 만족할 때만 참)
[2] OR 연산자
- 합집합 출력(한 조건만이라도 만족하면 참)
[3] NOT 연산자
- 여집합 출력, 부정연산자(조건을 만족하는 집합을 제외)
[4] 연결 연산자 (||)
- 분리된 두 개 이상의 문자열을 결합하는 용도
--예제) emp 테이블에서 직군이 CLERK 또는 SALESMAN중에서 급여가 1300 이상인 직원 정보 출력
select *
from emp
where (job = 'CLERK'
or job = 'SALESMAN')
and sal >= 1300;
--예제) emp 테이블의 EMPNO, ENAME, SAL 을 한 컬럼에서 출력.
select empno||ename||sal,
empno||'-'||ename||'-'||sal
from emp;
논리연산자 연산 순서 : not > and > or
2) 기타 연산자
[1] between a and b
- a 이상 b 이하
- a와 b를 포함한 출력결과 리턴
[2] in 연산자(포함연산자)
- 여러 대상을 동시에 출력 시 사용
- where 대상 in(값1, 값2, ...)
[3] like 연산자
- 패턴 검색을 위한 연산자
- not like를 사용한 여집합 출력 가능
--예제) 이름이 A로 시작하는 사람 출력
select *
from emp
where ename like 'A%';
--예제) emp에서 smith와 allen을 제외한 모든 직원의 이름, 급여 출력
select ename, sal
from emp
where ename not in ('SMITH', 'ALLEN');
--예제) emp2 테이블에서 사원번호가 19900000에서 20000000 사이에 해당하는 직원의 이름, 사원번호 출력
select *
from emp2
where EMPNO between 19900000 and 20000000;
'공부' 카테고리의 다른 글
[Linux] Red Hat Enterprise Linux 설치 (0) | 2024.08.27 |
---|---|
[Oracle_SQL] 함수 (0) | 2024.08.19 |
[파이썬 기초] 파이썬 설치 (0) | 2024.04.01 |