알클님의 영상강의를 잘 들으면 정말 중요한 내용들이 많이 나온다.
영상의 조회문들은 실무에서 진짜 사용되는 조회문들이니 잘 익혀두자.
실습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의 차이점이 생길 거 같다.
*블로그의 내용은 알클님 강의를 기반으로 작성되었습니다!
'SQL공부' 카테고리의 다른 글
ORACLE 오라클 SQL8 - NULL (1) | 2025.01.14 |
---|---|
ORACLE 오라클 SQL 7 - 변환함수, 날짜함수 (0) | 2025.01.14 |
ORACLE 오라클 SQL 5 - 숫자함수 (0) | 2025.01.14 |
ORACLE 오라클 SQL 2 - HR 계정 생성하기 (0) | 2025.01.13 |
ORACLE 오라클 SQL 1 - 오라클 설치 (0) | 2025.01.13 |