SQL 11

11장. SEQUENCE(시퀀스)와 SYNONYM(동의어)

1. SEQUENCE (시퀀스) SEQUENCE(시퀀스)란 순서라는 뜻이다. 고유한 숫자 값을 생성하는 객체이다. 은행의 대기표라 생각하면 된다. 순차적으로 값을 증가시킨다. 순차적인 값을 제공할 수 있도록 한다. 비슷한 예시는 Insert할 때 자동으로 일련 번호가 나갈 수 있도록 하는 것이다. 이때 속성 값 중 NEXTVAL(일정 값을 증가시켜줌)와 CURRVAL(현재 시퀀스 번호)를 꼭 참고해야 한다. CREATE SEQUENCE sequence_name# 시퀀스 번호의 증가 값으로 기본값은 1[INCREMENT BY n]# 시퀀스 시작 번호로 기본값은 1[START WITH n]# 생성 가능한 시퀀스 최대값[MAXVALUE n | NOMAXVALUE]# CYCLE일 경우 새로 시작되는 값과 감소하..

Oracle/개념 2024.06.15

10장. Sub Query (서브 쿼리)

1. Sub Query란? 서브쿼리는 SQL에서 하나의 쿼리 내에 포함된 또 다른 쿼리이다. WHERE 문 줄에 있는 괄호 속에 또 다른 SELECT 문이 결과를 산출한다. 그 결과를 WHERE 문이 조건 연산자와 결과물을 사용한다. 이 조건문을 SELECT 문을 사용한다. 결과가 한 건만 나온다면 ORDER BY를 사용하는 의미가 없다. 주쿼리와 조건을 다시 비교해야 한다. ORDER BY를 사용한다고 해서 도움이 될 만한 것은 없다. 단일 행이 나오는 경우가 있고, 여러 행이 나오는 경우도 있다. SELECT select_listFROM 테이블_또는_뷰WHERE 조건-연산자 ( SELECT select_list FROM 테이블 WHERE..

Oracle/개념 2024.06.14

9장. VIEW(뷰)

VIEW란? 말 그대로 내가 보는 입장에서 데이터를 활용하는 방법을 뷰라고 한다. table 개념으로 활용한다.           1. 단순 뷰 (Simple View)  뷰를 만드려면 'CREATE VIEW' 형태로 만든다. 이때 권한이 필요하다. 그 전에 SCOTT에 뷰 권한을 줘야 한다.SCOTT> CONN / AS SYSDBA;SYS> GRAND CREATE VIEW TO scott;  기본적인 것들은 'READ'만 하는 것이 일반적이지만, 아주 예외적인 경우에 'WRITE + READ'를 할 수 있다.CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰 [(별칭, 별칭, ···)]AS 서브쿼리[WITH CHECK OPTION [CONSTRAINT 제약조건]][WITH ..

Oracle/개념 2024.06.14

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