본문 바로가기
DBMS

DMBS의 기본(SELECT, ALIAS,ORDER BY)_(2)

by 바다의 공간 2025. 1. 15.

📒 DB

DB 쿼리문 종류

 

1. DDL(정의어) : 정의,생성,만든다의 의미입니다. 구조를 만든다고 생각하면됨.

- CREAT, ALTER, DROP, TURNCATE

 

2. DML(수정) : 데이터 조회하고 말 그대로 수정

- SELECT, INSERT, UPDATE, DELETE, MERGE

 

3. DCL(권한제어) : 말 그대로 권한

- GRANT, REVOKE(권한해제)

 

4. TCL(명령어 제어) : 커밋까지 하는 과정 (일괄처리명령어)

- COMMIT(반영), ROLLBACK(마지막 커밋시점으로 돌아감) , SAVEPOINT(지금까지 저장)


여기서 가장많이 쓰이는건 2번이다.그 중에서도  SELECT가 가장 1순위이다.

정보를 조회, 선택하고 하기때문에 가장많이 쓰입니다.

2번까지만해도 웬만하게 다 DB조작할 수 있다고 볼 수 있다.

 

<기본지식>

가로:횡 세로:열


📒 SELECT 조회하는방법

SELECT * FROM HR.EMPLOYEES;

 

 

데이터가 저장되어있는 EMPLOYEES테이블에 라는 것을 HR권한으로 부터 *(모든) 데이터를 SELECT한다.

 

아까 XE를 했으니 보면 

XE < EMPLOYEES < 11개의 열과 107의 행이 존재함

Datavase(DB) < table(employess) < 데이터(행과 열)로 되는거겠죠

그래서 db는 꼭 필요하다는점(당연한얘기) 와 더불어서 ip, db 아이디 비밀번호가 있으면 된다.

 


📒도구를 활용하는 이유

 

각 어떻게 컬럼을 받는지 숫자로 받는지 문자로 받는지에 대한것들을 컬럼명 에 대한 속성을 알 수 있습니다.

VARCHAR(20)은 20글자까지! 라는뜻이다.

 

이것을 한눈에 쉽게볼수있기때문에 도구를 사용합니다

 

또한 엔티티 관계도를 눌러보면 데이터를 연결을 할 수 있어요 그걸 도식화가 되어있습니다.

엔티디


📒 쿼리문의 주석처리 & 가독성처리

한 줄 처리

-- (하이픈 두개)

한 줄 주석

 

여러 줄처리

/* <- 시작점 

*/ <- 끝점

장문 주석

 

가독성을 좋게 하기 위해서는 엔터, 띄어쓰기를 잘 활용해야함.

혹은 찐갈색을 기준으로 엔터를 치면서 가독성을 높인다.

찐갈색은 이미 DB에있는 언어(예약어)이고 문법도 똑같다. 그렇기때문에 다음줄을 보기 좋게 입력하면 좋다.

 

입력의 팁을 쓰자면

그리고 예약어SELECT -> FROM -> 문서를 먼저 씁니다.(TIP)

그러면 안쪽으로 커럼 조회를 할때는 자동완성이 되니 편해집니다.

 


📒 특정 컬럼조회

-- 특정 컬럼 선택
-- 가독성 좋게 작성하기! ;는 문법의 끝을 의미함
SELECT EMPLOYEE_ID, 
       LAST_NAME 
FROM HR.EMPLOYEES;

 

실습으로는

-- 직원의 FIRST_NAME, LAST_NAME, PHONE_NUMBER, EMAIL, EMPLOYEE_ID를 조회하기

를 했는데

 

SELECT FIRST_NAME, 
       LAST_NAME,
       PHONE_NUMBER,
       EMAIL,
       EMPLOYEE_ID
FROM HR.EMPLOYEES;

이렇게 특정 컬럼만 조회할 수 있당.


📒 별칭(ALIAS:알리아스)

-컬럼이름을 변경해서 부르는것 

-실제 테이블명에는 변경되지않음!!

-- 별칭(alias)

SELECT EMPLOYEE_ID AS "사번"
FROM HR.EMPLOYEES;

 

alias

그리고 웬만큼은 다 영어로 표기하길 권장한다.

한글은 가끔 장애생길수있다.

-- 별칭(alias)

SELECT EMPLOYEE_ID AS "사 번"
FROM HR.EMPLOYEES;
-------------------------------------------- 정상작동

SELECT EMPLOYEE_ID AS 사번
FROM HR.EMPLOYEES;
-------------------------------------------- 정상작동

SELECT EMPLOYEE_ID  "사번"
FROM HR.EMPLOYEES;
-------------------------------------------- 정상작동

SELECT EMPLOYEE_ID AS 사 번
FROM HR.EMPLOYEES;
--------------------------------------------에러

띄어쓰기가 들어가면 무조건 감싸줘야합니다. 안그러면 에러발생!

또한  AS는 묵음처리로 없어도 잘 바뀝니다.


-- [실습] 직원의 성, 이름, 이메일, 연봉을 순서대로 조회

SELECT FIRST_NAME AS "직원의 성", 
       LAST_NAME AS 이름,
       EMAIL AS 이메일,
       SALARY AS 연봉
FROM HR.EMPLOYEES;

 


📒 정렬하는 방법 :: ORDER BY()

DESC -> 오름차순

SELECT *
FROM HR.EMPLOYEES
ORDER BY SALARY DESC;

 

연봉기준으로 오름차순으로 정렬합니다. 디폴트값입니다.

SELECT *
FROM HR.EMPLOYEES
ORDER BY SALARY ; --DESC

 

내림차순은 ASC;

SELECT *
FROM HR.EMPLOYEES
ORDER BY SALARY ASC;

 


-- [실습] 직원의 성, 이름, 이메일, 연봉을 순서대로 조회

SELECT FIRST_NAME AS "직원의 성", 
       LAST_NAME AS 이름,
       EMAIL AS 이메일,
       SALARY AS 연봉
FROM HR.EMPLOYEES
ORDER BY SALARY;

 

 

 

이것 외에도

 

FROM이 먼저 실행되고 그 다음 ORDER BY로 순서가 진행됩니다.

SELECT FIRST_NAME AS "직원의 성", 
       LAST_NAME AS 이름,
       EMAIL AS 이메일,
       SALARY AS 연봉
FROM HR.EMPLOYEES
ORDER BY "연봉" ASC;

 

그렇기때문에 "연봉"이라는 알리아스를 사용해도 잘 작동이되는것입니다.

명령어 순서를 잘 기억해야합니다.


📒 실습문제 4개

#문제

1). EMPLOYEES테이블에서 모든 회원정보를 조회한다.
        단, 조회 시 EMAIL ID명을 기준으로 오름차순 정렬한다.

SELECT * FROM HR.EMPLOYEES
ORDER BY EMAIL;

SELECT * FROM HR.EMPLOYEES
ORDER BY EMPLOYEE_ID;



02. COUNTRIES테이블에서 “나라 이름”을 내림차순으로 조회하여라

SELECT COUNTRY_NAME AS "나라 이름"
FROM HR.COUNTRIES
ORDER BY COUNTRY_ID DESC;




03. 문제#3). EMPLOYEE테이블에서 사원의 이름, 성, 봉급을 조회한다, 단, 봉급 기준으로 내림차순으로 정렬하고 별칭을 이용한다

SELECT FIRST_NAME AS "성",
       LAST_NAME AS "이름",
       SALARY AS "봉급"
FROM HR.EMPLOYEES
ORDER BY "봉급" DESC;



04.문제#4). 아래의 조건을 만족하는 정보를 조회한다.
   - 직원 이름, 봉급, 고용일을 순서대로 조회
   - 고용일이 가장 오래된 순서대로 조회

SELECT FIRST_NAME AS "이름",
       SALARY AS "봉급",
       HIRE_DATE AS "고용일"
FROM HR.EMPLOYEES
ORDER BY "고용일";