DB/명령프롬프트 - mysql 51

[MySQL] 트리거 trigger 예제 : before delete, old 사용

buy 테이블의 값을 삭제하면 product 테이블의 amount, sale_amount 값이 변경되는 트리거 생성 ⭐ 변수명 설정 유의 트리거나 프로시저(함수) 안에서 변수를 사용하는 경우, declare를 사용하여 선선 후 변수 사용(지역변수 개념) 트리거나 프로시저안에서의 변수는 전역변수(@변수명)을 사용할 수 없음 트리거나 프로시저(함수)안에는 일반적으로 _를 사용하여 일반 칼럼과 구분함 trigger 생성 mysql> delimiter // mysql> create trigger delete_buy before delete on buy -> for each row -> begin -> declare _amount int default 0; -> set _amount = old.amount; ->..

[MySQL] 트리거 trigger 예제 : after insert, new 사용

트리거 생성 : buy테이블의 값이 생성되면 product테이블의 재고량, 판매량이 변동되는 트리거 생성 : insert 재고량 : amout 판매량 : sale_amount 예) 홍길동이 에어나시를 3개 구매 => 재고량 -3, 판매량 +3 mysql> drop trigger if exists insert_buy; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> delimiter // mysql> create trigger insert_buy after insert on buy -> for each row -> begin -> declare _amount int default 0; -> set _amount = new.amount; -> update p..

[MySQL] 트리거 trigger 생성, 삭제

트리거 trigger : 연쇄반응(작용) 이벤트에 반응하여 자동으로 실행되는 구문 이벤트가 발생하는 경우 데이터의 무결성(일관성)을 지켜야 하는 경우 사용 예) 재고량과 판매량을 동일하게 업데이트 해야하는 경우 이벤트 Insert : old = null / new = 입력값 (after) Delete : old = 변경전 값 / new = null (before) Update : old = 변경전 값 / new = 변경후 값 (old=before, new=after) 트리거 trigger 특징 특정 테이블에 INSERT, DELETE, UPDATE 같은 "DML"문이 수행될 때, 데이터베이스에서 자동으로 실행 사용자호출 필요없음, 자동으로 실행됨 한번 생성이 되면 중복 생성X = 삭제 후 재생성 필요 트..

[MySQL] 뷰 view 생성 예제

1학기 수업을 듣는 학생들을 검색 출력: 학번, 이름 조건: 1학기 / 중복제거 추가 출력: 과목이름 중복제거를 하지 않는 경우 ! 조건에 맞는 학생이름 전체 출력, 조건에 맞는 번호 전체 출력 = 2번출력 -- 학번, 이름, 중복제거 mysql> create or replace view 1term_view as -> select distinct s.st_name, s.st_num -> from student as s, course as c -> where c.co_term = 1; Query OK, 0 rows affected (0.00 sec) mysql> select * from 1term_view; +---------+------------+ | st_name | st_num | +--------..

[MySQL] 뷰 view 생성, 수정, 삭제

뷰 view : 데이터베이스에 존재하는 일종의 가상 테이블 - 가상테이블 실체가 없고(실제 데이터를 저장하고 있지 않음), 필요한 내용만 꺼내서 보는 테이블 물리적으로 존재하지 않음 = 보여주기만 가능 view는 한번 생성하면 변경이 안됨 (update, delete 등 X) => 새로운 뷰로 대체(replace) 해야함! index를 가질 수 없음 뷰 view 생성 여러필드에서 가져오는 경우) 중복제거 distinct는 하는 것이 좋음 중복제거를 하지 않는 경우 조건에 맞는 값이 칼럼별로 나와 여러번 출력 1. 하나의 필드에서 가져와 생성 create view 뷰이름 as select 칼럼명 from 테이블명 where 조건 ; 2. 여러 필드에서 가져와 생성 create view 뷰이름 as sele..

[MySQL] 인덱스(색인) index 생성, 추가, 삭제

인덱스(색인) index : 테이블의 조회 속도를 높여주는 자료구조 추가/삭제/변경이 없어 거의 변동이 없는 칼럼에 이용 단점 : update, insert, delete 사용시 조회 속도 저하 인덱스 index 특징 primary키 = 자동 인덱스 설정 MYSQL INDEX(MYI) 파일에 저장된다 인덱스는 하나 또는 여러개의 칼럼에 대해 설정이 가능 (여러칼럼을 묶어 하나의 인덱스로도 설정이 가능) where 절 뒤에 사용될 경우, order by, group by에 사용되는 경우 -> index도 영향을 미침 인덱스 index를 사용할 수 없는 경우 복수의 키에 대해 order by하는 경우 연속하지 않는 칼럼에 대해 order by하는 경우 group by 칼럼, order by 칼럼이 다를 경우..

[MySQL] ERD 대학수강프로그램 - 4. 테이블 업데이트 (update, case, if, modify)

1. at_mid, at_final, at_attend, at_homework 값 업데이트 (40/40/10/10) update attend set at_homework = 8 where at_num=1; update attend set at_homework = 5 where at_num=2; update attend set at_homework = 2 where at_num=3; update attend set at_homework = 10 where at_num=4; update attend set at_homework = 7 where at_num=5; update attend set at_homework = 5 where at_num=6; update attend set at_homework = ..