Oracle & SQL 설치방법 및 정의

YeHee·2024년 10월 22일

⏰ 2024.10.22 (D+9)

1. Oracle 설치방법

📌 Express버전 다운로드

11g Express

18c Express

📌 sqldeveloper 다운로드

Windows 64-bit with JDK 17 included

💡 각 버전의 알파벳 의미

  • "i"는 "Internet"을 의미한다.
    오라클 8부터 i를 붙였는데 i는 인터넷 기반 애플리케이션을 지원하는 첫 번째 오라클 버전이다.
    웹 애플리케이션과 인터넷을 통한 데이터베이스 접속을 강조한 버전

  • "g"는 "Grid"를 의미한다
    오라클 10부터 g를 붙였는데 그리드 컴퓨팅을 지원하는 것을 특징
    다수의 서버가 하나의 가상 데이터베이스처럼 작동할 수 있는 환경을 제공

  • "c"는 "Cloud"를 의미한다
    오라클 12부터 c를 붙였는데 클라우드 컴퓨팅 환경을 염두에 두고 개발
    멀티 테넌시(multitenancy) 아키텍처를 도입해 하나의 데이터베이스 안에서
    여러 사용자나 어플리케이션이 독립적으로 운영될 수 있도록 지원하는 버전

❗ 참고사항

Grid Computing

그리드 컴퓨팅(Grid Computing)은 여러 컴퓨터를 하나의 가상 시스템처럼 연결하여 대규모 작업을 분산 처리하는 방식

1. Multi Tenant란?

멀티 테넌트 아키텍처는 Oracle 12c 이후 버전부터 도입되었으며 여러 개의 Pluggable Database(PDB)를 하나의 Container Database(CDB) 안에 호스팅 할 수 있는 구조를 제공

  • 클라우드 컴퓨팅
    - 멀티 테넌트 클라우드 환경에서는 클라우드 공급 업체가 하나의 하드웨어 또는 소프트웨어 인프라를 여러 고객에게 제공
    - 각 고객은 독립적으로 자원을 사용하고, 서로 간섭하지 않으면서 동일한 하드웨어 또는 소프트웨어를 공유

  • 소프트웨어
    - 멀티 테넌트 소프트웨어는 여러 조직이나 고객이 단일 인스턴스의 소프트웨어를 사용할 수 있도록 설계
    - 각 테넌트는 자체 데이터와 설정을 가지며, 서로 간섭하지 않으면서 동일한 소프트웨어를 공유

  • 웹 호스팅
    - 웹 호스팅 서비스에서 멀티 테넌트 아키텍처를 사용하면 여러 웹 사이트가 동일한 서버 또는
    호스팅 환경에서 호스팅
    - 자원을 공유하고 효율적으로 활용함으로써 비용을 절감하고 유지 관리를 단순화

2. CDB & PDB란?

⭐ CDB(CDB - Container Database)와 PDB(PDB - Pluggable Database)는 오라클 데이터베이스의
멀티 테넌트 아키텍처(Multitenant Architecture)에서 사용되는 중요한 구성 요소

  • CDB (Container Database)
    - 멀티 테넌트 아키텍처의 최상위 레벨에 위치하는 컨테이너 데이터베이스
    - 각 테넌트는 자체 데이터와 설정을 가지며, 서로 간섭하지 않으면서 동일한 소프트웨어를 공유

  • PDB (Pluggable Database)
    - 논리적으로 분리된 데이터베이스 컨테이너
    - DB는 독립적인 데이터베이스 로 간주되며, 자체 스키마, 데이터, 설정, 보안 및 리소스를 가짐
    - CDB 내에서 실행 되며, 여러 PDB가 하나의 CDB에서 공유 리소스를 활용하면서 독립적으로 관리

3. Oracle 기본 명령어

  • Orcale에 Connect
    dos>sqlplus 아이디/암호 혹은 sqlplus만

  • Connect close하기
    sql>exit; 혹은 quit;

  • 현재 세션의 사용자 보기
    sql>show user;

  • 해당 사용자의 테이블 목록 보기
    sql>select * from tab;

  • 테이블 구조 보기
    sql>desc 테이블명;

  • 로그인 사용자 바꾸기
    sql>conn 사용자아이디/암호 혹은 conn;

🔖 최고 관리자 계정(system < sys)으로 로그인 하는 방법
system계정으로 로그인
방법1)
dos>sqlplus system/비밀번호(오라클설치시 설정한 비밀번호)
방법2)
dos>sqlplus /nolog
sql>conn system/orcl1234
sys계정으로 로그인
dos>sqlplus /nolog
sql>conn /as sysdba

4. Oracle 자료형

  • BINARY_INTEGER
    2147483647에서 2147483647 사이의 정수(4Byte:-2^31-1 ~ 2^31-1)

  • NUMBER
    숫자 데이터/최대 38자리의 정수,실수

  • NUMBER(n)
    숫자 데이타/최대 n자리까지의 정수

  • NUMBER(p,s)
    숫자 데이타/부동 소수점
    p는 소수점을 제외한 전체 자리수
    s는 소수점 이하의 자리수
    정수 자리는 p-s 자리수

salary number(5,2) =>전체 자리 수는 5 소수점 이하는 2자리
123.56(O) ,1234.34(X),
123.3456789(O) ->소수점 2자리 이하는 반올림 처리됨(123.35)
123(o)
1234(x)
123.1(o)
12(o)

  • CHAR(size)
    주어진 size만큼 고정 길이 문자 저장. 필드 생성시에는 size 최대값이 2000임.
    단위는 byte
    영문 및 숫자는 최대 2000자까지
    한글(유니코드)은 최대 1000자까지 저장

  • NCHAR(size)
    주어진 size만큼 고정 길이 문자 저장. 필드 생성시에는 size 최대값이 1000임.
    유니코드 저장할때 사용
    단위는 글자
    영문 및 숫자는 최대 1000자까지
    한글(유니코드)은 최대 1000자까지 저장

  • VARCHAR2(size)
    가변 길이 문자 데이타
    필드 생성시에는 size 최대값이 4000임.
    단위는 byte
    영문 및 숫자는 최대 4000자까지
    한글(유니코드)은 최대 2000자까지 저장

  • NVARCHAR2(size)
    가변 길이 문자 데이타
    필드 생성시에는 size 최대값이 2000임.
    단위는 글자
    영문 및 숫자는 최대 2000자까지
    한글(유니코드)은 최대 2000자까지 저장

  • LONG
    가변길이 문자열(최대 4GB)

  • LONG RAW
    가변길이의 바이너리 데이타(2GB)/PL/SQL에 의해 해석되지 않는 자료형

  • CLOB
    대용량의 텍스트 데이타를 저장(최대4GB)

  • BLOB
    대용량의 바이너리 데이터 저장(최대 4GB).이미지 저장시 사용
    지정하지 않는다면 디폴트 길이는 1로 설정됩니다.

  • DATE
    날짜와 시간에 대한 기본형.

❗문자를 저장할때는 그 값을 '(single Quotation)'을 입력
숫자(정수나 실수)를 저장할 때는 입력 시 오류 발생

단, 숫자 형식인 경우 '으로 감싸도 숫자 타입(number)의 컬럼에 입력이 된다.
왜냐하면 숫자 형식이면 자동으로 숫자로 형 변환

5. SQL(Structred Query Language)이란?

SQL(Structred Query Language) 구조화된 질의어
DBMS(Oracle,MySQL 등)의 데이타를 제어 하기 위한 표준 질의어

  • DDL문(Data Definiton Language)
    - Create(생성), Alter(수정), Drop(삭제)
    - 데이터가 아니라 DBMS에서 관리하는 객체
    - Table,View 혹은 StoredProcedure등을 생성하고 삭제하고 수정 할때 사용하는 질의어

  • DML문(Data Manipulation Language)
    - Table에 저장된 데이터를 Select(조회), Insert(삽입), 수정(Update), Delete(삭제)하는 질의어

  • DCL문(Data Control Language)문
    - 사용자 에게 권한을 부여하거나 부여한 권한을 뺏는 질의어(Grant ,Revoke)

6. SELECT 문이란?

데이터를 조회 하고자 할 때 사용하는 DML문

기본형식
SELECT 컬럼이름, 컬럼이름, .....
FROM 테이블 이름
[WHERE 찾는 조건][GROUP BY 결과 데이터 그룹회]
[HAVING 그룹에서 찾는 조건][ORDER BY 데이터 정렬 표현]

쿼리 실행 순서
: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

SELECT ROWNUM,ENAME,EMPNO
FROM EMP
WHERE ENAME LIKE '%S%'
ORDER BY EMPNO DESC;

1) 모든 열 선택
: SELECT 키워드에 "*" 를 사용하여 모든 열을 조회

SELECT * FROM EMP;

2) 특정 컬럼 선택
: 테이블의 특정 컬럼을 검색하고자 할 경우 Column이름을 ","로 구분하여 명시함으로써 특정컬럼을 출력

SELECT
EMPNO,
ENAME,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO
FROM EMP;

3) 산술 표현식
: 데이터가 출력되는 방식을 수정하거나 계산을 수행하고자 할 때 산술 표현식을 사용
산술 표현식은 열 이름,숫자상수,문자 상수, 산술 연산자를 포함 할 수 잇으며 연산자는 +, -, *, /,를 사용

select
DEPTNO, sal, sal*12 FROM emp;

4) 열에 별칭 부여
: 질의의 결과를 출력할 때 사용자가 이해하기 쉽게 열에 이름을 부여한다.

select
ename || '의 연봉은' || sal || '입니다' "2024's연봉"
FROM emp;

5) 중복 행의 제거
- 결과에서 중복되는 행을 제거하기 위해서는 SELECT 키워드 바로 뒤에 distinct를 기술한다.
- DISTINCT라는 키워드는 항상 SELECT 바로 다음에 기술한다.
- DISTINCT뒤에 나타나는 컬럼들은 모두 DISTINCT의 영향을 받는다.
- DISTINCT뒤에 여러 개의 컬럼을 기술하였을 때 나타나는 행은 컬럼의 조합(AND조합)들이 중복되지 않게 나타난다.

SELECT
JOB,
DEPTNO
FROM emp;
--결과값 5개

SELECT
distinct JOB
FROM emp;
--결과값 9개

select
distinct JOB,
DEPTNO
FROM emp;
--and조합으로 중복제거

6) 특정 행의 검색
- 일반적인 경우 테이블에 있는 모든 자료를 조회할 필요 없이 사용자가 원하는 자료를 조회하는 경우 WHERE절을 사용하여 조회
- WHERE절을 사용하여 행들을 제한
- COLUMN명, 표현식, 상수, 문자, 비교 연산자, SQL연산자, 논리 연산자 등
- 비교 연산자에는 = ,> ,>=, < , <=, <>(!=) 등
- SQL 연산자에는 BETWEEN a AND b, IN ,LIKE,IS NULL(IS NOT NULL), ||(문자열 연결시) 등
- 논리 연산자에는 AND , OR, NOT

select
ename,
job,
sal
from emp
where sal >=2500;
- 추출 조건 : 연봉이 2500이상의 직원을 추출하는 경우

where job = 'SALESMAN';
- 추출 조건 : 'SALESMAN'직업을 추출하는 경우

where job != 'SALESMAN';
- 추출 조건 : 'SALESMAN'이 아닌 직업을 추출하는 경우

where sal >=2500 and sal <=3000;
- 추출 조건 : 연봉이 2500이상 이면서 3000이하인 경우

where sal >=2500 or job='SALESMAN';
- 추출 조건 : 연봉이 2500이상 이거나 직업이 SALESMAN인 경우

where not job='SALESMAN';
- 추출 조건 : 직업이 'SALESMAN'이 아닌 경우

0개의 댓글