Backend/Oracle
![[SQL] 계층형 쿼리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHYSf2%2FbtrraAOT3DQ%2FbokSG7gaDMVM9lMYoEvuv1%2Fimg.png)
[SQL] 계층형 쿼리
계층형 쿼리(START WITH, CONNECT BY, ORDER SIBLINGS BY) : 상위 타입과 하위 타입간의 관계를 계층식으로 표현할 수 있게 하는 질의어(SELECT) 👉START WITH : 상위 타입(부모)로 사용될 행을 지정 (서브쿼리 O) START WITH PARENT_REPLY_NO IS NULL PARENT_REPLY_NO만 봐도 부모인지 자식인지 알 수 있다 -> NULL로 구분 👉CONNECT BY : 상위 타입과 하위 타입간의 관계를 규정 PRIOR 연산자와 같이 사용하여 현재 행 이전에 상위타입이 있을지, 하위 타입이 있을지를 지정한다 ( PRIOR 연산자 : 어떤 행 이전에 와야하는것을 규정한다) SELECT * FROM REPLY START WITH PARENT_REP..

DB 정리
1강 데이터 : 실제 값 정보 : 데이터를 기반으로 의미를 부여한 것 DB: 한 조직에 필요한 정보를 공용으로 사용할 수 있도록 논리적으로 데이터를 모으고 중복을 최소화하여 구조적으로 저장한 것. 특징 1. 실시간 접근성 2. 계속적인 변화 3. 동시 공유 4. 내용에 따른 참조 DBMS : DB에서 데이터 추출, 조작,정의,제어 등 할수있는 DB 관리 시스템 DBMS 사용 이점 1. 데이터 독립화 2. 데이터 중복 최소화, 데이터 무결성 보장 3. 데이터 보안 향상 4. 관리 편의성 향상 객체-관계형 데이터베이스 1. 사용자 정의 타입 지원 2. 참조(reference)타입 지원 3. 중첩 테이블 지원 4. 대단위 객체의 저장 및 추출 가능 5. 객체간의 상속관계 지원 SQL: 구조적 질의 언어, 검색..
[DB] TRIGGER
✍TRIGGER(트리거) : 테이블이나 뷰가 INSERT, UPDATE, DELETE 등의 DML문에 의해 변경될 경우(테이블 이벤트 발생 시) 자동으로(묵시적으로) 실행될 내용을 정의하여 저장하는 객체(PROCEDURE) 1. 트리거 종류 1) SQL문의 실행 시기에 따른 분류 BEFORE TRIGGER : SQL문 실행 전 트리거 실행 AFTER TRIGGER : SQL문 실행 후 트리거 실행 2) SQL문의 의해 영향을 받는 각 ROW에 따른 분류 ROW TRIGGER : SQL문 각 ROW에 대해 한번씩 실행 트리거 생성 시 FOR EACH ROW 옵션 작성 - FOR EACH ROW 안에 아래 두개를 작성할 수 있는데 :OLD : 참조 전 열의 값 (INSERT: 입력 전 자료, UPDATE :..
[DB] PROCEDURE
✍프로시져(PROCEDURE, 절차) : PL/SQL문을 저장하는 객체 - 필요할 때마다 복잡한 구문을 다시 입력할 필요 없이 간단하게 호출해서 실행 결과를 얻을 수 있음 ⭐ 특정 로직을 처리하기만 하고 결과값을 반환하지 않음 = FUNTION과의 차이점 == 반환값!!// 기본적으로 반환하지 않는것이지 설정하는 방법은 있다. (참고) 프로시져는 주로 분할된 업무 단위로 로직 구현 시 개별적인 단위 업무는 PROCEDURE로구현해 처리한다. 테이블에서 데이터를 추출해 필요에 맞게 조작하여, 그 결과를 다른 테이블에 저장/갱신 등의 일련의 처리를 할 때 주로 사용함. !! SET SERVEROUTPUT ON; : 프로시저 사용 시 출력하는 내용을 화면에 보여주도록 설정하는 환경변수를 실행 후 프로시져를 사..
[DB] PL/SQL , (타입,레퍼런스)변수, 조건문, CASE문, 반복문, FOR , 예외처리
✍ PL/SQL (Procedural Language extension to SQL) : 오라클 자체에 내장되어있는 절차적 언어(Procedual Language) - SQL 문장 내에서 변수의 정의, 조건처리(IF), 반복처리(LOOP, FOR, WHILE)등을 지원하여 SQL의 단점을 보완 1. PL/SQL 구조 ⭐ 선언부(DECLARE SECTION) : DECLARE로 시작, 변수나 상수를 선언하는 부분 ⭐ 실행부(EXECUTABLE SECTION) : BEGIN으로 시작, 제어문, 반복문, 함수 정의등 로직 기술 ⭐ 예외처리부(EXCEOTION SECTIOIN) : EXCEPTION으로 시작, 예외사항 발생 시 해결하기 위한 문장 기술 2. PL/SQL의 장점 PL/SQL문은 BLOCK 구조로 ..
![[DB] VIEW, SEQUENCE, INDEX](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fos9TC%2FbtrghPJETHw%2FOnvFotFhRkJyG82RTiZsP1%2Fimg.png)
[DB] VIEW, SEQUENCE, INDEX
✍VIEW : SELECT문의 실행 결과(RESULT SET)을 저장하는 객체 논리적 가상 테이블 (실행결과는 진짜 테이블이 아닌 조회 결과이다.) ➡ 테이블의 모양을 하고 있지만 실제 값을 저장하고 있진 않는다. 1. VIEW 사용 목적 - 대체로 조회 용도로만 사용(노출은 되어도 악의적인 이용은 못하게 ) 1) 복잡한 SELECT 문의 쉬운 재사용 : 이렇게 길게 쓸 필요 없이 VIEW 이름만 정해주면된다 VIEW ➡ SELECT * FROM VIEW 이름; SELECT~ FROM ~ JOIN ~ JOIN ~ WHERE ~ (SELECT) GROUP BY ~ HAVING ~ ORDER BY ~ 2) 테이블의 진짜 모습을 감출 수 있어 보안상 유리 : 테이블의 진짜 이름을 감춰서 바이러스 프로그램으로부..
[DB] DCL :: 권한, 사용자 계정 생성하는 법
✍DCL(Data Control Language) : 데이터 제어 언어 데이터 베이스, 데이터베이스 내의 객체에 대한 접근 권한을 제어(부여, 회수)하는 언어 GRANT : 권한 부여 REVOKE : 권환 회수, 취소 조작 ex) 시험 성적 조작(점수라는 데이터를 바꿈) 제어 : 자동차 제어(자동차라는 물체의 움직임을 바꿈) 🚩1. 시스템 권한 부여 사용자에게 시스템 권한을 부여할 때 사용 표기법 GRANT 권한1, 권한2, ... -- TO 사용자 이름; [ 시스템 권한 종류 ] CRETAE SESSION 데이터베이스 접속 권한 CREATE TABLE 테이블 생성 권한 CREATE VIEW 뷰 생성 권한 CREATE SEQUENCE 시퀀스 생성 권한 CREATE PROCEDURE 함수(프로시져) 생성 ..
[DB] DDL :: ALTER , DROP
✍ALTER : 객체를 수정하는 구문 표현식 테이블 객체 수정 ALTER TABLE 테이블명 수정할 내용; 👉수정할 내용 컬럼 추가/수정/삭제, 제약조건 추가/삭제 컬럼 자료형 변경, DEFAULT값 변경 테이블명 변경, 컬럼명, 제약조건 이름 변경 🚩 1. 컬럼 추가, 수정, 삭제 1) 컬럼 추가(ADD) ALTER TABLE 테이블명 ADD (새로운컬럼명 데이터타입(크기)) ➡ ADD 뒤에 COLUMN 생략가능 ➡ 새로운 컬럼이 추가되었지만 데이터는 없기 때문에 값이 NULL이다. 1-1) 컬럼 추가 시 DEFAULT값 지정 ALTER TABLE 테이블명 ADD (새로운컬럼명 데이터타입(크기) DEFAULT 기본값) 2) 컬럼 수정(MODIFY) 데이터 타입, 기본값(DEFAULT) 수정 ALTER ..
![[DB] TCL(TRANSGACTION CONTROL LANGUAGE)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqGYHu%2FbtrfUQJMVZK%2FmbcDZpBVLMgb6bTekbSYK1%2Fimg.png)
[DB] TCL(TRANSGACTION CONTROL LANGUAGE)
더보기 목차 1. COMMIT 2. ROLLBACK 3. SAVEPOINT ✍TCL(TRANSGACTION CONTROL LANGUAGE) Transgaction : 데이터베이스의 논리적 연산 단위 TCL : 트랜잭션 제어 언어 데이터의 변경 사항을 묶어 하나의 트랜잭션에 담아 처리한다. 트랜잭션에 담겨지는 대상이 되는 SQL : INSERT, UPDATE, DELETE (DML, 데이터 조작 언어) SQL DEVELOPER에서 INSERT, UPDATE, DELETE 작성 시 바로 DB에 반영되는것이 아니라 메모리 임시버퍼에서 COMMIT 해야 DB에 반영된다. COMMIT한 것을 없애고 싶을 때 : ROLLBACK SVAPOINT S1을 중간 저장한다고 했을 때 ROLLBACK TO S1시 SAVEP..
![[DB] DDL : CREATE, 제약조건 CHECK](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVVezV%2FbtrfPik0HmV%2FKa0UAjYPTZtOMzwHah9Lk0%2Fimg.png)
[DB] DDL : CREATE, 제약조건 CHECK
더보기 목차 1. CREATE 2. 제약조건(CONSTAINT) 1) PRIMARY KEY, NOT NULL, UNIQUE, FOREIGN KEY, CHECK 4. DELETE 데이터 딕셔너리란? : 자원을 효율적으로 관리하기 위한 다양한 정보를 저장하는 시스템 테이블 데이터 딕셔너리는 사용자가 테이블을 생성하거나 사용자를 변경하는 등의 작업을 할 때 데이터베이스 서버에 의해 자동으로 갱신되는 테이블 참고) User_tables : 자신의 계정이 소유한 객체 등에 관한 정보를 조회 할 수 있는 딕셔너리 뷰 SELECT * FROM USER_TABLES; 으로 결과를 볼 수 있다. ✍DDL(Data Definition Language) : 데이터 정의 언어 객체(OBJECT)를 만들고(CREATE), 수정..