#1
VIEW만들기
CREATE VIEW uv_memberTBL AS
SELECT memberName, memberAddress FROM memberTBL;
보아하니 해석하자면 이런것같다.
uv_memberTBL라는 VIEW를 만들어줘
그 내용은
SELECT 이하내용으로해줘.
VIEW를 사용하는 이유는 100% 명확한것은 아니지만
정황상
SELECT로써 접근은하게끔해서 결과물로 보여주긴 해야하는데, 수정되면 안되는 특이성이 있기때문에
원본이 있는 테이블의 접근권한보다는 VIEW의 접근권한이 더욱 허들이 낮다고 보인다.
#2
스토어드 프로시저
mysql에만 있는 기능같은데, 지금은 오히려 더 번거로워 보인다.
근데 있는 이유가 있겠지?
SELECT * FROM memberTBL WHERE memberNAME = '당탕이';
SELECT * FROM productTBL WHERE productNAME = '냉장고';
이 두개의 명령문에 대해서 한개의 명령문으로 만들어주기 위해서
스토어드 프로시저라는 기능을 사용한다고 한다.
음…. 우선 내가 배운 코드는
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM memberTBL WHERE memberNAME = '당탕이';
SELECT * FROM productTBL WHERE productNAME = '냉장고';
END //
DELIMITER;
이러하고, 작동은 되었는데 작동과 동시에 에러가 떴다.
그 이유인 즉슨 문법 에러였고
//는 ;과 같은 기능이라고 한다.
왜 해주는 지는 모르겠고 mysql 공식문서에서 본것을 응용하자면
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM memberTBL WHERE memberNAME = '당탕이';
SELECT * FROM productTBL WHERE productNAME = '냉장고';
END //
그냥 이렇게 하는게 맞는 문법인것 같다.
참조:
https://dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html
프로시저를 실행하는것은 SELECT 가 아니였고 CALL이였다.
CALL myProc();
이렇게
'개발일지 > 임시카테고리' 카테고리의 다른 글
[Mysql] 데이터베이스 모델링 기본개념 (1) | 2022.10.03 |
---|---|
[Mysql] TRIGGER(트리거) 매우중요개념 (삭제된 필드를 다른테이블로 자동이동) (0) | 2022.10.03 |
[Mysql] A테이블에서 B테이블로 500개의 한정된 INSERT, INDEX 생성 (0) | 2022.10.03 |
[MAC M1 Mysql] root 비밀번호 분실 후 초기화 및 2가지 에러의 근본해결 (1) | 2022.10.03 |
Django - cbvDeleteView (0) | 2022.10.01 |