[Oracle] SQL 자주 쓰는 Query문

강지영·2023년 2월 15일
0

SQL

목록 보기
7/20
post-custom-banner

SQL Query를 사용하여 DB에 보관되어 있는 데이터 사용합니다.

📚 SQL(Structured Query Language)

구조적인 Query 언어를 의미

📚 Query

저장된 데이터를 필터링하기 위한 질문

📑 자주 사용하는 쿼리문

⦁ SELECT

SELECT 컬럼명 FROM 테이블명

DB에 보관되어 있는 데이터 조회 시 사용

📌 모든 열을 불러오고 싶을 때는 컬럼명 부분에 *을 넣으시면 됩니다.


⦁ WHERE 조건

SELECT 컬럼명 FROM 테이블명 WHERE 조건
+ AND, OR로 여러 조건 가능

WHERE 구문을 추가해서 조건이 참인 데이터만 불러옵니다.

ex)

WHERE JOB = 'MANAGER';

⦁ ORDER BY 정렬

SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 ASC or DESC
+ ORDER BY 컬럼1 ASC, 컬럼2 DESC 가능 (1순위, 2순위)

ORDER BY 뒤에 오는 컬럼명을 기준으로 불러오는 데이터를 정렬합니다.

📌 ASC : 오름차순 DESC : 내림차순 | 기본 값 > 오름차순


⦁ LIMIT 개수

SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 ASC or DESC LIMIT 개수

LIMIT절의 개수만큼 데이터를 불러옵니다.

ex) LIMIT 5; >> 행 5개 출력


⦁ DISTINCT 중복제거

SELECT DISTINCT 컬럼명 FROM 테이블명

중복된 행은 한개만 남겨두고 모두 제거합니다.


⦁ AS 별칭 지정

SELECT SAL*12+COMM AS ANNSAL FROM EMP;

컬럼에 다음과 같이 연산을 할 수 있습니다. 하지만 이렇게 사용하게 되면

컬럼명이 보기 어렵고 난잡해지기 때문에 AS로 별칭을 줄 수 있습니다.

📌 AS를 생략하고 한 칸 띄워도 똑같이 동작합니다.
하지만 실무에서는 쿼리문의 길이가 길기 때문에 알아보기 쉽도록 AS를 사용하는 것이 좋습니다.


⦁ IN

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IN (데이터1, 데이터2 ... )

여러 개의 OR 집합입니다. 일반적으로 OR 대신 IN을 사용할 수 있는 경우라면 IN을 사용하는 것이 좋습니다.

가독성이 좋고 경우에 따라 서브 쿼리를 사용할 수 있기 때문입니다.


⦁ NOT IN

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 NOT IN (데이터1, 데이터2 ... )

AND, OR이 사용가능하기 때문에 NOT도 사용할 수 있습니다.

NOT IN을 사용하게 되면 데이터를 포함하지 않는 행을 출력합니다.


⦁ BETWEEN

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 BETWEEN 최소값 AND 최대값

최소값 ~ 최대값 사이의 해당하는 데이터를 출력합니다.

=와 같은 비교 연산자를 사용해도 되지만, BETWEEN이 더 간단하게 표현할 수 있습니다.


⦁ LIKE 검색 기능

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%S%'

게시판 제목 또는 내용 검색 기능처럼 일부 문자열이 포함된 데이터를 조회할 때 사용합니다.

💡 %, _를 찾고싶다면 어떻게 하나요?

%문자나, _문자를 포함한 데이터를 조회하기 위해서 와일드 카드 문자를 쓰는 것은 애매합니다.
따라서 ESCAPE절이 존재합니다. 와일드 카드 문자를 임의로 변경하는 것인데

LIKE 'A@_A%' ESCAPE '@';

처럼 아무 다른 문자를 지정하여 사용할 수 있습니다.


⦁ IS NULL

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 IS NULL;

WHERE절은 조건식의 결과 값이 true인 행만 출력하게 됩니다.

연산 결과 값이 NULL인 경우 true도 false도 아니게 되므로 출력 대상에서 제외됩니다.

따라서 NULL인지 확인하기 위해 IS NULL을 사용합니다.
📌 IS NOT NULL도 가능합니다.

참고 블로그

profile
Hello World!
post-custom-banner

0개의 댓글