본문 바로가기

oracle SQL

2024.11.27 첫 수업

1. 터미널에서 관리자 권한으로 접속 방법 (OS 인증 방식)

conn / as sysdba

 

 

2. 접속한 유저가 누군지 확인하는 법

show user

 

3. oracle 셋업

  ▶ sys 관리자로 들어가면 옆에 롤에 sysdba 체크 필수 !! (안 그러면 오류남)

 


※ 강사님의 당부

  1) 2022~2025 트렌드 책 꼭 읽기

  2) 일기 꼭 작성하기 (모여서 이력서에 많이 도움됨)

  3) 영어는 많이 수학은 조금 친해지기

 

4. HR 유저에 ACCOUNT_STATUS가 EXPIRED & LOCKED로 되어있으면 접속이 안 된다.

   - 따라서  밑에 코드로 락을 풀어줘야 접속이 가능하다.

alter user hr
identified by hr   
account unlock;

 

5. 풀 태아불 스캔

  ▶ 처음부터 끝까지 전부 다 보는 것

select * from hr.employees;

- hr. 은 생략해도 되지만 현장에선 테이블명 앞에 소유자를 적는 습관이 중요하다.

 

6. 페이징 처리

  ▶ 데이터베이스에서 읽어와 화면에 출력할 때 한꺼번에 모든 데이터를 가져오는 것보다 출력될 페이지의 데이터만 나눠서 가져오는 것

 

7. DATA

  ▶ 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림의 형태로 된 자료

 

8. 휴먼 데이터

  ▶ 기업의 정보 시스템 내부에 존재하는 데이터

  ▶ 정형데이터라고도 한다. (표처럼 되어있는 형식)

  ▶ ERP, CRM, SCM, HR, MES, VOC

 

9. 비정형 데이터

  ▶ 소리, 이미지, 텍스트

 

10. 반정형 데이터

  ▶ XML, JSON

 

11. Database

  ▶ 여러 사람이나 프로그램이 데이터를 쉽게 공유하기 위해 데이터의 조직화된 모음으로 관리되는 데이터의 집합

 

12. DBMS (DataBase Management System)

  ▶ 데이터베이스 소프트웨어를 의미

  ▶ oracle, DB2, MS-SQL, SQLITE

 

13. Relational DataBase (관계형 데이터베이스)

  ▶ 표 형식의 모델

  ▶ table : 행(row)과 열(column)로 구성되어 있는 데이터의 저장 구조

  ▶ 행(row) : 레코드(record), 튜플(tuple)이라고 표현하기도 한다.

  ▶ 열(column) : 속성(attribute)이라고 표현하기도 한다.

 

14. SQL (Structured Query Language)

    ▶ 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어

    ▶ ANSI(American National Standardslnstitute) 표준어인 SQL를 사용한다.

 

15. DQL (Data Query Language)
    ▶ 데이터베이스에 저장된 데이터를 조회하는 명령어
    ▶ SELECT

16. DML (Data Manipulation Language) 
    ▶ 데이터베이스에 데이터를 입력하고 수정하고 삭제하는 명령어
    ▶ INSERT, UPDATE, DELETE, MERGE

17. TCL (Transaction Control Language) 
    ▶ 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구 시키기 위한 명령어
    ▶ COMMIT, ROLLBACK, SAVEPOINT

18. DCL (Data Control Language)
    ▶ 데이터베이스에 저장된 데이터를 관리하기 위하여 데이터의 보안성 제어하기 위한 명령어, 권한 관리
    ▶ GRANT, REVOKE

19. DDL (Data Definition Language)
    ▶ 데이터베이스나 테이블(객체) 등을 생성, 삭제하거나 구조를 변경하기 위한 명령어
    ▶ CREATE, ARTER, DROP, TRUNCATE, RENAME, COMMENT

 

20. SELECT문

  ▶ 데이터베이스에서 정보(데이터)를 조회하는 문

  ▶ SELECT 컬럼이름, 컬럼이름,...FROM 유저이름, 테이블명;

  ▶ SELECT절, FROM절이 모여서 하나의 문이 된다.

 

  1) SELECT문 기능

     - projection : 열 추출  

select employee_id from hr.employees;

 

      - selection : 행 추출

select * from hr.employees where employee_id = 100;

 

       - join : 서로 다른 테이블에 있는 데이터를 조회

select * from hr.employees where employee_id = 100;

select * from hr.departments where department_id = 90;

▼ 합친 후

select e.*, d.* from hr.employees e, hr.departments d
where e.department_id = d.department_id
and e.employee_id = 100;

 

※ 테이블의 구조 확인하는 방법

desc hr.employees;

 

21. 산술연산자 (*, /, +, -)

  1) number : 사칙연산 다 가능

  2) date : +, - 만 가능

  3) varchar2 : 사칙연산이 불가능하다.

 

#사칙연산 우선 순위

   1. *, /

   2. +, -

 

※ 오늘 날짜 출력하는 방법 (dual은 가상 테이블 이름)

select sysdate from dual;

 

22. NULL

   - NULL은 사용할 수 없거나, 할당되지 않았거나, 알 수 없는거나, 적용할 수 없는 값, 결측값(연산을 할 수 없는 값)

   - NULL은 0, 공백이 아니다.

 

  1) NULL 값을 0으로 대체하고 싶을 경우

      - nvl 함수 : null 값을 실제값으로 대체하는 함수

ex)

select 
      employee_id, 
       salary, 
       commission_pct,
       ((salary * 12) + (salary * 12 * nvl(commission_pct,0)))
from hr.employees;

 

23. 컬럼명을 바꾸고 싶은 경우

    1) 열별칭 : 열 이름을 다른 이름으로 출력한다.

        - 열이름 바로 뒤에 한 칸 띄어쓰기를 한 후 입력하면 된다.

        - 열이름과 별칭 사이에는 as 키워드를 사용할 수 있다. (선택)

        - 열별칭에는 공백, 특수문자(_,$,#제외한), 대소문자 구분하려면 큰 따옴표로 묶어야 한다.

        - 열별칭에 숫자가 먼저 나오면 큰 따옴표로 묶어야 한다.

 

ex1)

select 
      employee_id, 
       salary, 
       commission_pct,
       ((salary * 12) + (salary * 12 * nvl(commission_pct,0))) as annual_salary
from hr.employees;

 

ex2)

select 
      employee_id 사번, 
       salary 급여, 
       commission_pct 보너스,
       ((salary * 12) + (salary * 12 * nvl(commission_pct,0))) as annual_salary
from hr.employees;

 

24. 연결연산자

    - 열이나 문자열을 다른 열에 연결한다.

    - 두 개의 세로선(||)으로 표현한다.

    - 결과 열은 문자열로 생성된다.

 

ex)

select employee_id, last_name, employee_id || last_name
from hr.employees;

출력

 

25. 리터럴 문자열

     - 숫자, 날짜, 문자는 작은 따옴표로 묶어야 한다.

 

ex1)

select '사원 번호는 '|| employee_id||'입니다.'
from hr.employees;

출력

 

ex2)

select 'My name''s '||last_name || ' '|| first_name
from hr.employees;

출력

 

26. q 연산자(괄호 선택)

    - q'[리터럴 문자열]'

    - q'<리터럴 문자열>'

    - q'(리터럴 문자열)'

 

ex)

select q'[My name's]'||last_name || ' '|| first_name
from hr.employees;

출력

27. 중복행 제거 (distinct, unique)

     - distinct 또는 unique 키워드를 이용해서 중복을 제거할 수 있다.

     - distinct 또는 unique 키워드는 select절 제일 앞에 한 번만 사용한다.

 

ex1)

select distinct department_id
from hr.employees;
select unique department_id
from hr.employees;

둘 다 출력값은 같음

 

 

'oracle SQL' 카테고리의 다른 글

2024.12.04 6일차 수업  (0) 2024.12.04
2024.12.03 5일차 수업  (2) 2024.12.03
2024.12.02 4일차 수업  (4) 2024.12.02
2024.11.29 3일차 수업  (0) 2024.11.29
2024.11.28 2일차 수업  (4) 2024.11.28