본문 바로가기

Database/MySQL6

[MySQL] 트리거 트리거는 사전적 의미로 방아쇠를 뜻한다. 방아쇠를 당기면 자동으로 총알이 나가듯이, 트리거는 테이블에 어떠한 일이 발생되면 자동으로 실행된다. 테이블에 삽입, 수정, 삭제 등의 작업이 발생할 때 자동으로 작동되는 개체로 스토어드 프로시저와 비슷한 모양을 갖는다. 예를 들어 누군가가 A라는 테이블을 고의 또는 실수로 삭제했다고 치자, 그렇다면 삭제된 행의 내용을 복구하는 것도 어렵고 추적하는 것도 쉽지 않다. 따라서 삭제되는 순간에 A의 테이블 내용을 B라는 테이블에 기록해 놓는다면 문제점을 해결할 수 있다. 트리거는 이러한 기능을 수행할 수 있다. 데이터베이스는 데이터의 무결성을 유지하기위해 제약조건(PK, FK 등)을 사용했다 트리거는 제약 조건과 더 붙어서 데이터 무결성을 위해서 사용할 수 있는 기능.. 2020. 7. 1.
[MySQL] 커서 MySQL은 스토어드 프로시저 내부에 커서를 사용할 수 있다. 커서는 일반 프로그래밍 언어의 파일 처리와 방법이 비슷하기 때문에 행의 집합을 다루기에 편리한 많은 기능을 제공해 준다. JSP를 통한 웹 개발을 해봤다면 사용자의 객체를 생성할 때 ResultSet 객체를 사용해 보았을 것이다. rs.next() 메서드는 커서를 이용하여 데이터가 존재한다면 그행을 읽어 데이터를 가져오는 역할을 한다. 커서는 테이블에서 여러 개의 행을 쿼리한 후에, 쿼리의 결과인 행 집합을 한 행씩 처리하기 위한 방식이다. 한 행씩 읽을 때마다 커서 포인터는 자동으로 다음 줄을 가리키게 됩니다. 커서의 처리 순서 커서를 활용해 게시판의 조회수의 평균을 구하는 프로시저를 작성합니다. DROP PROCEDURE IF EXISTS.. 2020. 7. 1.
[MySQL] Stored Program 스토어드 프로그램이란 MySQL 안에서 프로그래밍 언어와 같은 기능을 제공하는 것을 통틀어서 말한다. 스포이트 프로그램은 크게 스토어드 프로시저, 스토어드 함수, 트리거, 커서 등이 있다. 스토어드 프로그램은 프로그래밍 기능을 제공하고 나아가 시스템 성능 향상에도 도움이 될 수 있습니다. 1. 스토어드 프로시저 스토어드 프로시저를 알기전 몇 가지 용어 대해 알고 넘어갑니다. PL/SQL(Procedural Language extension to SQL) PL//SQL은 상용 관계형 데이터베이스 시스템인 오라 DBMS에서 SQL 언어를 확장하기 위해 사용하는 컴퓨터 프로그래밍 언어 중 하나입니다. SQL의 확장된 개념으로 PL/SQL Block 내에서 DML과 Query문, 절차형 언어 if, loop 등.. 2020. 7. 1.
MySQL DATE / TIME TYPE MySQL은 날짜와 시간에 관한 다양한 형태의 타입을 제공합니다. DATE, DATETIME, TIMESTAMP TIME YEAR DATE DATE는 날짜를 저장할 수 있는 타입입니다. 기본 형식은 YYYY-MM-DD이며 저장할 수 있는 날짜의 범위는 1000-01-01부터 9999-12-31까지입니다. DATETIME DATETIME은 날짜와 함께 시간까지 저장할 수 있는 타입입니다. 기본형식은 YYYY-MM-DD HH:mm:SS 이며 저장할 수 있는 범위는 1000-01-01 00:00:00부터 9999-12-31 23:59:59까지입니다. TIMESTAMP TIMESTAMP는 날짜와 시간을 나타내는 타임스탬프를 저장할 수 있는 타입입니다. TIMESTAMP 타입의 필드는 사용자가 별다른 입력을 주지.. 2020. 5. 9.
MySQL String Type 문자열 타입 MySQL은 다양한 형태의 문자열 타입을 제공해줍니다. CHAR와 VARCHAR (ORACLE과 다르게 N의 키워드는 사용하지 않습니다.) BINARY와 VARBINARY BLOB과 TEXT ENUM SET 1. CHAR , VARCHAR 둘 다 문자열 데이터를 저장할 수 있는 타입입니다. 하지만 저장 방식, 추출방식 , 최대 길이를 다루는 방식에서 차이점이 존재합니다. CHAR는 문자열 길이가 설정되면 고정길이의 문자열로 다루지만 VARCHAR는 문자열 길이가 고정되지 않는 가변 길이의 문자열로 다룹니다. 문법 CHAR(M) VARCHAR(M) M은 저장할 수 있는 문자열의 최대 길이 입니다. CHAR는 0~255까지 설정할 수 있으며 NVARCHAR는 0~65,535까지 설정할 수 있습니.. 2020. 5. 9.
MySQL Numeric Type MySQL에서 테이블을 정의할 때는 필드별로 저장할 수 있는 타입을 명시해야 합니다. 기본 타입 숫자 타입 문자열 타입 날짜와 시간 타입 숫자 타입(numeric types) MySQL Refence에서 제공해주는 숫자 타입의 설명입니다. MySQL은 모든 표준 SQL 숫자 데이터 유형을 지원합니다. 이러한 유형에는 정확한 숫자 데이터 유형 (INTEGER, SMALLINT, DECIMAL 및 NUMERIC)과 대략적인 숫자 데이터 유형 (FLOAT, REAL 및 DOUBLE PRECISION)이 포함됩니다. 키워드 INT는 INTEGER의 동의어이고 키워드 DEC 및 FIXED는 DECIMAL의 동의어입니다. MySQL은 DOUBLE을 DOUBLE PRECISION (비표준 확장)의 동의어로 취급합니다.. 2020. 5. 8.