분석 : '무엇을' 할 것인지 결정, 사용자의 인터뷰와 업무 조사 등
설계 : '구축하고자 하는 시스템을 '어떻게' 할 것인지 결정
구현 :
시험 :
유지보수 :
데이터베이스 모델링 - 현실세계에서 사용되는 데이터를 MySQL에 어떻게 옮겨 놓을 것인지 결정하는 과정
ex) 판매할 제품 - 이름, 가격, 제조일자, 제조회사 등
데이터 하나하나의 단편적인 정보, 정보는 있으나 아직 체계화되지 못한 상태
테이블 표 형태
데이터베이스(DB) 테이블이 저장되는 저장소
DBMS 데이터베이스를 관리하는 시스템 또는 소프트웨어, MySQL
열=칼럼=필드 아이디, 회원 이름, 주소 등
데이터 형식 열의 데이터 형식
행=로우=레코드 실질적인 데이터
기본 키 열 각 행을 구분하는 유일한 열 - 중복, null 안 됨.
각 테이블은 오직 하나의 기본키를 가질 수 있음
외래키 필드 두 테이블의 관계를 맺어주는 키
SQL SQL은 사람과 DBMS가 소통하기위한 말(언어)
데이터베이스 생성 - 테이블 생성 - 데이터 입력 - 데이터 조회/활용
데이터베이스 먼저 선택하는 습관 가지기
sql 실행 방법 :
Ctrl + Shift + Enter
툴바 클릭 - Execute the selected portion~~
[Query] >> [Execute (All or Selection)]
주석 처리 : 하이픈 연속 2개 '--' 뒤에 공백 하나 있어야 함
인덱스, 스토어드 프로시저, 트리거, 함수, 커서 등
실무에서 인덱스 없이 전체 데이터를 찾으면 시간이 오래 걸림
데이터베이스 튜닝 - 데이터베이스 성능을 향상시키거나 응답하는 시간을 단축시키는 것
쿼리에 대한 응답을 줄이기 위해서 가장 집중적으로 보는 부분 중 하나가 '인덱스'
인덱스는 테이블의 열 단위에 생성
열을 기본 키로 설정하면 자동으로 인덱스 생성됨
여러 개의 SQL문을 하나로 묶어서 편리하게 사용하는 기능
DELIMITER - 구분 문자
뒤에 //가 나오면 기존의 세미콜론을 //로 대신한다는 의미
CREATE PROCEDURE ~~ END 까지 하나의 단락으로 묶어줌
실행 : CALL 스토어드 프로시저 이름()
삭제 : DROP PROCEDURE 스토어드 프로시저 이름
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM memberTBL WHERE memberName='당탕이' ;
SELECT * FROM productTBL WHERE productName='냉장괴' ;
END //
DELIMITER ;
CALL myProc() ;
DELIMITER //
CREATE TRIGGER trg_deletedMemberTBL
AFTER DELETE
ON memberTBL
FOR EACH ROW
BEGIN
INSERT INTO deletedMemberTBL VALUES (OLD.memberID,
OLD.memberName, OLD.memberAddress, CURDATE());
END //