본문 바로가기

728x90
반응형

MySQL

[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 2(스토어드 함수) 1. 스토어드 함수 (Stored Function) ▷ 사용자가 직접 만들어서 사용하는 함수 ▷ 스토어드 프로시저와 유사 ▶ 형태와 사용 용도에 있어 차이 있음 ▷ 스토어드 함수의 개요 2. 스토어드 함수와 스토어드 프로시저의 차이점 ◎ 스토어드 함수 ▷ 파라미터에 IN, OUT 등을 사용할 수 없음 ▶ 모두 입력 파라미터로 사용 ▷ RETURNS문으로 반환할 값의 데이터 형식 지정 ▶ 본문 안에서는 RETURN문으로 하나의 값 반환 ▷ SELECT 문장 안에서 호출 ▷ 함수 안에서 집합 결과 반환하는 SELECT 사용 불가 ▶ SELECT… INTO… 는 집합 결과 반환하는 것이 아니므로 예외적으로 스토어드 함수에서 사용 가능 ▷ 어떤 계산 통해서 하나의 값 반환하는데 주로 사용 ◎ 스토어드 프로시저 .. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 1(스토어드 프로시저, Stored Procedure) 1. 스토어드 프로시저의 개요 ◎ 스토어드 프로시저(Stored Procedure, 저장 프로시저) ▷ MySQL에서 제공되는 프로그래밍 기능 ▷ 쿼리문의 집합으로 어떠한 동작을 일괄 처리하기 위한 용도로 사용 ▷ 쿼리 모듈화 ▶ 필요할 때마다 호출만 하면 훨씬 편리하게 MySQL 운영 ▶ CALL 프로시저_이름( ) 으로 호출 1. 기본 형식 2. 스토어드 프로시저 생성 예 ◎ 스토어드 프로시저 사용 예제 1 use sqldb; drop procedure if exists userProc1; delimiter $$ create procedure userProc1(in userName varchar(10)) begin select * from usertbl where name = userName; end.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch09 인덱스 1(클러스터형 인덱스, 보조 인덱스) 1. 인덱스(Index)란? ▷ 책의 의 개념과 비슷 ▷ 데이터를 좀 더 빠르게 찾을 수 있도록 해주는 도구 ◎ 인덱스의 장단점 ▷ 장점 ▶ 검색 속도가 무척 빨라질 수 있음 (항상 그런 것은 아님) → 책도 너무 두꺼우면 찾기 어렵기 때문입니다. ▶ 쿼리의 부하가 줄어들어 시스템 전체의 성능 향상 ▷ 단점 ▶ 인덱스가 데이터베이스 공간을 차지해서 추가적인 공간 필요 → 대략 데이터베이스 크기의 10% 정도의 추가 공간 필요 ▶ 처음 인덱스 생성하는데 시간 소요 ▶ 데이터의 변경 작업 (Insert, Update, Delete)이 자주 일어나는 경우 성능이 나빠질 수도 있음 ◎ 인덱스의 종류 ▷ 클러스터형 인덱스 (Clustered Index) ▶ 기본키 ▶ ‘영어 사전’과 같은 책 ▶ 테이블 당 한 개.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch08 테이블과 뷰 3(테이블스페이스) 1. 테이블스페이스(oracle) ◎ 테이블스페이스의 개념 ▷ 물리적인 공간을 뜻함 ▷ 데이터베이스는 논리적 공간 ▷ 테이블스페이스를 지정하지 않은 경우 ▶ 시스템 테이블스페이스(System Tablespace)에 테이블 저장됨 ▷ 시스템 변수 innodb_data_file_path에 관련 내용 저장됨 ▷ 시스템 테이블 스페이스 파일 확인 ▶ MySQL 8.0에서 테이블스 페이스 파일은 기본적으로 ‘C:\Programdata\MySQL\MySQL Server 8.0\Data’ 폴더에 저장 되어 있음 ◎ 성능 향상을 위한 테이블스페이스 추가 ▷ 소용량의 데이트를 사용하는 경우에는 테이블스페이스 고려하지 않아도 되나 대용량의 데이터를 운영할 경우에는 성능 향상을 위해 테이블스페이스의 분리를 적극 고려 ◎ 테.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch08 테이블과 뷰 2(뷰, view) 1. 뷰 ◎ 뷰의 개념 ▷ 일반 사용자 입장에서 테이블과 동일하게 사용하는 개체 ▷ 뷰를 생성한 후에는 테이블처럼 접근 가능하여 동일한 결과 얻을 수 있음 ▷ 뷰의 작동 방식 ▷ 뷰 생성 구문 1. 테이블 생성 drop database if exists sqldb; -- sqldb가 있으면 drop해서 db를 삭제, 없으면 그냥 빠져나가기 create database sqldb; use sqldb; -- 테이블 생성 -- 회원 테이블 create table usertbl( userIDchar(8)not nullprimary key,-- 사용자 아이디(PK) namevarchar(10)not null,-- 이름 birthYearintnot null,-- 출생년도 addrchar(2)not null,-- 지.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch08 테이블과 뷰 1-1(테이블 제약 조건 및 수정 방법 실습) 1. 테이블 생성 및 데이터 삽입 use tabledb; drop table if exists buytbl; drop table if exists usertbl; -- 테이블 생성 -- 회원 테이블 create table usertbl( userIDchar(8), namevarchar(10), birthYearint, addrchar(2), mobile1char(3), mobile2char(8), heightsmallint, mDatedate ); -- 회원 구매 테이블 (buytbl) create table buytbl( numintauto_increment primary key, userIDchar(8), prodNamechar(6), groupNamechar(4), priceint, amountsm.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch08 테이블과 뷰 1(테이블 생성, 기본키, 외부키) 1. 테이블 만들기 1. MySQL Workbench에서 테이블 생성 ▷ Navigator – [Schemas] 클릭 – ‘tabledb’ 확장 – ‘Tables’ 마우스 오른쪽 버튼 – [Create Table] 선택 ▷ usertbl 생성 ▷ buytbl 생성 ▷ num열에 AUTO_INCREMENT, FOREIGN KEY 추가 2. MySQL Workbench에서 데이터 입력 ▷ Navigator에서 usertbl 선택 – 마우스 오른쪽 버튼 클릭 – [Select Rows – Limit 1000] 선택 ▷ 아이콘 클릭한 후, 3개 행 입력 - 클릭 - 클릭 ▷ buytbl 선택 – 마우스 오른쪽 버튼 클릭 – [Select Rows – Limit 1000] 선택 ▷ 아이콘 클릭한 후, 3개 행 입.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch07 SQL 고급5 (SQL 프로그래밍, if else, case, while) 1. SQL 프로그래밍 ◎ 스토어드 프로시저를 이용한 프로그래밍 ▷ 10장에서 심화 학습 예정 ▷ 형식 DELIMITER $$ CREATE PROCEDURE 스토어드 프로시저이름() BEGIN 이 부분에 SQL 프로그래밍 코딩.. END $$ DELIMITER ; CALL 스토어드 프로시저이름(); ◎ IF...ELSE ▷ 조건에 따라 분기 ▶ 참 / 거짓 두가지만 있기에 2중 분기 ▷ 한 문장 이상 처리되어야 할 때 BEGIN.. END로 묶어주기 ▷ 형식 IF THEN SQL문장들1.. ELSE SQL문장들2.. END IF; 부울 표현식 부분이 참이면 SQL문장들1 수행 / 거짓이면 SQL문장들2 수행 ◎ IF 예제 1 drop procedure if exists ifProc; use sqldb; .. 더보기

728x90
반응형