개발 공부 기록

[oracle] DBMS, oracle설치, sql Developer설치, 리터럴, 별칭, DISTINCT중복제거, 비교 본문

DB/oracle

[oracle] DBMS, oracle설치, sql Developer설치, 리터럴, 별칭, DISTINCT중복제거, 비교

좨랭이 2021. 9. 24. 01:07

Database

- 한 조직에 필요한 정보를 여러 응용 시스템에서 공용할 수 있도록 논리적으로 연관된 데이터를 모으고 중복되는 데이터를 최소화하여 구조적으로 통합/저장해놓은 것

 

정의

1. 공용 데이터(Shared Data) : 공동으로 사용되는 데이터

2. 통합 데이터(Integrated Data) : 중복 최소화로 중복으로 인한 데이터 불일치 현상 제거

3. 저장 데이터(Stored Data) : 컴퓨터 저장장치에 저장된 데이터

4. 운영 데이터(Operational Data) : 조직의 목적을 위해 사용되는 데이터

 

특징

- 실시간 접근성(real time accessibility) : 사용자가 데이터 요청 시 실시간으로 결과 서비스

- 계속적인 변화(continuous change) : 데이터 값은 시간에 따라 항상 바뀜

- 동시 공유(concurrent sharing) : 서로 다른 업무 또는 여러 사용자에게 동시 공유됨

- 내용에 의한 참조(Content Reference) : 사용자가 요구하는 데이터 내용으로 데이터를 찾는다

 

DBMS(DataBase Management System)

- 데이터베이스에서 데이터 추출, 조작, 정의, 제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램

 

기능

데이터 추출
(Retrieval)
사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터 추출
데이터 조작
(Manipulation)
데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터 삽입, 수정, 삭제 작업 지원
데이터 정의
(Definition)
데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능 수행
데이터 제어
(Control)
데이터베이스 사용자를 생성하고 모니터링하며 접근 제어
백업과 회복, 동시성 제어 등의 기능 지원

 

관계형 데이터 베이스(RDBMS)

- 모든 데이터를 2차원 테이블 형태로 표현하고 테이블 사이의 비즈니스적 관계를 도출하는 구조 데이터의 중복을 최소화 할 수 있으며 업무 변화에 대한 적응력 우수

 

 

Oracle설치

https://www.oracle.com/database/technologies/xe-prior-release-downloads.html

1. Oracle 11g XE Express Edition 설치 (무료)

(Enterprise Edition으로 갈수록 많은 기능, 다양한 서비스 제공)

설치하기위해서 oracle로그인(회원가입)필요!!

설치 후 -> 압축 풀기

관리자 권한으로 실행 -> install -> next -> 약관동의 -> next

-> SYS/SYSTEM 의 비밀번호 설정(비밀번호 잊으면 다시 설치해야 함!!) -> install -> finish

 

-> 명령 프롬프트 

(데이터베이스를 커멘드로 실행)

sqlplus실행 -> user-name 입력 -> password 입력 -> 계정 접속 완료

 

2. SQL Developer설치

(GUI형태의 tool을 사용하기 위해 )

oracle 홈페이지 -> Developer tools -> SQL Developer -> 압축 풀기 (c드라이브에 풀었다)

압축 풀고나면

위 실행파일 생성!

 

데이터 베이스 접속

왼쪽 상단 + 버튼 -> Name, 사용자이름, 비밀번호 -> 테스트 (왼쪽 하단 상태: 성공) -> 접속

새로 만들기/ 접속 선택
접속

** oracle은 관리자 계정이 2개

- sqlplus로 접속했던 SYSTEM계정 : 데이터베이스의 생성이나 삭제는 불가하고 관리자의 권한만을 가짐

- 생성한 sys as sysdba 슈퍼사용자 계정 : 모든 문제에 대한 처리의 권한을 가짐

 

파일-열기

왼쪽 상단 파일 -> 열기 -> git에서 받았던  파일 열기

 

환경설정

중앙 상단 도구 -> 환경설정

인코딩 utf-8
세로줄 없애기
행번호 표시

 

사용자 계정 생성

(대부분 SYSTEM은 관리자역할을 하기 때문에 새로운 계정을 만들어 진행한다고 한다.)

계정에서 실행시킬 실습환경 스크립트 생성

SYSTEM으로 실행 -> 커밋완료 확인

커밋이 잘 되었는지 (KH)접속하여 확인 

새로운 워크시트를 만들어 쿼리문을 실습할 수 있는 창이 띄운다.

 

DML(SELECT)

 - 테이블의 데이터를 읽어오는 것 

 

주요 용어

기본키 : 구분, null값을 가질 수 없음

외래키 : 다른테이블의 기본키에 해당하는 값만 가질 수 있다 / 테이블간의 참조관계를 표시할 때 사용되는 컬럼 

Null :  값을 가지고 있지 않은 상태

 

주요 데이터 타입

데이터 타입 하위 데이터 타입 설명
NUMBER   숫자
CHARACTER CHAR 고정길이 문자(최대 2000바이트)
VARCHAR2 가변길이 문자(최대 4000바이트)
LONG 가변길이 문자(최대 2기가 바이트)
DATE   날짜
LOB CLOB 가변길이 문자(최대 4기가 바이트)
BLOB Binary Data

 

SQL(Structured Query Language)

- 관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성

분류 용도 명령어
DQL
(Data Query Language)
데이터 검색 SELECT
DML
(Data Query Language)
데이터 조작 INSERT, UPDATE, DELETE
DDL
(Data Query Language)
데이터 정의 CREATE, DROP, ALTER
TCL
(Transaction Control Language)
트랜젝션 제어 COMMIT, ROLLBACK

 

SELECT

- 데이터를 조회한 결과를 Result Set이라고 하는데 SELECT구문에 의해 반환된 행들의 집합을 의미

- Result Set은 0개 이상의 행이 포함될 수 있고 Result Set은 특정한 기준에 의해 정렬 가능

- 한 테이블의 특정 컬럼, 특정 행, 특정 행/컬럼 또는 여러 테이블의 특정 행/컬럼 조회 가능

 

실습을 통해 SELECT문 구현 

조회

* 모든 컬럼 조회
일부만을 조회

- SELECT 문에 불러올 결과값에 대해서 지정한다.

** 쿼리는 대소문자를 가리지 않지만 관례상 대문자로 작성한다.

 

 

SELECT문 산술연산

컬럼 값을 통한 산술연산
산술연산 중 null값이 존재할 경우
DATE형식의 산술연산

** SYSDATE는 현재 날짜를 출력!

 

 

컬럼명에 별칭 지정

컬럼명 별칭 지정

리터럴 표시

 

DISTINCT (중복 제거)

 

WHERE절 (조건에 만족하는 결과만 조회)

- 여러 개의 조건 작성 시 AND(~이면서, ~이고) / OR 사용(~이거나, 또는)

  ex) 부서코드가 ‘D6’이고 급여를 2000000보다 많이 받는 직원의 이름, 부서코드, 급여 조회

  SELECT EMP_NAME, DEPT_CODE, SALARY

  FROM EMPLOYEE WHERE DEPT_CODE = ‘D6’

  AND SALARY > 2000000;

 

- 연결 연산자 : ‘||’를 사용하여 여러 컬럼을 하나의 컬럼인 것처럼 연결하거나 컬럼과 리터럴을 연결

- 논리 연산자 : 여러 개의 제한 조건 결과를 하나의 논리 결과로 만들어줌

- 비교 연산자 : 표현식 사이의 관계를 비교하기 위해 사용하고 비교 결과는 논리 결과(TRUE/FALSE/NULL) 중 하나가 됨

                    단 비교하는 두 컬럼 값/표현식은 서로 동일한 데이터 타입이어야 함