1. 학사 시스템 정규화

2. 컴퓨터 재고 정규화

3. 출판사 정규화

'백엔드 > 데이터베이스2' 카테고리의 다른 글

DELIMITER  (0) 2022.12.13
프로시저  (0) 2022.12.13
트리거  (0) 2022.12.13
트랜젝션  (0) 2022.12.13
INDEX  (0) 2022.12.13

프로시저, 트리거에서 사용, 지정한 문자를 만나기 전까지 실행을 보류, 프로지서 및 트리거 생성 시 내부에 ; 기호가 있으면 프로시저 및 트리거가 완료되지 않기 때문에 종료 문자를 변경

 

IN : 프로시저를 호출하기 위한 정보로 함수의 매개변수에 해당함
DECLARE : 프로시저 내부에서 변수를 선언할 때 사용
SET : 프로시저 내부에서 변수에 값을 설정할때 사용

 

<사용법>

IF THEN END, IF ELSE THEN IF END : 프로시저 내부에서 if문 사용
사용법
IF score >= 95 THEN
SET level = 'A+';
END IF;
IF score >= 90 THEN
SET level = 'A';
ELSE
IF score >= 80 THEN
SET level = 'B';
END IF;


CALL 프로지저명(매개변수) : 프로시저 호출하기

'백엔드 > 데이터베이스2' 카테고리의 다른 글

1차 정규화, 2차 정규화, 3차 정규화 예제  (0) 2022.12.20
프로시저  (0) 2022.12.13
트리거  (0) 2022.12.13
트랜젝션  (0) 2022.12.13
INDEX  (0) 2022.12.13

전용 함수를 생성해서 해당 함수를 실행 시 지정되어 있는 쿼리문을 동작시키는 명령어

 

<사용법>

DELIMITER //
CREATE PROCEDURE 프로시저명
BEGIN
실행할 쿼리
END

 // DELIMITER ;

'백엔드 > 데이터베이스2' 카테고리의 다른 글

1차 정규화, 2차 정규화, 3차 정규화 예제  (0) 2022.12.20
DELIMITER  (0) 2022.12.13
트리거  (0) 2022.12.13
트랜젝션  (0) 2022.12.13
INDEX  (0) 2022.12.13

데이터베이스의 테이블에 어떠한 신호가 전달되었을 때 미리 정해진 활동이 자동적으로 실행되는 것, INSERT, UPDATE, DELETE 와 같은 DML이 실행되었을 경우 지정한 데이터 베이스 테이블의 수행 내용을 자동으로 실행

 

해당 명령에 따라 BEFORE/AFTER로 나누어짐
BEFORE : 특정 명령어가 실행되기 이전에 먼저 실행
AFTER : 특정 명령어가 실행된 후 실행
NEW : 가상 변수, INSERT/UPDATE에서 사용 가능, 신규 데이터, UPDATE 시 변경된 이후의 데이터 
OLD : 가상 변수, UPDATE/DELETE에서 사용 가능, 기존 데이터, UPDATE 시 변경되기 전의 데이터

 

<사용법>

 DELIMITER //
CREATE TRIGGER 트리거이름
BEFORE/AFTER INSERT/UPDATE/DELETE
ON 테이블명
FOR EACH ROW
BEGIN
 트리거 동작 시 수행할 쿼리문
END
// DELIMITER ;

 

'백엔드 > 데이터베이스2' 카테고리의 다른 글

DELIMITER  (0) 2022.12.13
프로시저  (0) 2022.12.13
트랜젝션  (0) 2022.12.13
INDEX  (0) 2022.12.13
VIEW  (0) 2022.12.13

데이터베이스에 입력, 수정, 삭제 시 바로 데이터 베이스에 적용하는 것이 아니라 특정 세이브 포인트를 설정해 두고 입력, 수정, 삭제를 진행 후 아무런 문제가 없을 경우 데이터베이스에 적용하고, 문제가 있을 경우 복구하는 기술

 

트랜젝션 예외

DDL명령어 (CREATE, DROP, ALTER, RENAME, TRUNCATE)는 트랜젝션의 ROLLBACK 대상이 아님

 

<사용법>

START TRANSACTION : 트랜젝션 사용 준비
COMMIT : 데이터 베이스에 적용
ROLLBACK : 지정한 포인트의 상태로 데이터 베이스 복구
SAVEPOINT 이름 : 지정한 포인트로 ROLLBACK 할 수 있는 위치 설정
SET AUTOCOMMIT = 0/1 : 자동 COMMIT 사용 여부, 0 : OFF, 1 : ON

'백엔드 > 데이터베이스2' 카테고리의 다른 글

DELIMITER  (0) 2022.12.13
프로시저  (0) 2022.12.13
트리거  (0) 2022.12.13
INDEX  (0) 2022.12.13
VIEW  (0) 2022.12.13

테이블의 조회 속도를 높이기 위해서 일부 컬럼의 데이터만 빠르게 검색할 수 있도록 하는 자료구조

<사용법>

인덱스 생성

CREATE INDEX 인덱스이름 ON 테이블명 (컬럼명);

인덱스 조회

SHOW INDEX FROM 테이블명;

인덱스 삭제

ALTER TABLE 테이블명 DROP INDEX 인덱스명;

 

SHOW INDEX FROM salaries;

 

'백엔드 > 데이터베이스2' 카테고리의 다른 글

DELIMITER  (0) 2022.12.13
프로시저  (0) 2022.12.13
트리거  (0) 2022.12.13
트랜젝션  (0) 2022.12.13
VIEW  (0) 2022.12.13

가상 테이블로 실제 데이터를 존재하지 않고, 기존의 테이블 및 뷰의 데이터를 가져다가 사용하는 테이블, 보안과 편의성을 위해서 사용함, 데이터의 입력, 수정, 삭제가 어려움, 뷰는 한번 생성되면 수정이 불가함

 

<사용법>

 

생성 : CREATE VIEW 뷰이름 AS SELECT 쿼리문
삭제 : DROP VIEW 뷰이름
조회 : SHOW CREATE VIEW 뷰이름

 

CREATE VIEW emp_copy AS SELECT * FROM employees LIMIT 100;

CREATE VIEW emp_maria AS SELECT * FROM employees WHERE first_name = 'maria' AND gender = 'F';

CREATE VIEW emp_csy AS SELECT * FROM employees WHERE first_name = 'luigi' AND gender = 'M';

'백엔드 > 데이터베이스2' 카테고리의 다른 글

DELIMITER  (0) 2022.12.13
프로시저  (0) 2022.12.13
트리거  (0) 2022.12.13
트랜젝션  (0) 2022.12.13
INDEX  (0) 2022.12.13

+ Recent posts