SQL공부

ORACLE 오라클 SQL 4 - SELECT 조회(기초)

Irene1988 2025. 1. 13. 16:55

 

알클님의 영상강의를 잘 들으면 정말 중요한 내용들이 많이 나온다.

영상의 조회문들은 실무에서 진짜 사용되는 조회문들이니 잘 익혀두자.

 

실습1~4

https://www.youtube.com/watch?v=3xcbONBhuFc&list=PL4C2AmBC9jOYAQrvie3y5c8GN01KGq5WR&index=8

 

실습 5~20

https://www.youtube.com/watch?v=2y9zx4ua7yA&list=PL4C2AmBC9jOYAQrvie3y5c8GN01KGq5WR&index=10

 

알클 오라클 클래스 URL

https://www.youtube.com/playlist?list=PL4C2AmBC9jOYAQrvie3y5c8GN01KGq5WR

 

ALOHA CLASS - DB [LIVE] V.6

데이터베이스 #oracle

www.youtube.com

 

 

SELECT * FROM employees WHERE COMMISSION_PCT IS NOT NULL;

앞서 활성화 시킨 예제 DB를 통해 SELECT문을 이용해 조회 실습을 해보자!
이 SELECT문... 우리가 사이트에서 조회할 때 데이터를 조회한다.. 거의 대부분 이 SELECT문을 이용해 DB를 조회가 된다고 볼 수 있다.
정말 중요한 부분이다. 나도 처음으로 JSP 조회페이지 실습할때와 리액트 사이트 개발할때 스프링부트 마이바티스를 이용해 SELECT문을 통해 조회기능을 다 구현했었다.

우선 가장 처음의 1번은 건너뛰고 2번부터 조회를 해보자!

 

2. ALL_USERS 에서 HR 계정 조회 (SYSTEM 으로 설정하고 조회하기)

SELECT * FROM ALL_USERS WHERE USERNAME = 'HR';


조회결과~ 기존에 만들었던 HR계정이 보인다.


3. 테이블 EMPLOYEES의 테이블 구조를 조회하는 SQL문을 작성하기

DESC employees;

출력결과 ~ 테이블 employees의 구조를 간략하게 보여준다. 컬럼명과 데이터 타입 null여부 등을 간단하게 확인할 수 있다.

사실 잘 몰랐던 명령어다. SQL Server에도 있는지 잘 모르겠다. 간혹 간단하게 테이블의 구조가 필요한 경우도 있다. 그런경우에 유용하게 사용할 수 있는 명령어라 좋다.


4. employees 테이블의 employee_id, first_name을 조회(SELECT)

SELECT employee_id, first_name FROM employees;

이건 기본으로 알고 있어야 한다.

 

***employees 테이블의 전체 데이터 조회

SELECT * FROM employees;

*은 전체를 의미한다. 그러니까 employees의 전체 컬럼의 데이터를 조회하는 것을 의미한다.


***(중요)

AS 별칭 사용 (alias) 출력되는 컬럼명에 별명을 짓는 명령어, as는 생략가능

 

SELECT
    employee_id AS "사원번호",
    first_name AS "이름",
    last_name AS "성",
    email AS "이메일",
    phone_number AS "전화번호",
    hire_date AS "입사일",
    salary AS "급여"    
FROM employees;

기존의 테이블에 설정된 컬럼명이 아니라 AS 별칭에 의해서 한글로 설정한 컬럼명으로 출력된다.
이 별칭 기능은 나중에 자바 DTO로 데이터의 컬럼명을 일치시킬때 매우 중요하게 사용되니... 꼭 알아둬야 한다.


** 조건 WHERE절 (이것두 정말 정말 중요!)
우리가 웹페이지에서 키워드 조회 또는 조건 조회를 할때 바로이 WHERE절의 매개변수를 넣어서 조건조회가 이루어진다고 보면 된다. 잘 알아두어야 한다!

 

6. 테이블 EMPLOYEES의 SALARY(급여)가 6000을 초과하는 사원의 모든 컬럼을 조회하는 SQL문

SELECT * FROM employees WHERE salary > 6000;

7.  테이블 employees의 SALARY(급여)가 10000인 사원의 모든 컬럼을 조회하는 SQL문

SELECT * FROM employees WHERE salary = 10000;

8. 테이블 employees의 모든 속성들을 SALARY를 기준으로 내림차순 정렬하고, FIRST_NAME을 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성하시오. (HR 계정 샘플 데이터)

SELECT * FROM employees ORDER BY salary DESC , first_name ASC;

 

**** 정렬
ORDER BY 컬럼명 [ASC/DESC]
ASC : 오름차순
DESC : 내림차순
*(생략) :  오름차순이 기본값


 

 

9. 테이블 employees의 JOB_ID가 'FI_ACOOUNT'이거나 'IT_PROG'인 사원의 모든 컬럼을 조회하는 SQL문

SELECT * FROM employees WHERE JOB_ID IN ('FI_ACCOUNT','IT_PROG');
SELECT * FROM employees WHERE JOB_ID LIKE 'FI_ACCOUNT' OR JOB_ID LIKE 'IT_PROG';
SELECT * FROM employees WHERE JOB_ID = 'FI_ACCOUNT' OR JOB_ID = 'IT_PROG';

 

*** OR 연산 : ~또는 , ~이거나 WHERE A OR B;


10. 테이블 employees의 JOB_ID가 'FI_ACOOUNT'이거나 'IT_PROG'인 사원의 모든 컬럼을 조회하는 SQL문 작성
단, IN 키워드를 사용하기

SELECT * FROM employees WHERE JOB_ID IN ('FI_ACCOUNT','IT_PROG');

 

11. 테이블 employees의 JOB_ID가 'FI_ACOOUNT'이거나 'IT_PROG' 아닌 사원의 모든 컬럼을 조회하는 SQL문

SELECT * FROM employees WHERE JOB_ID NOT IN ('FI_ACCOUNT','IT_PROG');

 


12. 테이블 employees의 JOB_ID가 'IT_PROG'이면서 SALARY가 6000이상인 사원의 모든 컬럼을 조회하는 SQL문

SELECT * FROM employees WHERE job_id = 'IT_PROG' AND salary >= 6000;

 


13. 테이블 employee의 FIRST_NAME이 'S'로 시작하는 사원의 모든 컬럼을 조회하는 SQL문

SELECT * FROM employees WHERE first_name LIKE 'S%'; -- S로 시작
SELECT * FROM employees WHERE first_name LIKE 'S____'; -- _X4

 


14. 테이블 EMPLOYEES의 FIRST_NAME이 'S'로 끝나는 사원의 모든 컬럼을 조회하는 SQL

SELECT * FROM employees WHERE first_name LIKE '%s';

15. 테이블 EMPLOYEES의 FIRST_NAME에 's'가 포함되는 사원의 모든 컬럼을 조회하는 SQL

SELECT * FROM employees WHERE first_name LIKE '%s%';

16. 테이블 EMPLOYEES의 FIRST_NAME이 5글자인 사원의 모든 컬럼을 조회하는 SQL문

SELECT * FROM employees WHERE first_name LIKE '_____'; -- 언더바 5개
SELECT * FROM employees WHERE LENGTH(first_name) = 5; -- LENGTH함수 사용

LENTH() 함수 사용


17. 테이블 EMPLOYEES의 COMMISSION_PCT가 NULL인 사원의 모든 컬럼을 조회하는 SQL (NULL 조회)

SELECT * FROM employees WHERE COMMISSION_PCT IS NULL;

18. 테이블 EMPLOYEES의 COMMISSION_PCT가 NULL이 아닌 사원의 모든 컬럼을 조회하는 SQL

SELECT * FROM employees WHERE COMMISSION_PCT IS NOT NULL;

19. 테이블 EMPLOYEES의 사원의 HIRE_DATE가 04년 이상인 모든 컬럼을 조회하는 SQL (중요)

SELECT * FROM employees WHERE hire_date >= '04/01/01';
SELECT * FROM employees WHERE hire_date >= TO_DATE('04/01/01', 'YY/MM/DD');

원래는 TO_DATE 함수로 변환하여 조회


20. 테이블 employees의 사원의 hire_date가 04년도부터 05년도인 모든 컬럼을 조회하는 SQL

SELECT * FROM employees WHERE hire_date >= '04/01/01' AND hire_date <= '05/12/31';
SELECT * 
FROM employees
WHERE hire_date >= TO_DATE('04/01/01', 'YY/MM/DD')
AND hire_date <= TO_DATE('05/12/31', 'YY/MM/DD');

TO_DATE 함수로 변환하여 조회

 

*** 나는 SQL Server위주로 사용하여 오라클과 비교했을때는 현재까지 큰 차이점이 없으나 추후 계속 들어가면 흥미로운 두 DBMS의 차이점이 생길 거 같다.

 

 

*블로그의 내용은 알클님 강의를 기반으로 작성되었습니다!