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 |