IT수업/데이터베이스 28

it 수업 7주차 (28) TRIGGER

------------------ TRIGGER ------------------ -- 데이터 변경 이벤트가 발생했을 때 추가적으로 자동 실행되는 프로그램 -- Before trigger : 이벤트 발생 이전에 작동되는 트리거 INSERT, UPDATE, DELETE 세가지 이벤트로 작동 -- After trigger : INSERT, UPDATE, DELETE 등의 작업이 일어났을 때 작동하는 트리거 ● 백업 테이블 만들기 데이터를 수정하면 원래 데이터가 들어갈 백업 테이블을 구조만 복사하여 만들어 준다. create table c_usertbl select * from usertbl; - 구조만 복사해 백업테이블 만들기 create table c_usertbl_bak like c_usertbl; - ..

it 수업 7주차 (27) EXCEPTION

---------------------------- EXCEPTION (예외) ---------------------------- -- 경미한 오류의 일종 -- 실행 오류의 하위 카테고리 -- 예외 발생 시 전체 프로그램의 Runtime이 유지되도록 처리하는 작업을 예외처리라고 한다. ● 예외 발생 중간에 없는 테이블을 넣어 번개 모양 버튼을 눌러주면 모든 문장을 한번에 실행시키면서 테이블이 존재하지 않는다는 에러가 뜨는걸 볼 수 있다. 또, column 개수와 넣으려는 값이 매치가 안되면 이런 오류가 나온다. 이 두 오류를 해결하는 코드를 만들어 볼 것 이다. ● 개별 오류 받기 먼저 각각의 오류들을 나타내주는 코드이다. call을 해주면 모든 sql 문들이 실행되며 오류까지도 실행되는 것을 볼 수 있..

it 수업 7주차 (26) TRANSACTION (ROLLBACK)

---------------------------- TRANSACTION ---------------------------- - 데이터베이스의 상태를 변환시키는 작업 단위(임의로 조절 가능) - 작업 중 문제가 생기면 rollback으로 원래 상태로 되돌릴 수 있음 ---------------------------- 트랜잭션 성질 ---------------------------- -- 원자성 : 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 함 (트랜잭션의 연산은 모두 반영되도록 COMMIT 되거나 전혀 반영되지 않도록 ROLLBACK 되어야 함) 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되야 함 -- 일관성 : 트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 함 -- 독립성, 격리성 ..

it 수업 7주차 (25) Procedure

---------------------------- Stored Procedure ----------------------------- -- 데이터베이스에서 실행 가능한 저장 프로그램 -- SQL문들의 논리적인 묶음 -- Function(함수)와 유사하나 특정부분에서의 차이점이 존재한다. (함수 : 수를 받아서 처리하는 논리적 공간) ---------------------------------------------------------------- Stored Procedure와 Function 과의 공통점 ---------------------------------------------------------------- 01 재사용성 02 모듈화 03 매개변수의 존재 04 흐름제어 처리(if, case..

it 수업 7주차 (24) PIVOT

이 테이블을 pivot을 사용해 피벗테이블을 만들어 볼 것이다. 이때 집계함수를 사용하면 group by 도 함께 써줘야한다. (한 유저가 여러 제품을 샀으니까 이름 중복 방지 위해) 이번에는 groupname을 사용해서 피벗테이블을 만드는데 뷰 테이블로 보도록 할 것이다. select sum(if(addr='서울',1,0)) as '서울', sum(if(addr='경남',1,0)) as '경남', sum(if(addr='경북',1,0)) as '경북', sum(if(addr='경기',1,0)) as '경기' from usertbl; count를 이용하여 또 다른 방식으로도 할 수 있다.

it 수업 7주차 (23) JSON

MYSQL로 JSON을 사용해 볼 것이다. - JOSON데이터의 기본은 문자열 - 데이터 생성 ● JSON_OBJECT : json 단위 생성 함수이다. 방식은 (key, vlaue, key, value ....)로 사용한다. 다음은 변수로 넣는 방법이다. @변수로 사용해 값을 넣을 수 있다. 또 다른 방법으로는 json_object를 사용하지 않고 "{''}" 를 사용해 값을 넣을 수도 있다. 또 다른 방법으로 값을 넣을 수도 있다. - 데이터 확인 ● json_valid : 데이터 포멧이 유효한지 참, 거짓으로 확인하는 것 1은 참, 0은 거짓 ● json_search : 데이터 위치 찾기 여기서 userinfo[1]는 1번 인덱스에 있는 값들을 나타낸다. 즉 '서울'이라는 값은 1번 인덱스의 주소에..

it 수업 7주차 (22) VIEW

-- ------------------------ VIEW -- ------------------------- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 가상테이블 뷰로 만든 테이블은 실제 존재하지 않는다 (조인된 결과물들을 테이블로 만드는 것) - view 만들기 create or replace view view_usertbl as는 새로운 테이블을 만들거나 있다면 새로 대채하는 명령어 이다. views에 만들어진 것을 볼 수 있다. 또 원하는 열만 볼 수도 있다. - 만들어진 view 보기 select * from information_schema.views where table_schema='shopdb'; 로 만들어진 view들을 볼 수 있다. - join한 테이블 view만들기 ..

it 수업 6주차 (21) JOIN

---------------------- JOIN ---------------------- -- 두개 이상의 테이블을 서로 묶어서 하나의 조회 결과를 만드는데 사용 ---------------------- JOIN 종류 ---------------------- -- INNER JOIN : ON 이하의 조건절을 만족하는 행만 JOIN -- OUTER JOIN : ON 이하의 조건절을 만족하지 않는 행도 JOIN -- LEFT OUTER JOIN : 조건을 만족하지 않는 왼쪽 테이블의 행도 JOIN -- RIGHT OUTER JOIN : 조건을 만족하지 않는 오른쪽 테이블의 행도 JOIN -- FULL OUTER JOIN : 조건을 만족하지 않는 왼/오른쪽 테이블의 행도 JOIN -- CROSS JOIN :..

it 수업 6주차 (20) index

------------------------- INDEX ------------------------- -- 데이터베이스 테이블의 검색 성능을 향상시키기 위해 사용되는 데이터 구조 -- where 이하 조건절 열에 index로 지정된 열을 사용한다. -- index로 지정된 열은 기본적으로 정렬 처리가 된다.(모든 DBMS는 아님) ------------------------------ MYSQL INDEX 종류 ------------------------------ -- B-Tree : 기본값, 대부분의 데이터 index에 잘 적용되어 사용 -- Hash : 해시 함수를 이용한 index, 정확한 일치 검색에 사용(포함검색에는 다소 성능이 저하될 수 있다.) -- Full-text : 전체 택스트 검색..

it 수업 6주차 (19) 업, 다운로드

C 드라이브에 SQL파일을 만들고 시작한다. 그리고 C드라이브의 ProgramData > Mysql > mysql server 8.0 에 들어가서 my.ini에 들어가 밑에 사진 처럼 추가해준다. (programdata가 보이지 않을 시에는 c드라이브에서 -> 숨긴항목에 체크해주면 보인다.) secure-file-priv="C:/SQL" max_allowed_packet=1024M 수정권한이 없을 경우 my.ini 파일에 마우스 우클릭으로 속성에 들어가 권한을 편집해주면 된다. 적고 다른 이름으로 저장해서 인코딩을 ANSI로 변경후 저장해준다. Window+r 버튼을 눌러 실행창에 services.msc를 입력한 뒤 mysql을 다시 시작을 눌러준다. 만들어둔 SQL 폴더에 파일 하나를 집어 넣은 후 w..