전체 글 45

8장. INDEX (인덱스)

1. 인덱스(INDEX)란 무엇인가?  인덱스는 책 뒤편에 있는 '찾아보기'에 해당한다. 정렬된 값을 보고 원하는 값을 빨리 찾을 수 있다. 메모리에 비해 하드디스크는 데이터를 가져오는 것이 느리다. 하드디스크에서 데이터를 가져오기 위해서는 인덱스가 필수이다. 그래야지 오라클이 사용자에게 빨리 값을 리턴시킬 수 있다.           2. 인덱스의 생성 원리  인덱스는 하드 디스크에 데이터가 저장되는 데이터 파일이다. 블럭(block) 단위로 저장된다. 이 데이터들은 랜덤(random)한 위치에 흩어진다.* PGA (Program Global Area)오라클에서 사용하는 메모리 영역(프로그램에서 사용하는 메모리 영역) 데이터를 잘 찾기 위해서는 정렬해야 한다.하드 디스크에 있던 랜덤한 위치에 있던 데이..

Oracle/개념 2024.06.14

7장. Constraint(제약조건)

제약 조건(Constraint)이란? 말 그대로 제약을 걸 수 있는 것이다. 올바른 데이터만 받아야 하므로, 테이블에 올바른 데이터만 입력받고 잘못된 데이터는 들어오지 못하도록 컬럼마다 정하는 규칙을 의미한다. 해당 규칙을 정하는 것이 제약 조건이다.           1. 제약 조건의 종류 조건 이름의미NOT NULL이 조건이 설정된 컬럼에는 NULL 값이 입력되지 못하도록 한다.NN이라 많이 적는다.UNIQUE말 그대로 유니크하다. 이 조건이 설정된 컬럼에는 중복된 값이 입력되지 못하도록 한다.PRIMARY KEY기본 키. 무조건 앞이 채워져 있어야 한다. 무조건 UNIQUE해야 한다.이 조건은 NOT NULL + UNIQUE의 특징을 가지며 테이블 내에서 데이터들끼리의 유일성을 보장하는 컬럼을 설정..

Oracle/개념 2024.06.13

6장. DML 데이터 관리

1. INSERT (새로운 데이터 입력하기) 1) INSERT를 사용하여 1행씩 입력하기데이터를 입력할 때 컬럼 이름 순서대로 해당 컬럼에 넣어야 할 데이터를 알맞게 넣어야 한다.INSERT INTO INSERT INTO table_nameVALUES ( value1, value2, ··· ) ; [ ( column1, column2, ··· ) ]VALUES ( value1, value2, ··· ) ; 모든 컬럼에 데이터를 한번에 입력할 경우 컬럼 이름을 생략할 수 있다.INSERT INTO table_nameVALUES ( value1, value2, ··· ) ; 데이터 중 날짜를 입력하는 경우 다음과 같은 코드를 입력한 후 컬럼에 원하는 데이터를 넣으면 된다.ALTER SESSION SET NL..

Oracle/개념 2024.06.13

5장. DDL 명령과 딕셔너리

DDL : 'Data Definition Language'의 약자. 데이터를 저장하는 언어인 SQL. [ 다양한 오라클 명령어 종류들 ]구분의미종류DML(Data Manipulation Language)데이터를 저장하고 사용하는 명령어INSERT (입력)UPDATE (변경)DELETE (삭제)MERGE (병합)DDL(Data Definition Launguage)정의한 데이터를 관리하는 명령어CREATE (생성)ALTER (수정)TRUNCATE (잘라내기)DROP (삭제)DCL(Data Control Language)권한을 주거나 뺏는 명령어GRANT (권한 주기)REVOKE (권한 뺏기)TCL(Transaction Control Language)작업 내역을 확정 또는 취소하는 명령어COMMIT (확정)..

Oracle/개념 2024.06.12

4장. JOIN

컴퓨터 상에 다양한 저장 장치가 존재한다. 그 중 대표적으로 하드 디스크(Hard Disk Drive, HDD)가 있다. 그 속에 다양한 데이터들이 있다.  컴퓨터에게 값을 검색하라 하면 하드 디스크에서 메모리(Random Access Memory)로 올린다. 데이터 값과 Block이라는 값이 통째로 Bocker를 통해서 들어간다. Block 사이즈가 작더라도 원하지 않는 값까지 모두 들어간다. 효율적으로 데이터를 전달하려면 테이블이 나뉘어져 있어야 효과적으로 전달할 수 있다. 쪼개져서 올라오면 속도가 빠르지만, 원하는 데이터들을 합쳐서 보내줘야 한다. 이러한 원리를 JOIN이라고 한다.  JOIN을 하는 이유 정규화라는 개념이 있다. 논리적 일관성을 유지하기 위해 하나의 큰 테이블을 여러 개로 쪼개는 ..

Oracle/개념 2024.06.12

3장. SQL 복수행 함수

1. GROUP 함수의 종류함수 이름의미사용 예COUNT입력되는 데이터들의 총 건수를 출력COUNT(데이터)SUM입력되는 데이터들의 합계값 구해서 출력SUM(데이터)AVG입력되는 데이터들의 평균값 구해서 출력AVG(데이터)MAX입력되는 데이터들 중 가장 큰 값을 출력MAX(데이터)MIN입력되는 데이터들 중 가장 작은 값을 출력MIN(데이터)STDDEV입력되는 데이터 값들의 표준 편차 값 출력STDDEV(데이터)VARIANCE입력되는 데이터들의 분산값 출력 VARIANCE(데이터)ROLLUP입력되는 데이터들의 소계값을 자동으로 계산해서 출력본문 예제 참고CUBE입력되는 데이터들의 소계 및 전체 총계를 자동 계산 후 출력본문 예제 참고GROUPINGSET한 번의 쿼리로 여러 개의 함수들을 그룹으로 계산 후 ..

Oracle/개념 2024.06.12

2장. SQL 단일행 함수

함수의 종류단일행 함수 : 데이터베이스에서 연산되는 단위가 각각의 행 단위로 실행된다.복수행 함수 : 행이 입력되는 매개변수가 여러 개의 행에 있는 데이터를 받아서 실행된다. 단일행 함수의 종류문자 함수숫자 함수날짜 함수변환 함수: 묵시적 데이터형 변환 명시적 데이터형 변환일반 함수   1. 문자 함수함수명의미사용예INITCAP입력 값의 첫 글자만 대문자로 변환INITCAP('abcd') → AbcdLOWER입력 값을 전부 소문자로 변환LOWER('ABCD') → abcdUPPER입력값을 전부 대문자로 변환UPPER('abcd') → ABCDLENGTH입력된 문자열의 길이 값을 출력LENGTH('한글') → 2LENGTHB입력된 문자열의 길이의 바이트 값을 출력LENGTHB('한글') → 4CONCAT두..

Oracle/개념 2024.06.11

[이것이 자바다] CHAPTER 11. 예외 처리

11.1 예외 예외 클래스 자바에서는 컴퓨터 하드웨어의 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 에러(error)라고 한다. 개발자는 이런 에러에 대처할 방법이 없다.  자바에서는 잘못된 사용 또는 코딩으로 인한 오류를 예외(exception)라고 한다. 예외가 발생하면 프로그램이 곧바로 종료된다는 점에서 에러와 동일하지만, 예외 처리를 통해 계속 실행 상태를 유지할 수 있다.일반 예외(Exception)컴파일러가 예외 처리 코드 여부를 검사하는 예외를 말한다.실행 예외(Runtime Exception)컴파일러가 예외 처리 코드 여부를 검사하지 않는 예외를 말한다.  자바는 예외가 발생하면 예외 클래스로부터 객체를 생성한다. 이 객체는 예외 처리 시 사용된다. 자바의 모든 에러와 예외 클래스..

[이것이 자바다] CHAPTER 09. 중첩 선언과 익명 객체 │ 개념

9.1 중첩 클래스  여러 클래스와 관계를 맺어 상호작용하는 경우 클래스를 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우 중첩 클래스로 선언하는 것이 유지보수에 도움이 되는 경우가 많다.  중첩 클래스(Nested Class)란 클래스 내부에 선언한 클래스를 말하는데, 중첩 클래스 사용 시 클래스의 멤버를 쉽게 사용할 수 있고 외부에서는 중첩 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. 선언하는 위치에 따라 클래스의 멤버로서 선언되는 중첩 클래스인 멤버 클래스와 메소드 내부에서 선언되는 중첩 클래스인 로컬 클래스로 나뉜다.선언 위치에 따른 분류선언 위치객체 생성 조건멤버 클래스인스턴스멤버 클래스class A { class B { ··· }}A 객체를 생성해야만B 객체를 생..

[이것이 자바다] CHAPTER 08. 인터페이스 │ 개념

8.1 인터페이스 역할 인터페이스(interface)는 사전적인 의미로 두 장치를 연결하는 접속기를 말한다. 여기서 두 장치를 서로 다른 객체로 본다면, 인터페이스는 이 두 객체를 연결하는 역할을 한다.    객체 A가 인터페이스의 메소드를 호출하면, 인터페이스는 객체 B의 메소드를 호출하고 그 결과를 받아 객체 A로 전달해준다. 인터페이스 사용하는 이유는 다음과 같다.  객체 A는 인터페이스의 메소드만 사용하므로 다른 객체가 교체되는 것에 관심이 없다. 객체 A가 인터페이스의 메소드를 호출한다면 실제로 실행되는 것은 객체 B 또는 객체 C의 메소드이다.  만약  인터페이스 없이 객체 A가 객체 B를 직접 사용한다면 객체 A의 소스 코드를 객체 B에서 객체 C로 변경하는 작업이 추가로 필요할 것이다. 객..