일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- web
- 서브쿼리
- javascript
- javaprogramming
- JavaScript 내장객체
- maven
- 국비지원
- sql
- js
- 자바프로그래밍
- TodayILearned
- springaop
- mybatis
- 오라클
- 메이븐
- 프레임워크
- PWA
- HTML
- 스프링
- progressive web app
- tdd
- 프로그레시브웹앱
- SpringMVC
- CSS
- 자바스크립트
- sqldeveloper
- Oracle
- framework
- 생활코딩
- TIL
- Today
- Total
1cm
자바 프로그래밍_Day_25_ 오라클 데이터베이스(Oracle Database) 본문
자바 프로그래밍_Day_25_ 오라클 데이터베이스(Oracle Database)
dev_1cm 2021. 9. 29. 13:36
2021. 09. 23
Oracle Database개요
> Data
-> 관찰 결과로 나타난 정량적 혹은 정성적인 실제 값을 말한다.
> 정보
-> 데이터를 기반으로 의미를 부여한 것
> Data와 정보의 예시
-> * 에베레스트의 높이 : 8848m -> Data (정량 값)
에베레스트는 세계에서 가장 높은 산이다. -> 정보 (의미 부여)
> Database
-> 한 조직에 필요한 정보를 여러 응용 시스템에서 공용할 수 있도록 논리적으로 연관된 데이터를 모으고, 중복되는 데이터를 최소화 하여 구조적으로 통합/저장해 놓은 것을 말한다.
-> 데이터에서 정보를 추출하는 과정 -> 정보처리
-> 정보를 만들기 위한 목적
> Database 정의
-> 1. 공용 데이터 (Shared Data) : 공동으로 사용되는 데이터
-> 2. 통합 데이터 (Integerated Data) : 중복 최소화로 중복으로 인한 데이터가 불일치하는 현상을 제거
-> 3. 저장 데이터 (Stored Data) : 컴퓨터 저장장치에 저장된 데이터
-> 4. 운영 데이터 (Operational Data) : 조직의 목적을 위해 사용되는 데이터
> Database 특징
-> 실시간 접근성(real time accessibility) : 사용자가 데이터 요청 시 실시간으로 결과를 서비스
-> 계속적인 변화 (continuous change) : 데이터 값은 시간에 따라 항상 바뀜 (최신상태 유지)
-> 동시 공유(concurrent sharing) : 서로 다른 업무 또는 여러 사용자에게 동시 공유됨 (동시에 같은 내용)
-> 내용에 의한 참조(content reference) : 사용자가 요구하는 데이터 내용으로 데이터를 찾는다. (주소값이나 데이터가 저장된 위치에서 찾아오는 것이 아닌 데이터 내용으로 데이터를 찾는 것.)
> DBMS (DataBase Management System)
-> 데이터베이스에서 데이터 추출, 조작, 정의, 제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램이다.
> DBMS 기능
-> 데이터 추출 (Retrieval) : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출
-> 데이터 조작 (Manipulation) : 데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터 삽입, 수정, 삭제 작업을 지원
-> 데이터 정의 (Definition) : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행
-> 데이터 제어 (Control) : 데이터베이스 사용자를 생성하고 모니터링하며 접근 제어, 백업과 회복, 동시성 제어 등의 기능을 지원
> DBMS 종류와 특징
Access | SQL Server | Oracle | MySQL | MariaDB | SQLite | |
제조사 | MS | MS | Oracle | Oracle | MariaDB재단 | 리처드 힙 (오픈소스) |
운영체제 기반 | 윈도우 | 윈도우 | 윈도우 유닉스 리눅스 |
윈도우 유닉스 리눅스 |
윈도우 유닉스 리눅스 |
모바일OS (안드로이드, iOS등) |
용도 | 개인용 | 윈도우 기반 기업용 | 대용량 데이터베이스 |
소용량 데이터베이스 |
소용량 데이터베이스 |
모바일전용 데이터베이스 |
-> 리눅스를 가상화 시켜 sql server를 설치했다. (데몬에 cd파일(iso)을 돌리는 것과 같은 원리라고 보면 된다.)
> Database 유형
-> 계층형 데이터베이스 : 트리 형태의 계층적 구조를 가진 데이터베이스로 최상위 계층의 데이터부터 검색하는 구조
-> 단점 : 데이터가 중복으로 들어가는 문제가 생길 수 있고, 추가하거나 삭제하는 과정이 복잡하다.
-> 네트워크형 데이터베이스 : 하위 데이터들끼리의 관계까지 정의할 수 있는 구조로 설계 및 구현이 복잡하고 어렵다.
-> 계층형 데이터베이스의 보완하고자 네트워크형(그물형) 데이터베이스가 나옴.
-> 관계형 데이터베이스 : 모든 데이터를 2차원 테이블 형태로 표현하고, 테이블 사이의 비즈니스적 관계를 도출하는 구조, 데이터의 중복을 최소화할 수 있으며, 업무 변화에 대한 적응력이 우수하다.
-> RDBMS(Relational DataBase Management System) : 관계형 데이터베이스를 기반으로 한 DBMS유형으로 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
> DML (Data Manipulation Language)
-> 데이터 입력, 수정, 삭제, 조회 언어를 의미한다.
> 주요 데이터 타입
데이터 타입 | 하위 데이터 타입 | 설명 |
NUMBER | 숫자 | |
CHARACTER | CHAR | 고정길이 문자(최대 2000바이트) |
VARCHAR2 | 가변길이 문자(최대 4000바이트) | |
LONG | 가변길이 문자(최대 2기가 바이트) | |
DATE | 날짜 | |
LOB | CLOB | 가변길이 문자(최대 4기가 바이트) |
BLOB | Binary Data |
-> 문자형에서는 보통 CHAR, VARCHAR2를 자주 쓴다.
> SQL(Structured Query Language)
-> 관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어이다.
-> 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성한다.
분류 | 용도 | 명령어 |
DQL (Data Query Language) |
데이터 검색 | SELECT |
DML (Data Manipulation Language) |
데이터 조작 | INSERT, UPDATE, DALETE |
DDL (Data Definition Language) |
데이터 정의 | CREATE, DROP, ALTER |
TCL (Transaction Control Language) |
트랜젝션 제어 | COMMIT, ROLLBACK |
> SELECT문
-> 사용자가 입력한 데이터를 조회한다.
-> 데이터를 조회한 결과를 Result Set이라고 하는데, SELECT구문에 의해 반환된 행들의 집합을 의미한다.
-> Result Set은 0개 이상의 행이 포함될 수 있고, Result Set은 특정한 기준에 의해 정렬이 가능하다.
-> 한 테이블의 특정 컬럼, 특정 행, 특정 행/컬럼 또는 여러 테이블의 특정 행/컬럼 조회가 가능하다.
-> 테이블을 구성하는 튜플(행)들 중에서 전체 또는 조건을 만족하는 튜플(행)을 검색하여 주기억장치 상에 임시 테이블로 구성하는 명령문이다.
-> 작성법
-> SELECT 컬럼명 [, 컬럼명, ...]
FROM 테이블 명
WHERE 조건식;
-> SELECT : 조회하고자 하는 컬럼명 기술.
-> 여러 컬럼을 조회하는 경우 컬럼은 쉼표로 구분하고, 마지막 컬럼 다음은 쉼표를 사용하지 않음.
-> 모든 컬럼 조회 시 컬럼 명 대신 '*' 기호 사용이 가능하며, 조회 결과는 기술한 컬럼 명 순으로 표시된다.
-> FROM : 조회 대상 컬럼이 포함된 테이블 명 기술
-> WHERE : 행을 선택하는 조건 기술.
-> 여러 개의 제한 조건을 포함할 수 있으며, 각각의 제한 조건은 논리 연산자로 연결한다.
-> 제한 조건을 만족시키는 행들만 Result Set에 포함한다.
> SELECT 실습 | 기본
-> 학원에서 미리 만들어진 데이터들로 실습
-> EMPLOYEE 테이블에 전체 사원의 모든 컬럼(*) 정보 조회 시 아래와 뜨는 것을 확인할 수 있었다.
-> 쿼리는 대소문자를 가리지 않고 둘 다 실행이 되긴 하지만 관례적으로 대문자로 작성해야 한다.
-> 각각 테이블의 컬럼 정보 불러오기
> SELECT 예시 | 컬럼 값 산술 연산
-> 컬럼 값에 대해 산술 연산한 결과 조회 가능
-> 날짜 산술 연산도 가능하다.
> SELECT 예시 | 컬럼 별칭
-> 'AS 별칭' 이나 "별칭", 또는 'AS "별칭"'을 기술하여 컬럼 별칭을 지을 수 있다.
-> 별칭을 지정해줌으로써 컬럼명이 간결하게 출력되는 것을 확인할 수 있다.
> SELECT 예시 | 리터럴
-> 임의로 지정한 문자열을 SELECT절에 사용하면 테이블에 존재하는 데이터처럼 활용이 가능하다.
-> 임의로 지정한 '원'이라는 문자열을 SELECT절에 사용해줌으로써 테이블에 존재하는 데이터처럼 조회가 가능하며, RESULT SET의 모든 행에 반복적으로 출력 되는 것을 확인할 수 있었다.
> SELECT 예시 | DISTINCT
-> 컬럼에 포함된 데이터 중 중복 값을 제외하고 한 번 씩만 표시하고자 할 때 사용
> 연결 연산자
-> '||' 를 사용하여 여러 컬럼을 하나의 컬럼인 것처럼 연결하거나 컬럼과 리터럴을 연결함
> 논리 연산자
-> 여러 개의 제한 조건 결과를 하나의 논리 결과로 만들어 준다.
연산자 | 설명 |
AND | 여러 조건이 동시에 TRUE일 경우에만 TRUE값 반환 |
OR | 여러 조건들 중에 어느 하나의 조건만 TRUE면 TRUE값 반환 |
NOT | 조건에 대한 반대 값으로 반환(NULL 제외) |
> [AND 연산 결과]
TRUE | FALSE | NULL | |
TRUE | TRUE | FALSE | NULL |
FALSE | FALSE | FALSE | FALSE |
NULL | NULL | FALSE | NULL |
> [OR 연산 결과]
TRUE | FALSE | NULL | |
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | NULL |
NULL | TRUE | NULL | NULL |
> 비교연산자
-> 표현식 사이의 관계를 비교하기 위해 사용하고, 비교 결과는 논리 결과(TRUE/FALSE/NULL) 중 하나가 된다.
-> 단, 비교하는 두 컬럼 값/표현식은 서로 동일한 데이터 타입이어야 한다.
-> 주요 비교 연산자
연산자 | 설명 |
= | 같다 |
> , < | 크다 / 작다 |
>=, <= | 크거나 같다 / 작거나 같다 |
<>, !=, ^= | 같지 않다 |
BETWEEN AND | 특정 범위에 포함되는지 비교 |
LIKE / NOT LIKE | 문자 패턴 비교 |
IS NULL / IS NOT NULL | NULL 여부 비교 |
IN / NOT IN | 비교 값 목록에 포함 / 미포함 되는지 여부 비교 |
> SELECT 예시 | WHERE 절 | 비교연산자
-> 검색할 컬럼의 조건을 설정하여 행 결정
-> 실습은 동등 연산, 대소 비교, 같지 않음을 진행함.
'국비지원_Java > Java Programming_1' 카테고리의 다른 글
자바 프로그래밍_Day_27_함수(Function) (0) | 2021.09.30 |
---|---|
자바 프로그래밍_Day_26_SELECT 연산자 (0) | 2021.09.29 |
자바 프로그래밍_Day_24_Git 설치 (0) | 2021.09.26 |
자바 프로그래밍_Day_23_네트워크 프로그래밍 구현 평가 (0) | 2021.09.25 |
자바 프로그래밍_Day_22_스레드(Thread)2 (0) | 2021.09.25 |