Back-End/Oracle 12

Oracle ■ SEQUENCE, INDEX

◈ OBJECT(SEQUENCE)◈ • SEQUENCE번호를 자동으로 증가시켜주는 역할을 수행하는 객체일반적으로 회원 번호, 게시글 번호 등 식별자 역할을 하는 PRIMARY KEY에 자주 사용됨 • 표현법CREATE SEQUENCE 시퀀스이름START WITH 시작값INCREMENT BY 증가값MAXVALUE 최대값MINVALUE 최소값CYCLE/NOCYCLECACHE 바이트크기/NOCACHE • 캐시 메모리발생할 값들을 미리 생성하여 저장해 두고, 메모리 공간에 미리 생성된 값을 가져다가 사용하여그때 그때 생성하여 사용하는 것 보다 속도가 빨라짐시퀀스의 캐시 메모리 기본 값은 20Byte • SEQUENCE시퀀스 생성 및 테스트 테이블 생성  시퀀스명.nextval 을 입력하여 시퀀스 실행 가능  여..

Back-End/Oracle 2024.08.09

Oracle ■ TCL COMMIT, ROLLBACK, SAVEPOINT

◈ TCL◈ • TCL (Transcation Controll Language)트랜잭션을 제어하는 언어• 트랜잭션(Transaction) 데이터베이스에서 실행되는 논리적 작업 단위SELECT, INSERT, UPDATE, DELETE와 같은 연산을 수행하여 데이터베이스의 상태를 변화시키는 작업의 단위로써 이러한 일련의 작업들이 발생하는 단위를 말함 • 트랜잭션의 특징(ACID)1. Atomicity(원자성)-> 트랜잭션이 모두 반영 되던지, 모두 반영되지 않던지 해야 함-> 트랜잭션의 모든 작업은 반드시 성공 해야하며, 하나라도 에러가 발생할 경우 모든 작업에 대한트랜잭션이 모두 취소되어야 함2. Consistency(일관성)-> 작업의 처리 결과가 항상 일관성이 있어야 함3. Isolation(독립성)..

Back-End/Oracle 2024.08.07

Oracle ■ DCL GRANT, REVOKE

◈ DCL ◈ • DCL계정에겐 권한을 부여하거나 회수하는 역할을 가진 언어DB의 데이터 접근 및 보안을 담당하며 각각의 직원들이 가진 역할에 대해최소한의 권한만을 부여하여 사용하는 것이 좋음 ◈ GRANT ◈계정에게 권한을 부여하며 시스템 권한과 접근 권한으로 나뉘어 짐시스템 권한 : 데이터베이스 시스템 자체에 대한 권한으로써 데이터베이스에 접근하거나 스키마에 접근하여 객체를 관리할 수 있는 권한접근 권한 : 특정 객체들을 조작(DML)할 수 있는 권한 표현법 : GRANT 권한1, 권한2, 권한3, … TO 계정명; • 시스템 권한 종류1. CREATE SESSION : 계정 접속 권한2. CREATE TABLE : 테이블 생성 권한3. CREATE USER : 계정 생성 권한4. CREATE SEQ..

Back-End/Oracle 2024.08.02

Oracle ■ DDL ALTER, DROP

◈ DDL ALTER ◈ • ALTER데이터베이스의 객체 구조를 변경해주는 구문ex) 표현법 : ALTER TABLE 테이블명 내용; • 실습 테이블CREATE TABLE DDL_ALTER_TEST(ALTER_ID VARCHAR2(255) PRIMARY KEY,ALTER_NAME VARCHAR2(255),ALTER_AS VARCHAR2(255)); • 테이블 이름 변경ALTER TABLE 테이블명 RENAME TO 바꿀테이블명; • 테이블 구조 변경ALTER TABLE 테이블명 MODIFY (컬럼명1 변경할타입,컬럼명2 변경할타입); * NOT NULL을 제거하고 싶을 경우 NULL로 변경  ◈ DDL ALTER - 컬럼◈ • 컬럼 이름 변경ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼..

Back-End/Oracle 2024.07.29

Oracle ■ 데이터베이스 정규화

◈  데이터베이스 정규화 ◈ • 데이터베이스 정규화이상 문제를 해결하기 위해 속성들끼리의 종속 관계를 분석하여 여러개의 릴레이션으로 분해하는 과정 • 이상 문제삽입 이상 : 데이터를 저장할 때 원하지 않는 정보가 함께 삽입되는 경우삭제 이상 : 튜플을 삭제함으로써 유지되어야 하는 정보까지도 연쇄적으로 삭제되는 경우갱신 이상 : 중복된 튜플 중 일부의 속성만 갱신 시킴으로써 정보의 모순성이 발생하는 경우 • 릴레이션(=테이블)관계형 데이터베이스에서 정보를 저장하는 기본 단위 • 참고릴레이션 분해가 많이 될 수록 JOIN을 자주 사용하게 되어 쿼리의 속도가 상대적으로 느려지기 때문에 데이터베이스 정규화는 적정선에서 해야 함 * 보통의 경우 3정규화 까지만 진행 하는것을 권장 -> 이후까지 정규화를 진행하면 ..

Back-End/Oracle 2024.07.26

Oracle ■ CREATE

◈ DDL ◈  • DDL(Data Definition Language)데이터베이스의 객체를 생성, 수정, 삭제 하는 등의 작업이 가능한 언어 • 종류1. CREATE : 객체 생성2. ALTER : 객체 수정3. DROP : 객체 삭제  • TABLE테이블은 열과 행으로 구성되어 있는 데이터베이스의 객체 종류 중 하나로써 실제 데이터들이 저장되어 있는 공간 • 데이터베이스 객체 종류1. Table2. Indexes3. Sequences4. Views5. 등등 • CREATE TABLE 표현법CREATE TABLE 테이블명 ( 컬럼명 자료형, 컬럼명 자료형, 컬럼명 자료형, ... ) • 자주 쓰이는 자료형 종류  • CREATE TABLE 표현법회원 테이블 생성하는 쿼리문이며 각 단어들 사이에 언더바(..

Back-End/Oracle 2024.07.25

Oracle ■ DML INSERT, UPDATE, DELETE

◈ DML(INSERT) ◈ • INSERT테이블에 새로운 데이터(행)를 추가하는 구문-> 문법 : INSERT INTO 테이블명 VALUES (값1, 값2, …) • 참고값을 넣을 때는 테이블에 정의된 컬럼의 순서, 데이터 타입에 맞게 넣어야 함 • Dbeaver에서 테이블 구조 확인하기현재 실습중인 HR 계정의 스키마 클릭-> Tables 클릭  확인하고 싶은 테이블 클릭 • Dbeaver에서 테이블 구조 확인하기  • INSERT 사용해보기 (1)EMPLOYEES_SEQ.netval 무시 (일단은 1씩 값을 증가시켜주는 기능이라고 생각해도 됨)  • INSERTINSERT INTO 테이블명(컬럼1, 컬럼2) VALUES (값1, 값2, …)위와 같이 작성할 경우 필요한 컬럼만을 선택하여 값을 추가..

Back-End/Oracle 2024.07.24

Oracle ■ DML SELECT (4)-서브쿼리

◈ DML ◈ • 서브쿼리SQL 쿼리 안에 포함된 또 다른 쿼리 • 서브쿼리 예시Donald 라는 직원과 같은 부서에 있는 직원 이름 조회할 때 기본적인코드는 아래와 같이 2번에 걸쳐 SELECT를 사용해야 함  • 서브쿼리 예시서브쿼리를 사용할 경우 한번의 쿼리로 조회 가능  • 설명1. 서브쿼리가 실행2. Donald가 속한 부서의 ID를 찾음3. 찾은 결과(50)을 DEPARTMENT_ID = 50 으로 대입되어 조건식 생성4. 메인 쿼리의 SELECT 실행 ◈ DML (단일행 서브쿼리) ◈ • 단일행 서브쿼리결과값의 데이터(행)가 1개인 서브 쿼리로써 단일행 비교 연산자와 사용할 수 있음 * 단일행 비교 연산자 : =, =, >, != • 설명1. 서브쿼리가 실행2. DEPARTMENT_ID가 3..

Back-End/Oracle 2024.07.17

Oracle ■ DML SELECT(3)-집합 연산자,조인

◈ DML ◈ • 집합 연산자(SET OPERATOR)하나의 쿼리문 안에 여러개의 쿼리가 들어가는 형태를 가지는 연산자로써 테이블의 데이터를 하나로 합칠 때 주로 사용됨 * 참고 : 데이터가 조회된 결과물을 RESULT SET 이라고 부름  • UNION1. EMPLOYEES 테이블에서 DEPARTMENT_ID가 80이면서 SALARY가 10000 이상인 직원 조회 2. EMPLOYEES 테이블에서 급여가 5000이상 10000 이하거나 이름이 A로 시작하는 직원 조회  3. 아래와 같이 서로 다른 테이블에 대한 결과를 합쳐서 조회할 수 있음  4. EMPLOYEES 테이블과 DEPARTMENTS 테이블의 데이터 결과를 합치고 중복 제거 • 위 예시 설명 1. 데이터 조회에 대한 컬럼명은 선행 쿼리문에 ..

Back-End/Oracle 2024.07.17

Oracle ■ DML SELECT(2)-그룹쿼리

◈ DML ◈ • ORDER BYSELECT에 의해서 조회된 데이터를 정려해주는 구문으로써, 데이터의 조회 후 실행되기때문에 SELECT문의 가장 마지막에 실행됨아래의 옵션은 생략 가능함 • ORDER BYEMPLOYEE_ID 컬럼을 내림차순으로 정렬  • 그룹함수여러 개의 행을 묶어 연산하여 결과를 반환하며 자주 쓰이는 그룹 함수는 아래와 같음 * Oracle의 내장함수 중 한가지 분류임. 그룹함수 외에도 문자함수, 수치 함수, 날짜 함수 등의 내장 함수들이 존재함  • 그룹함수 - MAXEMPLOYEES 테이블에 있는 SALARY 컬럼의 최대 값을 반환  • 그룹함수 - MINEMPLOYEES 테이블에 있는 SALARY 컬럼의 최대 값을 반환  • 그룹함수 - AVGEMPLOYEES 테이블에 있는 S..

Back-End/Oracle 2024.07.15