computer_study

[MySQL] 03.MySQL 전체 운영 실습 본문

스터디/이것이MySQL이다

[MySQL] 03.MySQL 전체 운영 실습

knowable 2022. 3. 29. 00:23

MySQL을 이용한 데이터베이스 구축 절차

모델링 이후에 데이터베이스 구축이 진행된다.

 

1. 데이터베이스 생성

 

2. 테이블 생성

  • 데이터베이스 모델링(물리적 모델링) 시에 각 열의 영문 이름 및 데이터 형식을 결정한다.
  • CREATE TABLE로 생성 가능
  • 테이블 이름을 띄어쓰고싶을 때 `` (backtick)으로 묶어줘야한다.

3. 데이터 입력

 

4. 데이터 조회/활용

  • 보통 SELECT를 많이 사용하여 데이터를 활용

 

테이블 외의 데이터베이스 개체의 활용

인덱스

  • 색인(찾아보기)과 같은 역할
  • 테이블의 열 단위에 생성된다
  • 인덱스를 사용하지 않을경우 Full Table Scan을 수행한다.
  • 인덱스를 사용하면 Non-Unique Key Lookup
  • 인덱스 생성 예시
    • indexTBL의 first_name열에 인덱스 생성
CREATE INDEX inx_indexTBL_firstname ON indexTBL(first_name);

 

  • 가상의 테이블
  • 실제 행 데이터를 가지고있지 않다. (진짜 테이블에 링크된 개념)
  • ex) 아르바이트생에게 회원의 아이디를 보고 주소만 변경하라 하는 경우
    • 전체 테이블을 보여주면 개인정보 유출의 위험이 있고, 새로운 테이블을 만들면 무결성에 문제가 생길 수 있다
    • 아이디와 주소만 있는 뷰를 생성하여 거기에만 접근 권한을 주는 식으로 해결 가능
  • ex) 회원이름과 주소만 존재하는 뷰(uv_memberTBL) 생성 예시
CREATE VIEW uv_memberTBL AS SELECT memberName, nemberAddress FROM memberTBL;

 

스토어드 프로시저

  • MySQL에서 제공해주는 프로그래밍 기능
  • SQL문을 하나로 묶어서 편리하게 사용할 수 있게 해준다.
  • ex) 두가지 SELECT문을 한꺼번에 작성 할 경우
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
	SELECT * FROM memberTBL WHERE memberName = '당탕이';
	SELECT * FROM productTBL WHERE productName = '냉장고';
END //
DELIMITER;

-- DELIMITER는 구분문자를 의미 
-- (뒤에 //가 나오면 기존의 세미클론을 //로 대신한다)
  • 실행방법
CALL myProc();
-- CALL [스토어드 프로시저이름]() 으로 실행 가능

 

트리거

  • INSERT, UPDATE, DELETE 작업 발생 시 실행되는 코드
  • ex) 회원이 삭제된 경우 백업테이블에 데이터를 이동시키는 트리거가 존재할 수 있다.
  • ex) memberTBL에 DELETE작업이 일어나고 deletedMemberTBL에 데이터가 기록되는 트리거
DELIMITER //
CREATE TRIGGER trg_deletedMemberTBL
	AFTER DELETE
	ON memberTBL
	FOR EACH ROW
BEGIN
	INSERT INTO deleteMemberTBL
	VALUES (OLD.memberID, OLD.memberName, OLD.memberAddress, CURDATE() );
END //
DELIMITER ;

 

데이터베이스 백업 및 관리

백업

  • 현재의 데이터베이스를 다른 매체에 보관하는 작업
  • Workbench의 Data Export 버튼 사용

복원

  • 다른 매체에 백업된 데이터를 이용해 원상태로 돌려놓는 작업
  • Workbench의 Data Import/Restore 버튼 사용

 

'스터디 > 이것이MySQL이다' 카테고리의 다른 글

[MySQL] 06. SQL 기본  (0) 2022.04.04
[MySQL] 05. MySQL 유틸리티 사용법  (0) 2022.04.04
[MySQL] 02.MySQL 설치  (0) 2022.03.29
[MySQL] 01.DBMS 개요와 MySQL 소개  (0) 2022.03.24
[MySQL] 00.스터디 개요  (0) 2022.03.24
Comments