📒 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)
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 "고용일";
'DBMS' 카테고리의 다른 글
제약조건, REFERENCES, 기타 제약조건 (0) | 2025.01.21 |
---|---|
TABLE만들기 & DDL언어 (0) | 2025.01.20 |
DMBS의 기본(DISTINCT, 자료형,연산자, LIKE, NULL )_(3) (0) | 2025.01.17 |
DMBS_오라클 설치(1) (1) | 2025.01.14 |